diff --git a/crypto/external/bsd/heimdal/dist/NEWS b/crypto/external/bsd/heimdal/dist/NEWS index 0f3061795eef..2a02dbd8bf36 100644 --- a/crypto/external/bsd/heimdal/dist/NEWS +++ b/crypto/external/bsd/heimdal/dist/NEWS @@ -1,3 +1,70 @@ +Release Notes - Heimdal - Version Heimdal 7.8 + + Bug fixes + + - CVE-2022-42898 PAC parse integer overflows + + - CVE-2022-3437 Overflows and non-constant time leaks in DES{,3} and arcfour + + - CVE-2021-44758 Heimdal KDC: invalid free in ASN.1 codec + + This is a 10.0 on the Common Vulnerability Scoring System (CVSS) v3. + + Heimdal's ASN.1 compiler generates code that allows specially + crafted DER encodings of CHOICEs to invoke the wrong free function + on the decoded structure upon decode error. This is known to impact + the Heimdal KDC, leading to an invalid free() of an address partly + or wholly under the control of the attacker, in turn leading to a + potential remote code execution (RCE) vulnerability. + + This error affects the DER codec for all CHOICE types used in + Heimdal, though not all cases will be exploitable. We have not + completed a thorough analysis of all the Heimdal components + affected, thus the Kerberos client, the X.509 library, and other + parts, may be affected as well. + + This bug has been in Heimdal since 2005. It was first reported by + Douglas Bagnall, though it had been found independently by the + Heimdal maintainers via fuzzing. + + While no zero-day exploit is known, such an exploit will likely be + available soon after public disclosure. + + - Bugs found by UBSAN (including the incorrect encoding of unconstrained + INTEGER value -1). + + - Errors found by the LLVM scan-build static analyzer. + + - Errors found by the valgrind memory debugger. + + - Work around GCC Bug 95189 (memcmp wrongly stripped like strcmp). + + - Fix Unicode normalization read of 1 bytes past end of array. + + - Correct ASN.1 OID typo for SHA-384 + + - Fix a deadlock in in the MEMORY ccache type. + + - TGS: strip forwardable and proxiable flags if the server is + disallowed. + + - CVE-2019-14870: Validate client attributes in protocol-transition + - CVE-2019-14870: Apply forwardable policy in protocol-transition + - CVE-2019-14870: Always lookup impersonate client in DB + + - Incremental HDB propagation improvements + + - Refactor send_diffs making it progressive + - Handle partial writes on non-blocking sockets + - Disable Nagle in iprop master and slave + - Use async I/O + - Don't send I_HAVE in response to AYT + - Do not recover log in kadm5_get_principal() + - Don't send diffs to slaves with not yet known version + - Don't stutter in send_diffs + + - Optional backwards-compatible anon-pkinit behaviour + Release Notes - Heimdal - Version Heimdal 7.7 Bug fixes diff --git a/crypto/external/bsd/heimdal/dist/admin/add.c b/crypto/external/bsd/heimdal/dist/admin/add.c index 17e88c4cbfd5..e88a6e569fd9 100644 --- a/crypto/external/bsd/heimdal/dist/admin/add.c +++ b/crypto/external/bsd/heimdal/dist/admin/add.c @@ -1,4 +1,4 @@ -/* $NetBSD: add.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: add.c,v 1.3 2023/06/19 21:41:38 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "ktutil_locl.h" -__RCSID("$NetBSD: add.c,v 1.2 2017/01/28 21:31:44 christos Exp $"); +__RCSID("$NetBSD: add.c,v 1.3 2023/06/19 21:41:38 christos Exp $"); static char * readstring(const char *prompt, char *buf, size_t len) @@ -96,7 +96,8 @@ kt_add(struct add_options *opt, int argc, char **argv) goto out; } if(opt->password_string == NULL && opt->random_flag == 0) { - if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Password: ", 1)) { + if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Password: ", + UI_UTIL_FLAG_VERIFY)) { ret = 1; goto out; } diff --git a/crypto/external/bsd/heimdal/dist/admin/change.c b/crypto/external/bsd/heimdal/dist/admin/change.c index afcccbfb504b..a5b89002b26f 100644 --- a/crypto/external/bsd/heimdal/dist/admin/change.c +++ b/crypto/external/bsd/heimdal/dist/admin/change.c @@ -1,4 +1,4 @@ -/* $NetBSD: change.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: change.c,v 1.3 2023/06/19 21:41:38 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "ktutil_locl.h" -__RCSID("$NetBSD: change.c,v 1.2 2017/01/28 21:31:44 christos Exp $"); +__RCSID("$NetBSD: change.c,v 1.3 2023/06/19 21:41:38 christos Exp $"); static krb5_error_code change_entry (krb5_keytab keytab, @@ -219,7 +219,6 @@ kt_change (struct change_options *opt, int argc, char **argv) krb5_kt_end_seq_get(context, keytab, &cursor); if (ret == KRB5_KT_END) { - ret = 0; for (i = 0; i < j; i++) { if (verbose_flag) { char *client_name; diff --git a/crypto/external/bsd/heimdal/dist/cf/._ltoptions.m4 b/crypto/external/bsd/heimdal/dist/cf/._ltoptions.m4 deleted file mode 100644 index 3d07a38fae18..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/cf/._ltoptions.m4 and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/cf/._ltsugar.m4 b/crypto/external/bsd/heimdal/dist/cf/._ltsugar.m4 deleted file mode 100644 index bc3a28965b68..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/cf/._ltsugar.m4 and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/cf/._lt~obsolete.m4 b/crypto/external/bsd/heimdal/dist/cf/._lt~obsolete.m4 deleted file mode 100644 index a5ff0951ff89..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/cf/._lt~obsolete.m4 and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/cf/broken-getaddrinfo.m4 b/crypto/external/bsd/heimdal/dist/cf/broken-getaddrinfo.m4 deleted file mode 100644 index 54dfaa0d1d2a..000000000000 --- a/crypto/external/bsd/heimdal/dist/cf/broken-getaddrinfo.m4 +++ /dev/null @@ -1,26 +0,0 @@ -dnl Id -dnl -dnl test if getaddrinfo can handle numeric services - -AC_DEFUN([rk_BROKEN_GETADDRINFO],[ -AC_CACHE_CHECK([if getaddrinfo handles numeric services], ac_cv_func_getaddrinfo_numserv, -AC_RUN_IFELSE([AC_LANG_SOURCE([[#include -#include -#include -#include - -int -main(int argc, char **argv) -{ - struct addrinfo hints, *ai; - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_PASSIVE; - hints.ai_socktype = SOCK_STREAM; - hints.ai_family = PF_UNSPEC; - if(getaddrinfo(NULL, "17", &hints, &ai) != 0) - return 1; - if(getaddrinfo(NULL, "0", &hints, &ai) != 0) - return 1; - return 0; -} -]])],[ac_cv_func_getaddrinfo_numserv=yes],[ac_cv_func_getaddrinfo_numserv=no],[ac_cv_func_getaddrinfo_numserv=yes]))]) diff --git a/crypto/external/bsd/heimdal/dist/cf/roken-frag.m4 b/crypto/external/bsd/heimdal/dist/cf/roken-frag.m4 index 55a7b7802f5b..4c8e4faec082 100644 --- a/crypto/external/bsd/heimdal/dist/cf/roken-frag.m4 +++ b/crypto/external/bsd/heimdal/dist/cf/roken-frag.m4 @@ -490,13 +490,13 @@ dnl AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include #include ]) -if test "$ac_cv_func_getaddrinfo" = "yes"; then - rk_BROKEN_GETADDRINFO - if test "$ac_cv_func_getaddrinfo_numserv" = no; then - AC_LIBOBJ(getaddrinfo) - AC_LIBOBJ(freeaddrinfo) - fi -fi +#if test "$ac_cv_func_getaddrinfo" = "yes"; then +# rk_BROKEN_GETADDRINFO +# if test "$ac_cv_func_getaddrinfo_numserv" = no; then +# AC_LIBOBJ(getaddrinfo) +# AC_LIBOBJ(freeaddrinfo) +# fi +#fi AC_NEED_PROTO([#include ], setenv) AC_NEED_PROTO([#include ], unsetenv) diff --git a/crypto/external/bsd/heimdal/dist/config.guess b/crypto/external/bsd/heimdal/dist/config.guess index 1ab84a771482..c7f17e8fb978 100755 --- a/crypto/external/bsd/heimdal/dist/config.guess +++ b/crypto/external/bsd/heimdal/dist/config.guess @@ -1,12 +1,14 @@ -#! /bin/sh +#!/usr/bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2017-05-27' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-05-25' # This file 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 +# 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 @@ -15,7 +17,7 @@ timestamp='2017-05-27' # 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 . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,11 +29,19 @@ timestamp='2017-05-27' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -39,7 +49,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,7 +94,8 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 +# Just in case it came from the environment. +GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -96,66 +107,90 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,12 +202,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; @@ -180,20 +214,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -209,10 +243,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -220,47 +254,68 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -274,7 +329,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -311,126 +366,121 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -440,44 +490,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -486,95 +536,96 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux${UNAME_RELEASE} + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -585,77 +636,77 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -688,13 +739,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -713,15 +764,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -746,38 +797,38 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -785,140 +836,148 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case $UNAME_MACHINE in x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -929,183 +988,236 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1113,12 +1225,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1128,11 +1240,11 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo ${UNAME_MACHINE}-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1140,31 +1252,31 @@ EOF # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) @@ -1172,9 +1284,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1183,259 +1295,440 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv${UNAME_RELEASE} + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/crypto/external/bsd/heimdal/dist/configure.ac b/crypto/external/bsd/heimdal/dist/configure.ac index 7bdcdeb8adee..daa642d3ca0e 100644 --- a/crypto/external/bsd/heimdal/dist/configure.ac +++ b/crypto/external/bsd/heimdal/dist/configure.ac @@ -1,8 +1,8 @@ dnl Process this file with autoconf to produce a configure script. -AC_REVISION($Revision: 1.4 $) +AC_REVISION($Revision: 1.5 $) AC_PREREQ(2.62) test -z "$CFLAGS" && CFLAGS="-g" -AC_INIT([Heimdal],[7.7.0],[https://github.com/heimdal/heimdal/issues]) +AC_INIT([Heimdal],[7.8.0],[https://github.com/heimdal/heimdal/issues]) AC_CONFIG_SRCDIR([kuser/kinit.c]) AC_CONFIG_HEADERS(include/config.h) AC_CONFIG_MACRO_DIR([cf]) @@ -18,6 +18,8 @@ dnl Checks for programs. AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CPP +AM_PATH_PYTHON +AC_CHECK_PROG(CLANG_FORMAT, clang-format, [clang-format], [no]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -351,6 +353,7 @@ AC_CHECK_HEADERS([\ maillock.h \ netgroup.h \ netinet/in6_machtypes.h \ + netinet/tcp.h \ pthread.h \ pty.h \ sac.h \ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/base/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/base/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/base/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/base/man/man3/heimbase.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/base/man/man3/heimbase.3 index de8cec93a057..eb1e1c1245cf 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/base/man/man3/heimbase.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/base/man/man3/heimbase.3 @@ -1,10 +1,12 @@ -.\" $NetBSD: heimbase.3,v 1.2 2019/12/15 22:50:43 christos Exp $ +.\" $NetBSD: heimbase.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "heimbase" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalbaselibrary" \" -*- nroff -*- +.TH "heimbase" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal base library" \" -*- nroff -*- .ad l .nh .SH NAME -heimbase \- Registers a DB type for use with heim_db_create()\&. +heimbase \- Heimbase +.PP + \- Registers a DB type for use with heim_db_create()\&. .SH SYNOPSIS .br @@ -13,9 +15,9 @@ heimbase \- Registers a DB type for use with heim_db_create()\&. .PP Registers a DB type for use with heim_db_create()\&. -heim_db_register +heim_db_register .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdbtype\fP Name of DB type .br @@ -30,7 +32,7 @@ The registered DB type will have ACID semantics for backends that do not provide .PP If the registered DB type does not natively provide read vs\&. write transaction isolation but does provide a lock method then the DB will provide read/write transaction isolation\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 ENOMEM on failure, else 0\&. .RE @@ -55,7 +57,7 @@ Options may be provided via a dict (an associative array)\&. Existing options in 'journal-name', with a string value naming a journal file name .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdbtype\fP Name of DB type .br @@ -68,7 +70,7 @@ Options may be provided via a dict (an associative array)\&. Existing options in \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a DB handle .RE @@ -79,56 +81,56 @@ This is useful for multi-threaded applications\&. Applications must synchronize .PP Returns EBUSY if there is an open transaction for the input db\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a DB handle .RE .PP Open a transaction on the given db\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, system error otherwise .RE .PP Commit an open transaction on the given db\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, system error otherwise .RE .PP Rollback an open transaction on the given db\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, system error otherwise .RE @@ -139,7 +141,7 @@ Lookup a key's value in the DB\&. .PP Returns 0 on success, -1 if the key does not exist in the DB, or a system error number on failure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br @@ -148,14 +150,14 @@ Returns 0 on success, -1 if the key does not exist in the DB, or a system error \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the value (retained), if there is one for the given key .RE .PP Set a key's value in the DB\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br @@ -166,14 +168,14 @@ Set a key's value in the DB\&. \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, system error otherwise .RE .PP Delete a key and its value from the DB .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br @@ -182,14 +184,14 @@ Delete a key and its value from the DB \fIerror\fP Output error object .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, system error otherwise .RE .PP Iterate a callback function over keys and values from a DB\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdb\fP Open DB handle .br @@ -202,7 +204,7 @@ Iterate a callback function over keys and values from a DB\&. .PP Get a node in a heim_object tree by path .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP tree .br @@ -211,14 +213,14 @@ Get a node in a heim_object tree by path \fIap\fP NULL-terminated va_list of heim_object_ts that form a path .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 object (not retained) if found .RE .PP Get a node in a tree by path, with retained reference .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP tree .br @@ -227,14 +229,14 @@ Get a node in a tree by path, with retained reference \fIap\fP NULL-terminated va_list of heim_object_ts that form a path .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 retained object if found .RE .PP Get a node in a tree by path .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP tree .br @@ -243,14 +245,14 @@ Get a node in a tree by path \fI\&.\&.\&.\fP NULL-terminated va_list of heim_object_ts that form a path .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 object (not retained) if found .RE .PP Get a node in a tree by path, with retained reference .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP tree .br @@ -259,14 +261,14 @@ Get a node in a tree by path, with retained reference \fI\&.\&.\&.\fP NULL-terminated va_list of heim_object_ts that form a path .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 retained object if found .RE .PP Create a path in a heim_object_t tree .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP the tree .br @@ -281,14 +283,14 @@ Create a path in a heim_object_t tree .PP Create a path of heim_dict_t interior nodes in a given heim_object_t tree, as necessary, and set/replace a leaf, if given (if leaf is NULL then the leaf is not deleted)\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, else a system error .RE .PP Create a path in a heim_object_t tree .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP the tree .br @@ -303,14 +305,14 @@ Create a path in a heim_object_t tree .PP Create a path of heim_dict_t interior nodes in a given heim_object_t tree, as necessary, and set/replace a leaf, if given (if leaf is NULL then the leaf is not deleted)\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, else a system error .RE .PP Delete leaf node named by a path in a heim_object_t tree .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP the tree .br @@ -321,7 +323,7 @@ Delete leaf node named by a path in a heim_object_t tree .PP Dump a heimbase object to stderr (useful from the debugger!) .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIobj\fP object to dump using JSON or JSON-like format .RE @@ -329,4 +331,4 @@ Dump a heimbase object to stderr (useful from the debugger!) .SH "Author" .PP -Generated automatically by Doxygen for Heimdalbaselibrary from the source code\&. +Generated automatically by Doxygen for Heimdal base library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi.3 index c116a08485fb..66c7fa37888c 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: gssapi.3,v 1.2 2019/12/15 22:50:43 christos Exp $ +.\" $NetBSD: gssapi.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "gssapi" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalGSS-APIlibrary" \" -*- nroff -*- +.TH "gssapi" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal GSS-API library" \" -*- nroff -*- .ad l .nh .SH NAME -gssapi +gssapi \- Heimdal GSS-API functions .SH SYNOPSIS .br .PP @@ -77,7 +77,7 @@ Add a oid to the oid set, function does not make a copy of the oid, so the point .PP If there is a duplicate member of the oid, the new member is not added to to the set\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code\&. .br @@ -86,7 +86,7 @@ If there is a duplicate member of the oid, the new member is not added to to the \fIoid_set\fP oid set to add the member too .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -101,7 +101,7 @@ If the input_name if of the GSS_C_NT_USER_NAME, and the Kerberos mechanism is sp .PP For more information about \fBInternal names and mechanism names\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code\&. .br @@ -112,7 +112,7 @@ For more information about \fBInternal names and mechanism names\fP\&. \fIoutput_name\fP the resulting type, release with \fBgss_release_name()\fP, independent of input_name\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -121,7 +121,7 @@ a gss_error code, see \fBgss_display_status()\fP about printing the error code\& .SS "GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_display_status (OM_uint32 * minor_status, OM_uint32 status_value, int status_type, const gss_OID mech_type, OM_uint32 * message_context, gss_buffer_t status_string)" Convert a GSS-API status code to text .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br @@ -136,7 +136,7 @@ Convert a GSS-API status code to text \fIstatus_string\fP the allocated text representation\&. Release with gss_release_buffer() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code\&. .RE @@ -145,12 +145,12 @@ a gss_error code\&. .SS "GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_export_name (OM_uint32 * minor_status, gss_const_name_t input_name, gss_buffer_t exported_name)" Convert a GGS-API name from internal form to contiguous string\&. .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBgss_import_name()\fP, \fBInternal names and mechanism names\fP\&. .RE .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br @@ -159,7 +159,7 @@ Convert a GGS-API name from internal form to contiguous string\&. \fIexported_name\fP output name in contiguos string form .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -183,12 +183,12 @@ GSS_C_NT_ANONYMOUS GSS_KRB5_NT_PRINCIPAL_NAME .PP .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBgss_export_name()\fP, \fBInternal names and mechanism names\fP\&. .RE .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br @@ -199,7 +199,7 @@ GSS_KRB5_NT_PRINCIPAL_NAME \fIoutput_name\fP the resulting type, release with \fBgss_release_name()\fP, independent of input_name .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -217,7 +217,7 @@ GSS_S_CONTINUE_NEEDED - if the caller needs to continue another round of gss_i n error code - any other error code .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code\&. .br @@ -246,7 +246,7 @@ error code - any other error code \fItime_rec\fP amount of time this context is valid for .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -255,7 +255,7 @@ a gss_error code, see \fBgss_display_status()\fP about printing the error code\& .SS "GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_inquire_attrs_for_mech (OM_uint32 * minor_status, gss_const_OID mech, gss_OID_set * mech_attr, gss_OID_set * known_mech_attrs)" List support attributes for a mech and/or all mechanisms\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br @@ -270,7 +270,7 @@ List support attributes for a mech and/or all mechanisms\&. .SS "GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_inquire_saslname_for_mech (OM_uint32 * minor_status, const gss_OID desired_mech, gss_buffer_t sasl_mech_name, gss_buffer_t mech_name, gss_buffer_t mech_description)" Returns different protocol names and description of the mechanism\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br @@ -283,7 +283,7 @@ Returns different protocol names and description of the mechanism\&. \fImech_description\fP description of gssapi mech .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns GSS_S_COMPLETE or a error code\&. .RE @@ -294,14 +294,14 @@ Compare two GSS-API OIDs with each other\&. .PP GSS_C_NO_OID matches nothing, not even it-self\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIa\fP first oid to compare .br \fIb\fP second oid to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 non-zero when both oid are the same OID, zero when they are not the same\&. .RE @@ -321,14 +321,14 @@ major = gss_release_cred(&minor, &cred); .fi .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status return code, mech specific .br \fIcred_handle\fP a pointer to the credential too release .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an gssapi error code .RE @@ -341,14 +341,14 @@ Free a name .PP import_name can point to NULL or be NULL, or a pointer to a gss_name_t structure\&. If it was a pointer to gss_name_t, the pointer will be set to NULL on success and failure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code .br \fIinput_name\fP name to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a gss_error code, see \fBgss_display_status()\fP about printing the error code\&. .RE @@ -359,7 +359,7 @@ Decrypt or verifies the signature on the data\&. .SS "GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_wrap (OM_uint32 * minor_status, gss_const_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, const gss_buffer_t input_message_buffer, int * conf_state, gss_buffer_t output_message_buffer)" Wrap a message using either confidentiality (encryption + signature) or sealing (signature)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIminor_status\fP minor status code\&. .br @@ -433,4 +433,4 @@ GSS_C_ATTR_STREAM_SIZES data is a gss_context_stream_sizes\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalGSS-APIlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal GSS-API library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_mechs_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_mechs_intro.3 index aa0c083c0a94..119a46e1bd2c 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_mechs_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_mechs_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: gssapi_mechs_intro.3,v 1.2 2019/12/15 22:50:43 christos Exp $ +.\" $NetBSD: gssapi_mechs_intro.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "gssapi_mechs_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalGSS-APIlibrary" \" -*- nroff -*- +.TH "gssapi_mechs_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal GSS-API library" \" -*- nroff -*- .ad l .nh .SH NAME -gssapi_mechs_introGSS-API mechanisms - \- +gssapi_mechs_intro \- GSS-API mechanisms + .SH "GSS-API mechanisms" .PP .IP "\(bu" 2 diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_services_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_services_intro.3 index 56326528f1c0..e80566a99ba7 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_services_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/gssapi_services_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: gssapi_services_intro.3,v 1.2 2019/12/15 22:50:43 christos Exp $ +.\" $NetBSD: gssapi_services_intro.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "gssapi_services_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalGSS-APIlibrary" \" -*- nroff -*- +.TH "gssapi_services_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal GSS-API library" \" -*- nroff -*- .ad l .nh .SH NAME -gssapi_services_introIntroduction to GSS-API services - \- +gssapi_services_intro \- Introduction to GSS-API services + .SH "GSS-API services" .PP .SS "Context creation" diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/internal_v_smechname.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/internal_v_smechname.3 index e43bc12d0bdd..8446bd54ccf6 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/internal_v_smechname.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/gssapi/man/man3/internal_v_smechname.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: internal_v_smechname.3,v 1.2 2019/12/15 22:50:43 christos Exp $ +.\" $NetBSD: internal_v_smechname.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "internal_v_smechname" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalGSS-APIlibrary" \" -*- nroff -*- +.TH "internal_v_smechname" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal GSS-API library" \" -*- nroff -*- .ad l .nh .SH NAME -internal_v_smechnameInternal names and mechanism names - \- +internal_v_smechname \- Internal names and mechanism names + .SH "Name forms" .PP There are two name representations in GSS-API: Internal form and Contiguous string ('flat') form\&. Functions \fBgss_export_name()\fP and \fBgss_import_name()\fP can be used to convert between the two forms\&. @@ -18,5 +18,5 @@ The Internal form is opaque to the application programmer and is implementation- There is also a special form of the Internal Name (IN), and that is the Mechanism Name (MN)\&. In the mechanism name all the generic information is stripped of and only contain the information for one mechanism\&. In GSS-API some function return MN and some require MN as input\&. Each of these function is marked up as such\&. .PP .PP -Describe relationship between import_name, canonicalize_name, export_name and friends\&. Also, update for RFC2743 language ('contiguous' and 'flat' are gone, leaving just 'exported name +@FIXME Describe relationship between import_name, canonicalize_name, export_name and friends\&. Also, update for RFC2743 language ('contiguous' and 'flat' are gone, leaving just 'exported name token', 'internal', and 'MN')\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_hcrypto_md2.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_hcrypto_md2.3 deleted file mode 100644 index 7d274e9ea0cf..000000000000 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_hcrypto_md2.3 +++ /dev/null @@ -1,3 +0,0 @@ -.\" $NetBSD: EVP_hcrypto_md2.3,v 1.2 2019/12/15 22:50:44 christos Exp $ -.\" -.so man3/hcrypto_evp.3 diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_md2.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_md2.3 deleted file mode 100644 index dc3cce96be06..000000000000 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/EVP_md2.3 +++ /dev/null @@ -1,3 +0,0 @@ -.\" $NetBSD: EVP_md2.3,v 1.2 2019/12/15 22:50:44 christos Exp $ -.\" -.so man3/hcrypto_evp.3 diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_core.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_core.3 index 0dbbfe9c1d2e..cbd00747b1a4 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_core.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_core.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_core.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_core.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_core" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_core" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_core +hcrypto_core \- hcrypto function controlling behavior .SH SYNOPSIS .br .PP @@ -35,7 +35,7 @@ hcrypto_core .SS "int EVP_CIPHER_CTX_ctrl (EVP_CIPHER_CTX * ctx, int type, int arg, void * data)" Perform a operation on a ctx .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP context to perform operation on\&. .br @@ -46,7 +46,7 @@ Perform a operation on a ctx \fIdata\fP addition data to operation\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 for success, 0 for failure\&. .RE @@ -55,14 +55,14 @@ Perform a operation on a ctx .SS "int EVP_CIPHER_CTX_rand_key (EVP_CIPHER_CTX * ctx, void * key)" Generate a random key for the specificed EVP_CIPHER\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP EVP_CIPHER_CTX type to build the key for\&. .br \fIkey\fP return key, must be at least \fBEVP_CIPHER_key_length()\fP byte long\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 for success, 0 for failure\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_des.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_des.3 index 29a76c339996..9e7533f41d9d 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_des.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_des.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_des.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_des.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_des" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_des" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_des +hcrypto_des \- DES crypto functions .SH SYNOPSIS .br .PP @@ -79,7 +79,7 @@ Crete a checksum using DES in CBC encryption mode\&. This mode is only used for .PP The IV must always be diffrent for diffrent input data blocks\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP data to checksum .br @@ -98,7 +98,7 @@ Encrypt/decrypt a block using DES in Chain Block Cipher mode (cbc)\&. .PP The IV must always be diffrent for diffrent input data blocks\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP data to encrypt .br @@ -119,7 +119,7 @@ Encrypt/decrypt using DES in cipher feedback mode with 64 bit feedback\&. .PP The IV must always be diffrent for diffrent input data blocks\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP data to encrypt .br @@ -140,12 +140,12 @@ The IV must always be diffrent for diffrent input data blocks\&. .SS "int HC_DEPRECATED DES_check_key_parity (DES_cblock * key)" Check if the key have correct parity\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP key to check the parity\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, 0 on failure\&. .RE @@ -154,7 +154,7 @@ Check if the key have correct parity\&. .SS "void DES_ecb3_encrypt (DES_cblock * input, DES_cblock * output, DES_key_schedule * ks1, DES_key_schedule * ks2, DES_key_schedule * ks3, int encp)" Encrypt/decrypt a block using triple DES using EDE mode, encrypt/decrypt/encrypt\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIinput\fP data to encrypt .br @@ -173,7 +173,7 @@ Encrypt/decrypt a block using triple DES using EDE mode, encrypt/decrypt/encrypt .SS "void DES_ecb_encrypt (DES_cblock * input, DES_cblock * output, DES_key_schedule * ks, int encp)" Encrypt/decrypt a block using DES\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIinput\fP data to encrypt .br @@ -190,7 +190,7 @@ Encrypt/decrypt using Triple DES in Chain Block Cipher mode (cbc)\&. .PP The IV must always be diffrent for diffrent input data blocks\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP data to encrypt .br @@ -213,7 +213,7 @@ The IV must always be diffrent for diffrent input data blocks\&. .SS "void DES_encrypt (uint32_t u[2], DES_key_schedule * ks, int encp)" Encrypt/decrypt a block using DES\&. Also called ECB mode .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIu\fP data to encrypt .br @@ -226,7 +226,7 @@ Encrypt/decrypt a block using DES\&. Also called ECB mode .SS "void HC_DEPRECATED DES_init_random_number_generator (DES_cblock * seed)" Seed the random number generator\&. Deprecated, use \fBRAND - random number\fP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIseed\fP a seed to seed that random number generate with\&. .RE @@ -235,12 +235,12 @@ Seed the random number generator\&. Deprecated, use \fBRAND - random number\fP .SS "int DES_is_weak_key (DES_cblock * key)" Checks if the key is any of the weaks keys that makes DES attacks trival\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP key to check\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 if the key is weak, 0 otherwise\&. .RE @@ -249,14 +249,14 @@ Checks if the key is any of the weaks keys that makes DES attacks trival\&. .SS "int DES_key_sched (DES_cblock * key, DES_key_schedule * ks)" Compatibility function for eay libdes, works just like \fBDES_set_key_checked()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP a key to initialize the key schedule with\&. .br \fIks\fP a key schedule to initialize\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, -1 on invalid parity, -2 on weak key\&. .RE @@ -265,12 +265,12 @@ Compatibility function for eay libdes, works just like \fBDES_set_key_checked()\ .SS "int HC_DEPRECATED DES_new_random_key (DES_cblock * key)" Generate a random des key using a random block, fixup parity and skip weak keys\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP is set to a random key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, non zero on random number generator failure\&. .RE @@ -281,7 +281,7 @@ Encrypt/decrypt a block using DES in Propagating Cipher Block Chaining mode\&. T .PP The IV must always be diffrent for diffrent input data blocks\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP data to encrypt .br @@ -300,7 +300,7 @@ The IV must always be diffrent for diffrent input data blocks\&. .SS "void HC_DEPRECATED DES_random_key (DES_cblock * key)" Generate a random key, deprecated since it doesn't return an error code, use \fBDES_new_random_key()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP is set to a random key\&. .RE @@ -309,14 +309,14 @@ Generate a random key, deprecated since it doesn't return an error code, use \fB .SS "int HC_DEPRECATED DES_set_key (DES_cblock * key, DES_key_schedule * ks)" Setup a des key schedule from a key\&. Deprecated function, use \fBDES_set_key_unchecked()\fP or \fBDES_set_key_checked()\fP instead\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP a key to initialize the key schedule with\&. .br \fIks\fP a key schedule to initialize\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success .RE @@ -325,14 +325,14 @@ Setup a des key schedule from a key\&. Deprecated function, use \fBDES_set_key_u .SS "int DES_set_key_checked (DES_cblock * key, DES_key_schedule * ks)" Just like \fBDES_set_key_unchecked()\fP except checking that the key is not weak for or have correct parity\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP a key to initialize the key schedule with\&. .br \fIks\fP a key schedule to initialize\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, -1 on invalid parity, -2 on weak key\&. .RE @@ -343,14 +343,14 @@ Setup a des key schedule from a key\&. The key is no longer needed after this tr .PP Does NOT check that the key is weak for or have wrong parity\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP a key to initialize the key schedule with\&. .br \fIks\fP a key schedule to initialize\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success .RE @@ -359,7 +359,7 @@ Does NOT check that the key is weak for or have wrong parity\&. .SS "void DES_set_odd_parity (DES_cblock * key)" Set the parity of the key block, used to generate a des key from a random key\&. See \fBDES key generation\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP key to fixup the parity for\&. .RE @@ -368,7 +368,7 @@ Set the parity of the key block, used to generate a des key from a random key\&. .SS "void DES_string_to_key (const char * str, DES_cblock * key)" Convert a string to a DES key\&. Use something like \fBPKCS5_PBKDF2_HMAC_SHA1()\fP to create key from passwords\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIstr\fP The string to convert to a key .br diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_dh.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_dh.3 index 3e6d8ae75bfb..6017ee7ab583 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_dh.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_dh.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_dh.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_dh.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_dh" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_dh" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_dh +hcrypto_dh \- Diffie-Hellman functions .SH SYNOPSIS .br .PP @@ -68,7 +68,7 @@ See the \fBDH - Diffie-Hellman key exchange\fP for description and examples\&. .SS "int DH_check_pubkey (const DH * dh, const BIGNUM * pub_key, int * codes)" Check that the public key is sane\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP the local peer DH parameters\&. .br @@ -77,7 +77,7 @@ Check that the public key is sane\&. \fIcodes\fP return that the failures of the pub_key are\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, 0 on failure and *codes is set the the combined fail check for the public key .RE @@ -94,7 +94,7 @@ if g == 2, pub_key have more then one bit set, if bits set is 1, log_2(pub_key) .SS "int DH_compute_key (unsigned char * shared_key, const BIGNUM * peer_pub_key, DH * dh)" Complute the shared secret key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIshared_key\fP the resulting shared key, need to be at least \fBDH_size()\fP large\&. .br @@ -103,7 +103,7 @@ Complute the shared secret key\&. \fIdh\fP the dh key pair\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -112,7 +112,7 @@ Checks that the pubkey passed in is valid using \fBDH_check_pubkey()\fP\&. .SS "void DH_free (DH * dh)" Free a DH object and release related resources, like ENGINE, that the object was using\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP object to be freed\&. .RE @@ -121,12 +121,12 @@ Free a DH object and release related resources, like ENGINE, that the object was .SS "int DH_generate_key (DH * dh)" Generate a new DH private-public key pair\&. The dh parameter must be allocted first with \fBDH_new()\fP\&. dh->p and dp->g must be set\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP dh parameter\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -135,7 +135,7 @@ Generate a new DH private-public key pair\&. The dh parameter must be allocted f .SS "int DH_generate_parameters_ex (DH * dh, int prime_len, int generator, BN_GENCB * cb)" Generate DH parameters for the DH object give parameters\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP The DH object to generate parameters for\&. .br @@ -146,7 +146,7 @@ Generate DH parameters for the DH object give parameters\&. \fIcb\fP Callback parameters to show progress, can be NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the maximum size in bytes of the out data\&. .RE @@ -155,7 +155,7 @@ the maximum size in bytes of the out data\&. .SS "const DH_METHOD* DH_get_default_method (void)" Return the default DH implementation\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 pointer to a DH_METHOD\&. .RE @@ -164,14 +164,14 @@ pointer to a DH_METHOD\&. .SS "void* DH_get_ex_data (DH * dh, int idx)" Get the data for index idx in the DH object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP DH object\&. .br \fIidx\fP index to get the data for\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the object store in index idx .RE @@ -180,7 +180,7 @@ the object store in index idx .SS "const DH_METHOD* DH_ltm_method (void)" DH implementation using libtommath\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DH_METHOD for the DH implementation using libtommath\&. .RE @@ -189,7 +189,7 @@ the DH_METHOD for the DH implementation using libtommath\&. .SS "DH* DH_new (void)" Create a new DH object using DH_new_method(NULL), see \fBDH_new_method()\fP\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a newly allocated DH object\&. .RE @@ -198,12 +198,12 @@ a newly allocated DH object\&. .SS "DH* DH_new_method (ENGINE * engine)" Create a new DH object from the given engine, if the NULL is used, the default engine is used\&. Free the DH object with \fBDH_free()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIengine\fP The engine to use to allocate the DH object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a newly allocated DH object\&. .RE @@ -212,7 +212,7 @@ a newly allocated DH object\&. .SS "const DH_METHOD* DH_null_method (void)" Return the dummy DH implementation\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 pointer to a DH_METHOD\&. .RE @@ -221,7 +221,7 @@ pointer to a DH_METHOD\&. .SS "void DH_set_default_method (const DH_METHOD * meth)" Set the default DH implementation\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fImeth\fP pointer to a DH_METHOD\&. .RE @@ -230,7 +230,7 @@ Set the default DH implementation\&. .SS "int DH_set_ex_data (DH * dh, int idx, void * data)" Set the data index idx in the DH object to data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP DH object\&. .br @@ -239,7 +239,7 @@ Set the data index idx in the DH object to data\&. \fIdata\fP data to store for the index idx\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -248,14 +248,14 @@ Set the data index idx in the DH object to data\&. .SS "int DH_set_method (DH * dh, const DH_METHOD * method)" Set a new method for the DH keypair\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP dh parameter\&. .br \fImethod\fP the new method for the DH parameter\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -264,12 +264,12 @@ Set a new method for the DH keypair\&. .SS "int DH_size (const DH * dh)" The maximum output size of the \fBDH_compute_key()\fP function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP The DH object to get the size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the maximum size in bytes of the out data\&. .RE @@ -278,12 +278,12 @@ the maximum size in bytes of the out data\&. .SS "int DH_up_ref (DH * dh)" Add a reference to the DH object\&. The object should be free with \fBDH_free()\fP to drop the reference\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdh\fP the object to increase the reference count too\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the updated reference count, can't safely be used except for debug printing\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_evp.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_evp.3 index adf01729c4cb..0cd2842aaad2 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_evp.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_evp.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_evp.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_evp.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_evp" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_evp" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_evp +hcrypto_evp \- EVP generic crypto functions .SH SYNOPSIS .br .PP @@ -51,9 +51,6 @@ hcrypto_evp .RI "const EVP_MD * \fBEVP_hcrypto_md4\fP (void)" .br .ti -1c -.RI "const EVP_MD * \fBEVP_hcrypto_md2\fP (void)" -.br -.ti -1c .RI "const EVP_CIPHER * \fBEVP_hcrypto_des_cbc\fP (void)" .br .ti -1c @@ -192,9 +189,6 @@ hcrypto_evp .RI "const EVP_MD * \fBEVP_md4\fP (void)" .br .ti -1c -.RI "const EVP_MD * \fBEVP_md2\fP (void)" -.br -.ti -1c .RI "const EVP_MD * \fBEVP_md_null\fP (void)" .br .ti -1c @@ -314,20 +308,20 @@ See the \fBEVP - generic crypto interface\fP for description and examples\&. .SS "const EVP_CIPHER* EVP_aes_128_cbc (void)" The AES-128 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128 EVP_CIPHER pointer\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "const EVP_CIPHER* EVP_aes_128_cfb8 (void)" The AES-128 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128 EVP_CIPHER pointer\&. .RE @@ -336,7 +330,7 @@ the AES-128 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_aes_192_cbc (void)" The AES-192 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-192 EVP_CIPHER pointer\&. .RE @@ -345,7 +339,7 @@ the AES-192 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_aes_192_cfb8 (void)" The AES-192 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-192 EVP_CIPHER pointer\&. .RE @@ -354,7 +348,7 @@ the AES-192 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_aes_256_cbc (void)" The AES-256 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-256 EVP_CIPHER pointer\&. .RE @@ -363,7 +357,7 @@ the AES-256 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_aes_256_cfb8 (void)" The AES-256 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-256 EVP_CIPHER pointer\&. .RE @@ -374,7 +368,7 @@ Provides a legancy string to key function, used in PEM files\&. .PP New protocols should use new string to key functions like NIST SP56-800A or PKCS#5 v2\&.0 (see \fBPKCS5_PBKDF2_HMAC_SHA1()\fP)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fItype\fP type of cipher to use .br @@ -393,7 +387,7 @@ New protocols should use new string to key functions like NIST SP56-800A or PKCS \fIivdata\fP output ivdata, needs to of the size \fBEVP_CIPHER_block_size()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the size of derived key\&. .RE @@ -402,7 +396,7 @@ the size of derived key\&. .SS "const EVP_CIPHER* EVP_camellia_128_cbc (void)" The Camellia-128 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-128 EVP_CIPHER pointer\&. .RE @@ -411,7 +405,7 @@ the Camellia-128 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_camellia_192_cbc (void)" The Camellia-198 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-198 EVP_CIPHER pointer\&. .RE @@ -420,7 +414,7 @@ the Camellia-198 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_camellia_256_cbc (void)" The Camellia-256 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-256 EVP_CIPHER pointer\&. .RE @@ -429,30 +423,30 @@ the Camellia-256 EVP_CIPHER pointer\&. .SS "size_t EVP_CIPHER_block_size (const EVP_CIPHER * c)" Return the block size of the cipher\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP cipher to get the block size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the block size of the cipher\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "size_t EVP_CIPHER_CTX_block_size (const EVP_CIPHER_CTX * ctx)" Return the block size of the cipher context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP cipher context to get the block size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the block size of the cipher context\&. .RE @@ -461,12 +455,12 @@ the block size of the cipher context\&. .SS "const EVP_CIPHER* EVP_CIPHER_CTX_cipher (EVP_CIPHER_CTX * ctx)" Return the EVP_CIPHER for a EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to get the cipher type from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the EVP_CIPHER pointer\&. .RE @@ -475,30 +469,30 @@ the EVP_CIPHER pointer\&. .SS "int EVP_CIPHER_CTX_cleanup (EVP_CIPHER_CTX * c)" Clean up the EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP the cipher to clean up\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "unsigned long EVP_CIPHER_CTX_flags (const EVP_CIPHER_CTX * ctx)" Get the flags for an EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the EVP_CIPHER_CTX to get the flags from .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the flags for an EVP_CIPHER_CTX\&. .RE @@ -507,12 +501,12 @@ the flags for an EVP_CIPHER_CTX\&. .SS "void* EVP_CIPHER_CTX_get_app_data (EVP_CIPHER_CTX * ctx)" Get the app data for an EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the EVP_CIPHER_CTX to get the app data from .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the app data for an EVP_CIPHER_CTX\&. .RE @@ -521,25 +515,25 @@ the app data for an EVP_CIPHER_CTX\&. .SS "void EVP_CIPHER_CTX_init (EVP_CIPHER_CTX * c)" Initiate a EVP_CIPHER_CTX context\&. Clean up with \fBEVP_CIPHER_CTX_cleanup()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP the cipher initiate\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "size_t EVP_CIPHER_CTX_iv_length (const EVP_CIPHER_CTX * ctx)" Return the IV size of the cipher context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP cipher context to get the IV size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the IV size of the cipher context\&. .RE @@ -548,12 +542,12 @@ the IV size of the cipher context\&. .SS "size_t EVP_CIPHER_CTX_key_length (const EVP_CIPHER_CTX * ctx)" Return the key size of the cipher context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP cipher context to get the key size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the key size of the cipher context\&. .RE @@ -562,12 +556,12 @@ the key size of the cipher context\&. .SS "int EVP_CIPHER_CTX_mode (const EVP_CIPHER_CTX * ctx)" Get the mode for an EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the EVP_CIPHER_CTX to get the mode from .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the mode for an EVP_CIPHER_CTX\&. .RE @@ -576,7 +570,7 @@ the mode for an EVP_CIPHER_CTX\&. .SS "void EVP_CIPHER_CTX_set_app_data (EVP_CIPHER_CTX * ctx, void * data)" Set the app data for an EVP_CIPHER_CTX context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the EVP_CIPHER_CTX to set the app data for .br @@ -587,14 +581,14 @@ Set the app data for an EVP_CIPHER_CTX context\&. .SS "int EVP_CIPHER_CTX_set_key_length (EVP_CIPHER_CTX * c, int length)" If the cipher type supports it, change the key length .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP the cipher context to change the key length for .br \fIlength\fP new key length .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -603,43 +597,43 @@ If the cipher type supports it, change the key length .SS "size_t EVP_CIPHER_iv_length (const EVP_CIPHER * c)" Return the IV size of the cipher\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP cipher to get the IV size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the IV size of the cipher\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "size_t EVP_CIPHER_key_length (const EVP_CIPHER * c)" Return the key size of the cipher\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIc\fP cipher to get the key size from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the key size of the cipher\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "int EVP_CipherFinal_ex (EVP_CIPHER_CTX * ctx, void * out, int * outlen)" Encipher/decipher final data .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the cipher context\&. .br @@ -652,20 +646,20 @@ The input length needs to be at least \fBEVP_CIPHER_block_size()\fP bytes long\& .PP See \fBEVP Cipher\fP for an example how to use this function\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "int EVP_CipherInit_ex (EVP_CIPHER_CTX * ctx, const EVP_CIPHER * c, ENGINE * engine, const void * key, const void * iv, int encp)" Initiate the EVP_CIPHER_CTX context to encrypt or decrypt data\&. Clean up with \fBEVP_CIPHER_CTX_cleanup()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP context to initiate .br @@ -680,20 +674,20 @@ Initiate the EVP_CIPHER_CTX context to encrypt or decrypt data\&. Clean up with \fIencp\fP non zero will encrypt, -1 use the previous value\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "int EVP_CipherUpdate (EVP_CIPHER_CTX * ctx, void * out, int * outlen, void * in, size_t inlen)" Encipher/decipher partial data .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the cipher context\&. .br @@ -710,20 +704,20 @@ The output buffer length should at least be \fBEVP_CIPHER_block_size()\fP byte l .PP See \fBEVP Cipher\fP for an example how to use this function\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE .PP If there in no spare bytes in the left from last Update and the input length is on the block boundery, the \fBEVP_CipherUpdate()\fP function can take a shortcut (and preformance gain) and directly encrypt the data, otherwise we hav to fix it up and store extra it the EVP_CIPHER_CTX\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBexample_evp_cipher\&.c\fP\&. .SS "const EVP_CIPHER* EVP_des_cbc (void)" The DES cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-CBC EVP_CIPHER pointer\&. .RE @@ -732,7 +726,7 @@ the DES-CBC EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_des_ede3_cbc (void)" The triple DES cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-EDE3-CBC EVP_CIPHER pointer\&. .RE @@ -741,7 +735,7 @@ the DES-EDE3-CBC EVP_CIPHER pointer\&. .SS "int EVP_Digest (const void * data, size_t dsize, void * hash, unsigned int * hsize, const EVP_MD * md, ENGINE * engine)" Do the whole \fBEVP_MD_CTX_create()\fP, \fBEVP_DigestInit_ex()\fP, \fBEVP_DigestUpdate()\fP, \fBEVP_DigestFinal_ex()\fP, \fBEVP_MD_CTX_destroy()\fP dance in one call\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP the data to update the context with .br @@ -756,7 +750,7 @@ Do the whole \fBEVP_MD_CTX_create()\fP, \fBEVP_DigestInit_ex()\fP, \fBEVP_Digest \fIengine\fP engine to use, NULL for default engine\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -765,7 +759,7 @@ Do the whole \fBEVP_MD_CTX_create()\fP, \fBEVP_DigestInit_ex()\fP, \fBEVP_Digest .SS "int EVP_DigestFinal_ex (EVP_MD_CTX * ctx, void * hash, unsigned int * size)" Complete the message digest\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to complete\&. .br @@ -774,7 +768,7 @@ Complete the message digest\&. \fIsize\fP the output size of hash\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -783,7 +777,7 @@ Complete the message digest\&. .SS "int EVP_DigestInit_ex (EVP_MD_CTX * ctx, const EVP_MD * md, ENGINE * engine)" Init a EVP_MD_CTX for use a specific message digest and engine\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the message digest context to init\&. .br @@ -792,7 +786,7 @@ Init a EVP_MD_CTX for use a specific message digest and engine\&. \fIengine\fP the engine to use, NULL to use the default engine\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -801,7 +795,7 @@ Init a EVP_MD_CTX for use a specific message digest and engine\&. .SS "int EVP_DigestUpdate (EVP_MD_CTX * ctx, const void * data, size_t size)" Update the digest with some data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to update .br @@ -810,7 +804,7 @@ Update the digest with some data\&. \fIsize\fP length of data .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -819,7 +813,7 @@ Update the digest with some data\&. .SS "const EVP_CIPHER* EVP_enc_null (void)" The NULL cipher type, does no encryption/decryption\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the null EVP_CIPHER pointer\&. .RE @@ -828,12 +822,12 @@ the null EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_get_cipherbyname (const char * name)" Get the cipher type using their name\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP the name of the cipher\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the selected EVP_CIPHER pointer or NULL if not found\&. .RE @@ -842,7 +836,7 @@ the selected EVP_CIPHER pointer or NULL if not found\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_128_cbc (void)" The AES-128 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128 EVP_CIPHER pointer\&. .RE @@ -851,7 +845,7 @@ the AES-128 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_128_cfb8 (void)" The AES-128 CFB8 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128 EVP_CIPHER pointer\&. .RE @@ -860,7 +854,7 @@ the AES-128 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_192_cbc (void)" The AES-192 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-192 EVP_CIPHER pointer\&. .RE @@ -869,7 +863,7 @@ the AES-192 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_192_cfb8 (void)" The AES-192 CFB8 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-192 EVP_CIPHER pointer\&. .RE @@ -878,7 +872,7 @@ the AES-192 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_256_cbc (void)" The AES-256 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-256 EVP_CIPHER pointer\&. .RE @@ -887,7 +881,7 @@ the AES-256 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_aes_256_cfb8 (void)" The AES-256 CFB8 cipher type (hcrypto) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-256 EVP_CIPHER pointer\&. .RE @@ -896,7 +890,7 @@ the AES-256 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_camellia_128_cbc (void)" The Camellia-128 cipher type - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-128 EVP_CIPHER pointer\&. .RE @@ -905,7 +899,7 @@ the Camellia-128 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_camellia_192_cbc (void)" The Camellia-198 cipher type - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-198 EVP_CIPHER pointer\&. .RE @@ -914,7 +908,7 @@ the Camellia-198 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_camellia_256_cbc (void)" The Camellia-256 cipher type - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-256 EVP_CIPHER pointer\&. .RE @@ -923,7 +917,7 @@ the Camellia-256 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_des_cbc (void)" The DES cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-CBC EVP_CIPHER pointer\&. .RE @@ -932,25 +926,16 @@ the DES-CBC EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_des_ede3_cbc (void)" The triple DES cipher type - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-EDE3-CBC EVP_CIPHER pointer\&. .RE .PP -.SS "const EVP_MD* EVP_hcrypto_md2 (void)" -The message digest MD2 - hcrypto -.PP -\fBReturns:\fP -.RS 4 -the message digest type\&. -.RE -.PP - .SS "const EVP_MD* EVP_hcrypto_md4 (void)" The message digest MD4 - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -959,7 +944,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_hcrypto_md5 (void)" The message digest MD5 - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -968,7 +953,7 @@ the message digest type\&. .SS "const EVP_CIPHER* EVP_hcrypto_rc2_40_cbc (void)" The RC2-40 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2-40 EVP_CIPHER pointer\&. .RE @@ -977,7 +962,7 @@ the RC2-40 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_rc2_64_cbc (void)" The RC2-64 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2-64 EVP_CIPHER pointer\&. .RE @@ -986,7 +971,7 @@ the RC2-64 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_hcrypto_rc2_cbc (void)" The RC2 cipher type - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2 EVP_CIPHER pointer\&. .RE @@ -995,7 +980,7 @@ the RC2 EVP_CIPHER pointer\&. .SS "const EVP_MD* EVP_hcrypto_sha1 (void)" The message digest SHA1 - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1004,7 +989,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_hcrypto_sha256 (void)" The message digest SHA256 - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1013,7 +998,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_hcrypto_sha384 (void)" The message digest SHA384 - hcrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1022,16 +1007,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_hcrypto_sha512 (void)" The message digest SHA512 - hcrypto .PP -\fBReturns:\fP -.RS 4 -the message digest type\&. -.RE -.PP - -.SS "const EVP_MD* EVP_md2 (void)" -The message digest MD2 -.PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1040,7 +1016,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_md4 (void)" The message digest MD4 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1049,7 +1025,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_md5 (void)" The message digest MD5 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1058,12 +1034,12 @@ the message digest type\&. .SS "size_t EVP_MD_block_size (const EVP_MD * md)" Return the blocksize of the message digest function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fImd\fP the evp message .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 size size of the message digest block size .RE @@ -1072,12 +1048,12 @@ size size of the message digest block size .SS "size_t EVP_MD_CTX_block_size (EVP_MD_CTX * ctx)" Return the blocksize of the message digest function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the evp message digest context .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 size size of the message digest block size .RE @@ -1086,12 +1062,12 @@ size size of the message digest block size .SS "int EVP_MD_CTX_cleanup (EVP_MD_CTX * ctx)" Free the resources used by the EVP_MD context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to free the resources from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -1100,7 +1076,7 @@ Free the resources used by the EVP_MD context\&. .SS "EVP_MD_CTX* EVP_MD_CTX_create (void)" Allocate a messsage digest context object\&. Free with \fBEVP_MD_CTX_destroy()\fP\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a newly allocated message digest context object\&. .RE @@ -1109,7 +1085,7 @@ a newly allocated message digest context object\&. .SS "void EVP_MD_CTX_destroy (EVP_MD_CTX * ctx)" Free a messsage digest context object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP context to free\&. .RE @@ -1118,7 +1094,7 @@ Free a messsage digest context object\&. .SS "void EVP_MD_CTX_init (EVP_MD_CTX * ctx)" Initiate a messsage digest context object\&. Deallocate with \fBEVP_MD_CTX_cleanup()\fP\&. Please use \fBEVP_MD_CTX_create()\fP instead\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP variable to initiate\&. .RE @@ -1127,12 +1103,12 @@ Initiate a messsage digest context object\&. Deallocate with \fBEVP_MD_CTX_clean .SS "const EVP_MD* EVP_MD_CTX_md (EVP_MD_CTX * ctx)" Get the EVP_MD use for a specified context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the EVP_MD context to get the EVP_MD for\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the EVP_MD used for the context\&. .RE @@ -1141,12 +1117,12 @@ the EVP_MD used for the context\&. .SS "size_t EVP_MD_CTX_size (EVP_MD_CTX * ctx)" Return the output size of the message digest function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the evp message digest context .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 size output size of the message digest function\&. .RE @@ -1155,7 +1131,7 @@ size output size of the message digest function\&. .SS "const EVP_MD* EVP_md_null (void)" The null message digest .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1164,12 +1140,12 @@ the message digest type\&. .SS "size_t EVP_MD_size (const EVP_MD * md)" Return the output size of the message digest function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fImd\fP the evp message .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 size output size of the message digest function\&. .RE @@ -1178,7 +1154,7 @@ size output size of the message digest function\&. .SS "const EVP_CIPHER* EVP_rc2_40_cbc (void)" The RC2 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2 EVP_CIPHER pointer\&. .RE @@ -1187,7 +1163,7 @@ the RC2 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_rc2_64_cbc (void)" The RC2 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2 EVP_CIPHER pointer\&. .RE @@ -1196,7 +1172,7 @@ the RC2 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_rc2_cbc (void)" The RC2 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2 EVP_CIPHER pointer\&. .RE @@ -1205,7 +1181,7 @@ the RC2 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_rc4 (void)" The RC4 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC4 EVP_CIPHER pointer\&. .RE @@ -1214,7 +1190,7 @@ the RC4 EVP_CIPHER pointer\&. .SS "const EVP_CIPHER* EVP_rc4_40 (void)" The RC4-40 cipher type .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC4-40 EVP_CIPHER pointer\&. .RE @@ -1223,7 +1199,7 @@ the RC4-40 EVP_CIPHER pointer\&. .SS "const EVP_MD* EVP_sha (void)" The message digest SHA1 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1232,7 +1208,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_sha1 (void)" The message digest SHA1 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1241,7 +1217,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_sha256 (void)" The message digest SHA256 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1250,7 +1226,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_sha384 (void)" The message digest SHA384 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1259,7 +1235,7 @@ the message digest type\&. .SS "const EVP_MD* EVP_sha512 (void)" The message digest SHA512 .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the message digest type\&. .RE @@ -1268,16 +1244,33 @@ the message digest type\&. .SS "const EVP_CIPHER* EVP_wincrypt_des_ede3_cbc (void)" The triple DES cipher type (Micrsoft crypt provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-EDE3-CBC EVP_CIPHER pointer\&. .RE .PP +.SS "hc_EVP_CIPH_CBC_MODE OSSL_CIPHER_ALGORITHM (rc2_64_cbc, hc_EVP_CIPH_CBC_MODE| hc_EVP_CIPH_VARIABLE_LENGTH)" +The RC2-64 cipher type - OpenSSL +.PP +\fBReturns\fP +.RS 4 +the RC2-64 EVP_CIPHER pointer\&. The Camellia-128 cipher type - OpenSSL +.PP +the Camellia-128 EVP_CIPHER pointer\&. The Camellia-198 cipher type - OpenSSL +.PP +the Camellia-198 EVP_CIPHER pointer\&. The Camellia-256 cipher type - OpenSSL +.PP +the Camellia-256 EVP_CIPHER pointer\&. The RC4 cipher type (OpenSSL provider) +.PP +the RC4 EVP_CIPHER pointer\&. +.RE +.PP + .SS "OSSL_CIPHER_ALGORITHM (rc2_cbc, hc_EVP_CIPH_CBC_MODE| hc_EVP_CIPH_VARIABLE_LENGTH)" The triple DES cipher type (OpenSSL provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the DES-EDE3-CBC EVP_CIPHER pointer\&. The DES cipher type (OpenSSL provider) .PP @@ -1301,108 +1294,82 @@ the RC2-40 EVP_CIPHER pointer\&. .RE .PP -.SS "hc_EVP_CIPH_CBC_MODE OSSL_CIPHER_ALGORITHM (rc2_64_cbc, hc_EVP_CIPH_CBC_MODE| hc_EVP_CIPH_VARIABLE_LENGTH)" -The RC2-64 cipher type - OpenSSL -.PP -\fBReturns:\fP -.RS 4 -the RC2-64 EVP_CIPHER pointer\&. The Camellia-128 cipher type - OpenSSL -.PP -the Camellia-128 EVP_CIPHER pointer\&. The Camellia-198 cipher type - OpenSSL -.PP -the Camellia-198 EVP_CIPHER pointer\&. The Camellia-256 cipher type - OpenSSL -.PP -the Camellia-256 EVP_CIPHER pointer\&. The RC4 cipher type (OpenSSL provider) -.PP -the RC4 EVP_CIPHER pointer\&. -.RE -.PP - -.SS "WINCNG_CIPHER_ALGORITHM (des_ede3_cbc, BCRYPT_3DES_ALGORITHM, 8, 24, 8, EVP_CIPH_CBC_MODE)" -The triple DES cipher type (Windows CNG provider) -.PP -\fBReturns:\fP -.RS 4 -the DES-EDE3-CBC EVP_CIPHER pointer\&. -.RE -.PP - -.SS "WINCNG_CIPHER_ALGORITHM (des_cbc, BCRYPT_DES_ALGORITHM, 8, 8, 8, EVP_CIPH_CBC_MODE)" -The DES cipher type (Windows CNG provider) -.PP -\fBReturns:\fP -.RS 4 -the DES-CBC EVP_CIPHER pointer\&. -.RE -.PP - .SS "WINCNG_CIPHER_ALGORITHM (aes_128_cbc, BCRYPT_AES_ALGORITHM, 16, 16, 16, EVP_CIPH_CBC_MODE)" The AES-128 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128-CBC EVP_CIPHER pointer\&. .RE .PP -.SS "WINCNG_CIPHER_ALGORITHM (aes_192_cbc, BCRYPT_AES_ALGORITHM, 16, 24, 16, EVP_CIPH_CBC_MODE)" -The AES-192 cipher type (Windows CNG provider) -.PP -\fBReturns:\fP -.RS 4 -the AES-192-CBC EVP_CIPHER pointer\&. -.RE -.PP - -.SS "WINCNG_CIPHER_ALGORITHM (aes_256_cbc, BCRYPT_AES_ALGORITHM, 16, 32, 16, EVP_CIPH_CBC_MODE)" -The AES-256 cipher type (Windows CNG provider) -.PP -\fBReturns:\fP -.RS 4 -the AES-256-CBC EVP_CIPHER pointer\&. -.RE -.PP - .SS "WINCNG_CIPHER_ALGORITHM (aes_128_cfb8, BCRYPT_AES_ALGORITHM, 16, 16, 16, EVP_CIPH_CFB8_MODE)" The AES-128 CFB8 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-128-CFB8 EVP_CIPHER pointer\&. .RE .PP +.SS "WINCNG_CIPHER_ALGORITHM (aes_192_cbc, BCRYPT_AES_ALGORITHM, 16, 24, 16, EVP_CIPH_CBC_MODE)" +The AES-192 cipher type (Windows CNG provider) +.PP +\fBReturns\fP +.RS 4 +the AES-192-CBC EVP_CIPHER pointer\&. +.RE +.PP + .SS "WINCNG_CIPHER_ALGORITHM (aes_192_cfb8, BCRYPT_AES_ALGORITHM, 16, 24, 16, EVP_CIPH_CFB8_MODE)" The AES-192 CFB8 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-192-CFB8 EVP_CIPHER pointer\&. .RE .PP +.SS "WINCNG_CIPHER_ALGORITHM (aes_256_cbc, BCRYPT_AES_ALGORITHM, 16, 32, 16, EVP_CIPH_CBC_MODE)" +The AES-256 cipher type (Windows CNG provider) +.PP +\fBReturns\fP +.RS 4 +the AES-256-CBC EVP_CIPHER pointer\&. +.RE +.PP + .SS "WINCNG_CIPHER_ALGORITHM (aes_256_cfb8, BCRYPT_AES_ALGORITHM, 16, 32, 16, EVP_CIPH_CFB8_MODE)" The AES-256 CFB8 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the AES-256-CFB8 EVP_CIPHER pointer\&. .RE .PP -.SS "WINCNG_CIPHER_ALGORITHM (rc2_cbc, BCRYPT_RC2_ALGORITHM, 8, 16, 8, EVP_CIPH_CBC_MODE)" -The RC2 cipher type - Windows CNG +.SS "WINCNG_CIPHER_ALGORITHM (des_cbc, BCRYPT_DES_ALGORITHM, 8, 8, 8, EVP_CIPH_CBC_MODE)" +The DES cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 -the RC2 EVP_CIPHER pointer\&. +the DES-CBC EVP_CIPHER pointer\&. +.RE +.PP + +.SS "WINCNG_CIPHER_ALGORITHM (des_ede3_cbc, BCRYPT_3DES_ALGORITHM, 8, 24, 8, EVP_CIPH_CBC_MODE)" +The triple DES cipher type (Windows CNG provider) +.PP +\fBReturns\fP +.RS 4 +the DES-EDE3-CBC EVP_CIPHER pointer\&. .RE .PP .SS "WINCNG_CIPHER_ALGORITHM (rc2_40_cbc, BCRYPT_RC2_ALGORITHM, 8, 5, 8, EVP_CIPH_CBC_MODE)" The RC2-40 cipher type - Windows CNG .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2-40 EVP_CIPHER pointer\&. .RE @@ -1411,16 +1378,25 @@ the RC2-40 EVP_CIPHER pointer\&. .SS "WINCNG_CIPHER_ALGORITHM (rc2_64_cbc, BCRYPT_RC2_ALGORITHM, 8, 8, 8, EVP_CIPH_CBC_MODE)" The RC2-64 cipher type - Windows CNG .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC2-64 EVP_CIPHER pointer\&. .RE .PP +.SS "WINCNG_CIPHER_ALGORITHM (rc2_cbc, BCRYPT_RC2_ALGORITHM, 8, 16, 8, EVP_CIPH_CBC_MODE)" +The RC2 cipher type - Windows CNG +.PP +\fBReturns\fP +.RS 4 +the RC2 EVP_CIPHER pointer\&. +.RE +.PP + .SS "WINCNG_CIPHER_ALGORITHM (rc4, BCRYPT_RC4_ALGORITHM, 1, 16, 0, EVP_CIPH_STREAM_CIPHER| EVP_CIPH_VARIABLE_LENGTH)" The RC4 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC4 EVP_CIPHER pointer\&. .RE @@ -1429,7 +1405,7 @@ the RC4 EVP_CIPHER pointer\&. .SS "WINCNG_CIPHER_ALGORITHM (rc4_40, BCRYPT_RC4_ALGORITHM, 1, 5, 0, EVP_CIPH_STREAM_CIPHER| EVP_CIPH_VARIABLE_LENGTH)" The RC4-40 cipher type (Windows CNG provider) .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the RC4 EVP_CIPHER pointer\&. .RE @@ -1438,7 +1414,7 @@ the RC4 EVP_CIPHER pointer\&. .SS "WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_128_cbc)" The Camellia-128 cipher type - CommonCrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-128 EVP_CIPHER pointer\&. .RE @@ -1447,7 +1423,7 @@ the Camellia-128 EVP_CIPHER pointer\&. .SS "WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_192_cbc)" The Camellia-198 cipher type - CommonCrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-198 EVP_CIPHER pointer\&. .RE @@ -1456,7 +1432,7 @@ the Camellia-198 EVP_CIPHER pointer\&. .SS "WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_256_cbc)" The Camellia-256 cipher type - CommonCrypto .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the Camellia-256 EVP_CIPHER pointer\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_misc.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_misc.3 index db1a5885b858..1d46742e64e1 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_misc.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_misc.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_misc.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_misc.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_misc" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_misc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_misc +hcrypto_misc \- hcrypto miscellaneous functions .SH SYNOPSIS .br .PP @@ -26,7 +26,7 @@ hcrypto_misc .SS "int PKCS5_PBKDF2_HMAC (const void * password, size_t password_len, const void * salt, size_t salt_len, unsigned long iter, const EVP_MD * md, size_t keylen, void * key)" As descriped in PKCS5, convert a password, salt, and iteration counter into a crypto key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpassword\fP Password\&. .br @@ -45,7 +45,7 @@ As descriped in PKCS5, convert a password, salt, and iteration counter into a cr \fIkey\fP the output key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, non 1 on failure\&. .RE @@ -54,7 +54,7 @@ As descriped in PKCS5, convert a password, salt, and iteration counter into a cr .SS "int PKCS5_PBKDF2_HMAC_SHA1 (const void * password, size_t password_len, const void * salt, size_t salt_len, unsigned long iter, size_t keylen, void * key)" As descriped in PKCS5, convert a password, salt, and iteration counter into a crypto key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpassword\fP Password\&. .br @@ -71,7 +71,7 @@ As descriped in PKCS5, convert a password, salt, and iteration counter into a cr \fIkey\fP the output key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, non 1 on failure\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rand.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rand.3 index 55ea983bfd6a..8ee505345553 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rand.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rand.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_rand.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_rand.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_rand" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_rand" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_rand +hcrypto_rand \- RAND crypto functions .SH SYNOPSIS .br .PP @@ -56,7 +56,7 @@ See the \fBRAND - random number\fP for description and examples\&. .SS "void RAND_add (const void * indata, size_t size, double entropi)" Seed that random number generator\&. Secret material can securely be feed into the function, they will never be returned\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIindata\fP the input data\&. .br @@ -69,14 +69,14 @@ Seed that random number generator\&. Secret material can securely be feed into t .SS "int RAND_bytes (void * outdata, size_t size)" Get a random block from the random generator, can be used for key material\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIoutdata\fP random data .br \fIsize\fP length random data .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, 0 on failure\&. .RE @@ -87,14 +87,14 @@ Reset and free memory used by the random generator\&. .SS "const char* RAND_file_name (char * filename, size_t size)" Return the default random state filename for a user to use for \fBRAND_load_file()\fP, and \fBRAND_write_file()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfilename\fP buffer to hold file name\&. .br \fIsize\fP size of buffer filename\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the buffer filename or NULL on failure\&. .RE @@ -103,7 +103,7 @@ the buffer filename or NULL on failure\&. .SS "const RAND_METHOD* RAND_get_rand_method (void)" Get the default random method\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns a RAND_METHOD .RE @@ -112,14 +112,14 @@ Returns a RAND_METHOD .SS "int RAND_load_file (const char * filename, size_t size)" Load a a file and feed it into \fBRAND_seed()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfilename\fP name of file to read\&. .br \fIsize\fP minimum size to read\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns the number of seed bytes loaded (0 indicates failure) .RE @@ -128,14 +128,14 @@ Returns the number of seed bytes loaded (0 indicates failure) .SS "int RAND_pseudo_bytes (void * outdata, size_t size)" Get a random block from the random generator, should NOT be used for key material\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIoutdata\fP random data .br \fIsize\fP length random data .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, 0 on failure\&. .RE @@ -144,7 +144,7 @@ Get a random block from the random generator, should NOT be used for key materia .SS "void RAND_seed (const void * indata, size_t size)" Seed that random number generator\&. Secret material can securely be feed into the function, they will never be returned\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIindata\fP seed data .br @@ -155,12 +155,12 @@ Seed that random number generator\&. Secret material can securely be feed into t .SS "int RAND_set_rand_engine (ENGINE * engine)" Set the default random method from engine\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIengine\fP use engine, if NULL is passed it, old method and engine is cleared\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success, 0 on failure\&. .RE @@ -169,12 +169,12 @@ Set the default random method from engine\&. .SS "int RAND_set_rand_method (const RAND_METHOD * meth)" Set the default random method\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fImeth\fP set the new default method\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -183,7 +183,7 @@ Set the default random method\&. .SS "int RAND_status (void)" Return status of the random generator .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 if the random generator can deliver random data\&. .RE @@ -192,12 +192,12 @@ Return status of the random generator .SS "int RAND_write_file (const char * filename)" Write of random numbers to a file to store for later initiation with \fBRAND_load_file()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfilename\fP name of file to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success and non-one on failure\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rsa.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rsa.3 index ca47812d52b7..067623af3ac7 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rsa.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/hcrypto_rsa.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hcrypto_rsa.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hcrypto_rsa.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hcrypto_rsa" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "hcrypto_rsa" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -hcrypto_rsa +hcrypto_rsa \- RSA functions .SH SYNOPSIS .br .PP @@ -44,7 +44,7 @@ See the \fBRSA - public-key cryptography\fP for description and examples\&. .SS "void RSA_free (RSA * rsa)" Free an allocation RSA object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP the RSA object to free\&. .RE @@ -53,12 +53,12 @@ Free an allocation RSA object\&. .SS "void* RSA_get_app_data (const RSA * rsa)" Get the application data for the RSA object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP the rsa object to get the parameter for .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the data object .RE @@ -67,12 +67,12 @@ the data object .SS "const RSA_METHOD* RSA_get_method (const RSA * rsa)" Return the RSA_METHOD used for this RSA object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP the object to get the method from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the method used for this RSA object\&. .RE @@ -81,7 +81,7 @@ the method used for this RSA object\&. .SS "RSA* RSA_new (void)" Same as \fBRSA_new_method()\fP using NULL as engine\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a newly allocated RSA object\&. Free with \fBRSA_free()\fP\&. .RE @@ -90,12 +90,12 @@ a newly allocated RSA object\&. Free with \fBRSA_free()\fP\&. .SS "RSA* RSA_new_method (ENGINE * engine)" Allocate a new RSA object using the engine, if NULL is specified as the engine, use the default RSA engine as returned by ENGINE_get_default_RSA()\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIengine\fP Specific what ENGINE RSA provider should be used\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a newly allocated RSA object\&. Free with \fBRSA_free()\fP\&. .RE @@ -104,14 +104,14 @@ a newly allocated RSA object\&. Free with \fBRSA_free()\fP\&. .SS "int RSA_set_app_data (RSA * rsa, void * arg)" Set the application data for the RSA object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP the rsa object to set the parameter for .br \fIarg\fP the data object to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -120,14 +120,14 @@ Set the application data for the RSA object\&. .SS "int RSA_set_method (RSA * rsa, const RSA_METHOD * method)" Set a new method for the RSA keypair\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP rsa parameter\&. .br \fImethod\fP the new method for the RSA parameter\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 1 on success\&. .RE @@ -136,12 +136,12 @@ Set a new method for the RSA keypair\&. .SS "int RSA_up_ref (RSA * rsa)" Add an extra reference to the RSA object\&. The object should be free with \fBRSA_free()\fP to drop the reference\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIrsa\fP the object to add reference counting too\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the current reference count, can't safely be used except for debug printing\&. .RE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_des.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_des.3 index 4f8d6d5211cf..c66ed5e55f74 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_des.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_des.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_des.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_des.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "page_des" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "page_des" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -page_desDES - Data Encryption Standard crypto interface - \- See the library functions here: \fBDES crypto functions\fP +page_des \- DES - Data Encryption Standard crypto interface +See the library functions here: \fBDES crypto functions\fP .PP DES was created by IBM, modififed by NSA and then adopted by NBS (now NIST) and published ad FIPS PUB 46 (updated by FIPS 46-1)\&. .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_dh.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_dh.3 index 30a79447723f..b6babfdb0200 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_dh.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_dh.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_dh.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_dh.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "page_dh" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "page_dh" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -page_dhDH - Diffie-Hellman key exchange - \- Diffie-Hellman key exchange is a protocol that allows two parties to establish a shared secret key\&. +page_dh \- DH - Diffie-Hellman key exchange +Diffie-Hellman key exchange is a protocol that allows two parties to establish a shared secret key\&. .PP Include and example how to use \fBDH_new()\fP and friends here\&. .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_evp.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_evp.3 index 4b11c64233c0..1279a2efd0c8 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_evp.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_evp.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_evp.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_evp.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "page_evp" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "page_evp" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -page_evpEVP - generic crypto interface - \- See the library functions here: \fBEVP generic crypto functions\fP +page_evp \- EVP - generic crypto interface +See the library functions here: \fBEVP generic crypto functions\fP .SH "EVP Cipher" .PP The use of \fBEVP_CipherInit_ex()\fP and EVP_Cipher() is pretty easy to understand forward, then \fBEVP_CipherUpdate()\fP and \fBEVP_CipherFinal_ex()\fP really needs an example to explain \fBexample_evp_cipher\&.c\fP \&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rand.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rand.3 index a188467676e0..7a6715065e60 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rand.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rand.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_rand.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_rand.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "page_rand" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "page_rand" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -page_randRAND - random number - \- See the library functions here: \fBRAND crypto functions\fP +page_rand \- RAND - random number +See the library functions here: \fBRAND crypto functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rsa.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rsa.3 index 3316f8ef845c..68f89ab5ae79 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rsa.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hcrypto/man/man3/page_rsa.3 @@ -1,16 +1,14 @@ -.\" $NetBSD: page_rsa.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_rsa.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "page_rsa" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdal crypto library" \" -*- nroff -*- +.TH "page_rsa" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal crypto library" \" -*- nroff -*- .ad l .nh .SH NAME -page_rsaRSA - public-key cryptography - \- RSA is named by its inventors (Ron Rivest, Adi Shamir, and Leonard Adleman) (published in 1977), patented expired in 21 September 2000\&. +page_rsa \- RSA - public-key cryptography +RSA is named by its inventors (Ron Rivest, Adi Shamir, and Leonard Adleman) (published in 1977), patented expired in 21 September 2000\&. .PP Speed for RSA in seconds no key blinding 1000 iteration, same rsa keys (1024 and 2048) operation performed each eteration sign, verify, encrypt, decrypt on a random bit pattern -.PP -.SH "name 1024 2048 4098 " -.PP +.SH "name 1024 2048 4098" .PP gmp: 0\&.73 6\&.60 44\&.80 tfm: 2\&.45 -- -- ltm: 3\&.79 20\&.74 105\&.41 (default in hcrypto) openssl: 4\&.04 11\&.90 82\&.59 cdsa: 15\&.89 102\&.89 721\&.40 imath: 40\&.62 -- -- .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/HDB.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/HDB.3 index 719fdae5deb5..0ce3de1bb3b7 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/HDB.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/HDB.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: HDB.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: HDB.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "HDB" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalhdblibrary" \" -*- nroff -*- +.TH "HDB" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal hdb library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -173,4 +173,4 @@ Unlock database .SH "Author" .PP -Generated automatically by Doxygen for Heimdalhdblibrary from the source code\&. +Generated automatically by Doxygen for Heimdal hdb library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/hdb_entry_ex.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/hdb_entry_ex.3 index c5be85d7cc47..6a12c8a77296 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/hdb_entry_ex.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/man/man3/hdb_entry_ex.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: hdb_entry_ex.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hdb_entry_ex.3,v 1.3 2023/06/19 21:41:39 christos Exp $ .\" -.TH "hdb_entry_ex" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalhdblibrary" \" -*- nroff -*- +.TH "hdb_entry_ex" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal hdb library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -16,4 +16,4 @@ hdb_entry_ex .SH "Author" .PP -Generated automatically by Doxygen for Heimdalhdblibrary from the source code\&. +Generated automatically by Doxygen for Heimdal hdb library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509.3 index a63b080c1e6e..844791955289 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509 +hx509 \- hx509 library .SH SYNOPSIS .br .PP @@ -26,7 +26,7 @@ hx509 .SS "void hx509_context_free (hx509_context * context)" Free the context allocated by \fBhx509_context_init()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP context to be freed\&. .RE @@ -35,12 +35,12 @@ Free the context allocated by \fBhx509_context_init()\fP\&. .SS "int hx509_context_init (hx509_context * context)" Creates a hx509 context that most functions in the library uses\&. The context is only allowed to be used by one thread at each moment\&. Free the context with \fBhx509_context_free()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Returns a pointer to new hx509 context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -48,4 +48,4 @@ Returns an hx509 error code\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_ca.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_ca.3 index 329030e76aac..9f80734f9f37 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_ca.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_ca.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_ca.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_ca.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_ca" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_ca" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_ca +hx509_ca \- hx509 CA functions .SH SYNOPSIS .br .PP @@ -111,7 +111,7 @@ When done the to-be-signed certificate object should be freed with \fBhx509_ca_t .PP When creating self-signed certificate use \fBhx509_ca_sign_self()\fP instead\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -122,7 +122,7 @@ When creating self-signed certificate use \fBhx509_ca_sign_self()\fP instead\&. \fIcertificate\fP return cerificate, free with \fBhx509_cert_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -131,7 +131,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_sign_self (hx509_context context, hx509_ca_tbs tbs, hx509_private_key signer, hx509_cert * certificate)" Work just like \fBhx509_ca_sign()\fP but signs it-self\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -142,7 +142,7 @@ Work just like \fBhx509_ca_sign()\fP but signs it-self\&. \fIcertificate\fP return cerificate, free with \fBhx509_cert_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -151,7 +151,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_crl_dp_uri (hx509_context context, hx509_ca_tbs tbs, const char * uri, hx509_name issuername)" Add CRL distribution point URI to the to-be-signed certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -162,7 +162,7 @@ Add CRL distribution point URI to the to-be-signed certificate object\&. \fIissuername\fP name of the issuer\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -171,7 +171,7 @@ issuername not supported .SS "int hx509_ca_tbs_add_eku (hx509_context context, hx509_ca_tbs tbs, const heim_oid * oid)" An an extended key usage to the to-be-signed certificate object\&. Duplicates will detected and not added\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -180,7 +180,7 @@ An an extended key usage to the to-be-signed certificate object\&. Duplicates wi \fIoid\fP extended key usage to add\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -191,7 +191,7 @@ Add a Subject Alternative Name hostname to to-be-signed certificate object\&. A .PP Example of a an domain match: \&.domain\&.se matches the hostname host\&.domain\&.se\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -200,7 +200,7 @@ Example of a an domain match: \&.domain\&.se matches the hostname host\&.domain\ \fIdnsname\fP a hostame\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -209,7 +209,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_san_jid (hx509_context context, hx509_ca_tbs tbs, const char * jid)" Add a Jabber/XMPP jid Subject Alternative Name to the to-be-signed certificate object\&. The jid is an UTF8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -218,7 +218,7 @@ Add a Jabber/XMPP jid Subject Alternative Name to the to-be-signed certificate o \fIjid\fP string of an a jabber id in UTF8\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -227,7 +227,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_san_ms_upn (hx509_context context, hx509_ca_tbs tbs, const char * principal)" Add Microsoft UPN Subject Alternative Name to the to-be-signed certificate object\&. The principal string is a UTF8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -236,7 +236,7 @@ Add Microsoft UPN Subject Alternative Name to the to-be-signed certificate objec \fIprincipal\fP Microsoft UPN string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -245,7 +245,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_san_otherName (hx509_context context, hx509_ca_tbs tbs, const heim_oid * oid, const heim_octet_string * os)" Add Subject Alternative Name otherName to the to-be-signed certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -256,7 +256,7 @@ Add Subject Alternative Name otherName to the to-be-signed certificate object\&. \fIos\fP data in the other name\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -265,7 +265,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_san_pkinit (hx509_context context, hx509_ca_tbs tbs, const char * principal)" Add Kerberos Subject Alternative Name to the to-be-signed certificate object\&. The principal string is a UTF8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -274,7 +274,7 @@ Add Kerberos Subject Alternative Name to the to-be-signed certificate object\&. \fIprincipal\fP Kerberos principal to add to the certificate\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -283,7 +283,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_add_san_rfc822name (hx509_context context, hx509_ca_tbs tbs, const char * rfc822Name)" Add a Subject Alternative Name rfc822 (email address) to to-be-signed certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -292,7 +292,7 @@ Add a Subject Alternative Name rfc822 (email address) to to-be-signed certificat \fIrfc822Name\fP a string to a email address\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -301,7 +301,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_ca_tbs_free (hx509_ca_tbs * tbs)" Free an To Be Signed object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fItbs\fP object to free\&. .RE @@ -310,14 +310,14 @@ Free an To Be Signed object\&. .SS "int hx509_ca_tbs_init (hx509_context context, hx509_ca_tbs * tbs)" Allocate an to-be-signed certificate object that will be converted into an certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fItbs\fP returned to-be-signed certicate object, free with \fBhx509_ca_tbs_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -326,7 +326,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_ca (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)" Make the to-be-signed certificate object a CA certificate\&. If the pathLenConstraint is negative path length constraint is used\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -335,7 +335,7 @@ Make the to-be-signed certificate object a CA certificate\&. If the pathLenConst \fIpathLenConstraint\fP path length constraint, negative, no constraint\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -344,14 +344,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_domaincontroller (hx509_context context, hx509_ca_tbs tbs)" Make the to-be-signed certificate object a windows domain controller certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fItbs\fP object to be signed\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -360,7 +360,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_notAfter (hx509_context context, hx509_ca_tbs tbs, time_t t)" Set the absolute time when the certificate is valid to\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -369,7 +369,7 @@ Set the absolute time when the certificate is valid to\&. \fIt\fP time when the certificate will expire .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -378,7 +378,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_notAfter_lifetime (hx509_context context, hx509_ca_tbs tbs, time_t delta)" Set the relative time when the certificiate is going to expire\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -387,7 +387,7 @@ Set the relative time when the certificiate is going to expire\&. \fIdelta\fP seconds to the certificate is going to expire\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -396,7 +396,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_notBefore (hx509_context context, hx509_ca_tbs tbs, time_t t)" Set the absolute time when the certificate is valid from\&. If not set the current time will be used\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -405,7 +405,7 @@ Set the absolute time when the certificate is valid from\&. If not set the curre \fIt\fP time the certificated will start to be valid .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -414,7 +414,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_proxy (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)" Make the to-be-signed certificate object a proxy certificate\&. If the pathLenConstraint is negative path length constraint is used\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -423,7 +423,7 @@ Make the to-be-signed certificate object a proxy certificate\&. If the pathLenCo \fIpathLenConstraint\fP path length constraint, negative, no constraint\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -432,7 +432,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_serialnumber (hx509_context context, hx509_ca_tbs tbs, const heim_integer * serialNumber)" Set the serial number to use for to-be-signed certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -441,7 +441,7 @@ Set the serial number to use for to-be-signed certificate object\&. \fIserialNumber\fP serial number to use for the to-be-signed certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -450,7 +450,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_signature_algorithm (hx509_context context, hx509_ca_tbs tbs, const AlgorithmIdentifier * sigalg)" Set signature algorithm on the to be signed certificate .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -459,7 +459,7 @@ Set signature algorithm on the to be signed certificate \fIsigalg\fP signature algorithm to use .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -468,7 +468,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_spki (hx509_context context, hx509_ca_tbs tbs, const SubjectPublicKeyInfo * spki)" Set the subject public key info (SPKI) in the to-be-signed certificate object\&. SPKI is the public key and key related parameters in the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -477,7 +477,7 @@ Set the subject public key info (SPKI) in the to-be-signed certificate object\&. \fIspki\fP subject public key info to use for the to-be-signed certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -486,7 +486,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_subject (hx509_context context, hx509_ca_tbs tbs, hx509_name subject)" Set the subject name of a to-be-signed certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -495,7 +495,7 @@ Set the subject name of a to-be-signed certificate object\&. \fIsubject\fP the name to set a subject\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -504,7 +504,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_set_template (hx509_context context, hx509_ca_tbs tbs, int flags, hx509_cert cert)" Initialize the to-be-signed certificate object from a template certifiate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -515,7 +515,7 @@ Initialize the to-be-signed certificate object from a template certifiate\&. \fIcert\fP template certificate\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -526,7 +526,7 @@ Set the issuerUniqueID and subjectUniqueID .PP These are only supposed to be used considered with version 2 certificates, replaced by the two extensions SubjectKeyIdentifier and IssuerKeyIdentifier\&. This function is to allow application using legacy protocol to issue them\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -537,7 +537,7 @@ These are only supposed to be used considered with version 2 certificates, repla \fIsubjectUniqueID\fP to be set .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -546,7 +546,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ca_tbs_subject_expand (hx509_context context, hx509_ca_tbs tbs, hx509_env env)" Expand the the subject name in the to-be-signed certificate object using \fBhx509_name_expand()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -555,7 +555,7 @@ Expand the the subject name in the to-be-signed certificate object using \fBhx50 \fIenv\fP environment variable to expand variables in the subject name, see hx509_env_init()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -564,7 +564,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "const struct units* hx509_ca_tbs_template_units (void)" Make of template units, use to build flags argument to \fBhx509_ca_tbs_set_template()\fP with parse_units()\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an units structure\&. .RE @@ -572,4 +572,4 @@ an units structure\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cert.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cert.3 index a0b76da53929..90006d8d5516 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cert.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cert.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_cert.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_cert.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_cert" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_cert" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_cert +hx509_cert \- hx509 certificate functions .SH SYNOPSIS .br .PP @@ -119,7 +119,7 @@ See the \fBThe basic certificate\fP for description and examples\&. .SS "int hx509_cert_binary (hx509_context context, hx509_cert c, heim_octet_string * os)" Encodes the hx509 certificate as a DER encode binary\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -128,7 +128,7 @@ Encodes the hx509 certificate as a DER encode binary\&. \fIos\fP the encode certificate, set to NULL, 0 on case of error\&. Free the os->data with \fBhx509_xfree()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -137,7 +137,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_check_eku (hx509_context context, hx509_cert cert, const heim_oid * eku, int allow_any_eku)" Check the extended key usage on the hx509 certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -148,7 +148,7 @@ Check the extended key usage on the hx509 certificate\&. \fIallow_any_eku\fP if the any EKU is set, allow that to be a substitute\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -157,14 +157,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_cmp (hx509_cert p, hx509_cert q)" Compare to hx509 certificate object, useful for sorting\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .br \fIq\fP a hx509 certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 the objects are the same, returns > 0 is p is 'larger' then q, < 0 if p is 'smaller' then q\&. .RE @@ -175,7 +175,7 @@ Return a list of subjectAltNames specified by oid in the certificate\&. On error .PP The returned list of octet string should be freed with \fBhx509_free_octet_string_list()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -186,7 +186,7 @@ The returned list of octet string should be freed with \fBhx509_free_octet_strin \fIlist\fP list of matching SubjectAltName\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -195,7 +195,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_cert_free (hx509_cert cert)" Free reference to the hx509 certificate object, if the refcounter reaches 0, the object if freed\&. Its allowed to pass in NULL\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcert\fP the cert to free\&. .RE @@ -204,14 +204,14 @@ Free reference to the hx509 certificate object, if the refcounter reaches 0, the .SS "hx509_cert_attribute hx509_cert_get_attribute (hx509_cert cert, const heim_oid * oid)" Get an external attribute for the certificate, examples are friendly name and id\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcert\fP hx509 certificate object to search .br \fIoid\fP an oid to search for\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an hx509_cert_attribute, only valid as long as the certificate is referenced\&. .RE @@ -220,7 +220,7 @@ an hx509_cert_attribute, only valid as long as the certificate is referenced\&. .SS "int hx509_cert_get_base_subject (hx509_context context, hx509_cert c, hx509_name * name)" Return the name of the base subject of the hx509 certificate\&. If the certiicate is a verified proxy certificate, the this function return the base certificate (root of the proxy chain)\&. If the proxy certificate is not verified with the base certificate HX509_PROXY_CERTIFICATE_NOT_CANONICALIZED is returned\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -229,7 +229,7 @@ Return the name of the base subject of the hx509 certificate\&. If the certiicat \fIname\fP a pointer to a hx509 name, should be freed by \fBhx509_name_free()\fP\&. See also \fBhx509_cert_get_subject()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -238,12 +238,12 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "const char* hx509_cert_get_friendly_name (hx509_cert cert)" Get friendly name of the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcert\fP cert to get the friendly name from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an friendly name or NULL if there is\&. The friendly name is only valid as long as the certificate is referenced\&. .RE @@ -252,14 +252,14 @@ an friendly name or NULL if there is\&. The friendly name is only valid as long .SS "int hx509_cert_get_issuer (hx509_cert p, hx509_name * name)" Return the name of the issuer of the hx509 certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .br \fIname\fP a pointer to a hx509 name, should be freed by \fBhx509_name_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -268,7 +268,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_get_issuer_unique_id (hx509_context context, hx509_cert p, heim_bit_string * issuer)" Get a copy of the Issuer Unique ID .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509_context .br @@ -277,7 +277,7 @@ Get a copy of the Issuer Unique ID \fIissuer\fP the issuer id returned, free with der_free_bit_string() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. The error code HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a issuerUniqueID .RE @@ -286,12 +286,12 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. The error code HX509_ .SS "time_t hx509_cert_get_notAfter (hx509_cert p)" Get notAfter time of the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return not after time\&. .RE @@ -300,12 +300,12 @@ return not after time\&. .SS "time_t hx509_cert_get_notBefore (hx509_cert p)" Get notBefore time of the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return not before time .RE @@ -314,14 +314,14 @@ return not before time .SS "int hx509_cert_get_serialnumber (hx509_cert p, heim_integer * i)" Get serial number of the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .br \fIi\fP serial number, should be freed ith der_free_heim_integer()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -330,7 +330,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_get_SPKI (hx509_context context, hx509_cert p, SubjectPublicKeyInfo * spki)" Get the SubjectPublicKeyInfo structure from the hx509 certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -339,7 +339,7 @@ Get the SubjectPublicKeyInfo structure from the hx509 certificate\&. \fIspki\fP SubjectPublicKeyInfo, should be freed with free_SubjectPublicKeyInfo()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -348,7 +348,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_get_SPKI_AlgorithmIdentifier (hx509_context context, hx509_cert p, AlgorithmIdentifier * alg)" Get the AlgorithmIdentifier from the hx509 certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -357,7 +357,7 @@ Get the AlgorithmIdentifier from the hx509 certificate\&. \fIalg\fP AlgorithmIdentifier, should be freed with free_AlgorithmIdentifier()\&. The algorithmidentifier is typicly rsaEncryption, or id-ecPublicKey, or some other public key mechanism\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -366,14 +366,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_get_subject (hx509_cert p, hx509_name * name)" Return the name of the subject of the hx509 certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP a hx509 certificate object\&. .br \fIname\fP a pointer to a hx509 name, should be freed by \fBhx509_name_free()\fP\&. See also \fBhx509_cert_get_base_subject()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -382,7 +382,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_cert_get_subject_unique_id (hx509_context context, hx509_cert p, heim_bit_string * subject)" Get a copy of the Subect Unique ID .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509_context .br @@ -391,7 +391,7 @@ Get a copy of the Subect Unique ID \fIsubject\fP the subject id returned, free with der_free_bit_string() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. The error code HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a subjectUniqueID .RE @@ -400,7 +400,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. The error code HX509_ .SS "hx509_cert hx509_cert_init (hx509_context context, const Certificate * c, heim_error_t * error)" Allocate and init an hx509 certificate object from the decoded certificate `c´\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -409,7 +409,7 @@ Allocate and init an hx509 certificate object from the decoded certificate `c´\ \fIerror\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 certificate .RE @@ -420,7 +420,7 @@ Just like \fBhx509_cert_init()\fP, but instead of a decode certificate takes an .PP If the memory region doesn't contain just the certificate and nothing more the function will fail with HX509_EXTRA_DATA_AFTER_STRUCTURE\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -431,7 +431,7 @@ If the memory region doesn't contain just the certificate and nothing more the f \fIerror\fP possibly returns an error .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 certificate .RE @@ -440,12 +440,12 @@ An hx509 certificate .SS "hx509_cert hx509_cert_ref (hx509_cert cert)" Add a reference to a hx509 certificate object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcert\fP a pointer to an hx509 certificate object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the same object as is passed in\&. .RE @@ -454,14 +454,14 @@ the same object as is passed in\&. .SS "int hx509_cert_set_friendly_name (hx509_cert cert, const char * name)" Set the friendly name on the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcert\fP The certificate to set the friendly name on .br \fIname\fP Friendly name\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -470,7 +470,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_print_cert (hx509_context context, hx509_cert cert, FILE * out)" Print a simple representation of a certificate .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context, can be NULL .br @@ -479,7 +479,7 @@ Print a simple representation of a certificate \fIout\fP the stdio output stream, if NULL, stdout is used .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code .RE @@ -488,14 +488,14 @@ An hx509 error code .SS "int hx509_query_alloc (hx509_context context, hx509_query ** q)" Allocate an query controller\&. Free using \fBhx509_query_free()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIq\fP return pointer to a hx509_query\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -504,7 +504,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_query_free (hx509_context context, hx509_query * q)" Free the query controller\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -515,7 +515,7 @@ Free the query controller\&. .SS "int hx509_query_match_cmp_func (hx509_query * q, int(*)(hx509_context, hx509_cert, void *) func, void * ctx)" Set the query controller to match using a specific match function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIq\fP a hx509 query controller\&. .br @@ -524,7 +524,7 @@ Set the query controller to match using a specific match function\&. \fIctx\fP context passed to the function\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -533,14 +533,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_query_match_eku (hx509_query * q, const heim_oid * eku)" Set the query controller to require an one specific EKU (extended key usage)\&. Any previous EKU matching is overwitten\&. If NULL is passed in as the eku, the EKU requirement is reset\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIq\fP a hx509 query controller\&. .br \fIeku\fP an EKU to match on\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -549,14 +549,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_query_match_friendly_name (hx509_query * q, const char * name)" Set the query controller to match on a friendly name .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIq\fP a hx509 query controller\&. .br \fIname\fP a friendly name to match on .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -565,7 +565,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_query_match_issuer_serial (hx509_query * q, const Name * issuer, const heim_integer * serialNumber)" Set the issuer and serial number of match in the query controller\&. The function make copies of the isser and serial number\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIq\fP a hx509 query controller .br @@ -574,7 +574,7 @@ Set the issuer and serial number of match in the query controller\&. The functio \fIserialNumber\fP the serialNumber of the issuer\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -583,14 +583,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_query_match_option (hx509_query * q, hx509_query_option option)" Set match options for the hx509 query controller\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIq\fP query controller\&. .br \fIoption\fP options to control the query controller\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -599,7 +599,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_query_statistic_file (hx509_context context, const char * fn)" Set a statistic file for the query statistics\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -610,7 +610,7 @@ Set a statistic file for the query statistics\&. .SS "void hx509_query_unparse_stats (hx509_context context, int printtype, FILE * out)" Unparse the statistics file and print the result on a FILE descriptor\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -623,14 +623,14 @@ Unparse the statistics file and print the result on a FILE descriptor\&. .SS "void hx509_verify_ctx_f_allow_default_trustanchors (hx509_verify_ctx ctx, int boolean)" Allow using the operating system builtin trust anchors if no other trust anchors are configured\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context .br \fIboolean\fP if non zero, useing the operating systems builtin trust anchors\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -639,7 +639,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_verify_hostname (hx509_context context, const hx509_cert cert, int flags, hx509_hostname_type type, const char * hostname, const struct sockaddr * sa, int sa_size)" Verify that the certificate is allowed to be used for the hostname and address\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -664,7 +664,7 @@ HX509_HN_DNSSRV for DNS SRV names\&. \fIsa_size\fP length of address .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -672,4 +672,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cms.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cms.3 index 856abad4ae12..9680e0a17b12 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cms.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_cms.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_cms.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_cms.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_cms" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_cms" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_cms +hx509_cms \- hx509 CMS/pkcs7 functions .SH SYNOPSIS .br .PP @@ -38,7 +38,7 @@ See the \fBCMS/PKCS7 message functions\&.\fP for description and examples\&. .SS "int hx509_cms_create_signed_1 (hx509_context context, int flags, const heim_oid * eContentType, const void * data, size_t length, const AlgorithmIdentifier * digest_alg, hx509_cert cert, hx509_peer_info peer, hx509_certs anchors, hx509_certs pool, heim_octet_string * signed_data)" Decode SignedData and verify that the signature is correct\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -63,7 +63,7 @@ Decode SignedData and verify that the signature is correct\&. \fIsigned_data\fP the output of the function, free with der_free_octet_string()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -74,7 +74,7 @@ Encrypt end encode EnvelopedData\&. .PP Encrypt and encode EnvelopedData\&. The data is encrypted with a random key and the the random key is encrypted with the certificates private key\&. This limits what private key type can be used to RSA\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -100,7 +100,7 @@ HX509_CMS_EV_ID_NAME - prefer issuer name and serial number \fIcontent\fP the output of the function, free with der_free_octet_string()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an hx509 error code\&. .RE @@ -111,7 +111,7 @@ Decode and unencrypt EnvelopedData\&. .PP Extract data and parameteres from from the EnvelopedData\&. Also supports using detached EnvelopedData\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -132,7 +132,7 @@ Extract data and parameteres from from the EnvelopedData\&. Also supports using \fIcontent\fP the data, free with der_free_octet_string()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an hx509 error code\&. .RE @@ -141,7 +141,7 @@ an hx509 error code\&. .SS "int hx509_cms_unwrap_ContentInfo (const heim_octet_string * in, heim_oid * oid, heim_octet_string * out, int * have_data)" Decode an ContentInfo and unwrap data and oid it\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP the encoded buffer\&. .br @@ -152,7 +152,7 @@ Decode an ContentInfo and unwrap data and oid it\&. \fIhave_data\fP since the data is optional, this flags show dthe diffrence between no data and the zero length data\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -161,7 +161,7 @@ Returns an hx509 error code\&. .SS "int hx509_cms_verify_signed (hx509_context context, hx509_verify_ctx ctx, unsigned int flags, const void * data, size_t length, const heim_octet_string * signedContent, hx509_certs pool, heim_oid * contentType, heim_octet_string * content, hx509_certs * signer_certs)" Decode SignedData and verify that the signature is correct\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -191,7 +191,7 @@ HX509_CMS_VS_ALLOW_ZERO_SIGNER - no signer, see below\&. \fIsigner_certs\fP list of the cerficates used to sign this request, free with \fBhx509_certs_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an hx509 error code\&. .RE @@ -206,7 +206,7 @@ If HX509_CMS_VS_ALLOW_ZERO_SIGNER is set, allow empty SignerInfo (no signatures) .SS "int hx509_cms_wrap_ContentInfo (const heim_oid * oid, const heim_octet_string * buf, heim_octet_string * res)" Wrap data and oid in a ContentInfo and encode it\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIoid\fP type of the content\&. .br @@ -215,7 +215,7 @@ Wrap data and oid in a ContentInfo and encode it\&. \fIres\fP the encoded buffer, the result should be freed with der_free_octet_string()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -223,4 +223,4 @@ Returns an hx509 error code\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_crypto.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_crypto.3 index 4619e4a4a824..4993259c2a2c 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_crypto.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_crypto.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_crypto.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_crypto.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_crypto" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_crypto" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_crypto +hx509_crypto \- hx509 crypto functions .SH SYNOPSIS .br .PP @@ -23,7 +23,7 @@ hx509_crypto .SS "int hx509_verify_signature (hx509_context context, const hx509_cert signer, const AlgorithmIdentifier * alg, const heim_octet_string * data, const heim_octet_string * sig)" Verify a signature made using the private key of an certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -36,7 +36,7 @@ Verify a signature made using the private key of an certificate\&. \fIsig\fP the sigature to verify\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -44,4 +44,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_env.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_env.3 index c74544b6e7e8..97fb16a72767 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_env.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_env.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_env.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_env.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_env" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_env" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_env +hx509_env \- hx509 environment functions .SH SYNOPSIS .br .PP @@ -38,7 +38,7 @@ hx509_env .SS "int hx509_env_add (hx509_context context, hx509_env * env, const char * key, const char * value)" Add a new key/value pair to the hx509_env\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -49,7 +49,7 @@ Add a new key/value pair to the hx509_env\&. \fIvalue\fP value to add .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -58,7 +58,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_env_add_binding (hx509_context context, hx509_env * env, const char * key, hx509_env list)" Add a new key/binding pair to the hx509_env\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -69,7 +69,7 @@ Add a new key/binding pair to the hx509_env\&. \fIlist\fP binding list to add .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -78,7 +78,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "const char* hx509_env_find (hx509_context context, hx509_env env, const char * key)" Search the hx509_env for a key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -87,7 +87,7 @@ Search the hx509_env for a key\&. \fIkey\fP key to search for\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the value if the key is found, NULL otherwise\&. .RE @@ -96,7 +96,7 @@ the value if the key is found, NULL otherwise\&. .SS "hx509_env hx509_env_find_binding (hx509_context context, hx509_env env, const char * key)" Search the hx509_env for a binding\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -105,7 +105,7 @@ Search the hx509_env for a binding\&. \fIkey\fP key to search for\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the binding if the key is found, NULL if not found\&. .RE @@ -114,7 +114,7 @@ the binding if the key is found, NULL if not found\&. .SS "void hx509_env_free (hx509_env * env)" Free an hx509_env environment context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIenv\fP the environment to free\&. .RE @@ -123,7 +123,7 @@ Free an hx509_env environment context\&. .SS "const char* hx509_env_lfind (hx509_context context, hx509_env env, const char * key, size_t len)" Search the hx509_env for a length based key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -134,7 +134,7 @@ Search the hx509_env for a length based key\&. \fIlen\fP length of key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the value if the key is found, NULL otherwise\&. .RE @@ -142,4 +142,4 @@ the value if the key is found, NULL otherwise\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_error.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_error.3 index 4eace913b728..e3defca18bec 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_error.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_error.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_error.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_error.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_error" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_error" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_error +hx509_error \- hx509 error functions .SH SYNOPSIS .br .PP @@ -38,7 +38,7 @@ See the \fBHx509 error reporting functions\fP for description and examples\&. .SS "void hx509_clear_error_string (hx509_context context)" Resets the error strings the hx509 context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .RE @@ -47,7 +47,7 @@ Resets the error strings the hx509 context\&. .SS "void hx509_err (hx509_context context, int exit_code, int error_code, const char * fmt, \&.\&.\&.)" Print error message and fatally exit from error code .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -64,7 +64,7 @@ Print error message and fatally exit from error code .SS "void hx509_free_error_string (char * str)" Free error string returned by \fBhx509_get_error_string()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIstr\fP error string to free\&. .RE @@ -73,14 +73,14 @@ Free error string returned by \fBhx509_get_error_string()\fP\&. .SS "char* hx509_get_error_string (hx509_context context, int error_code)" Get an error string from context associated with error_code\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIerror_code\fP Get error message for this error code\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 error string, free with \fBhx509_free_error_string()\fP\&. .RE @@ -89,7 +89,7 @@ error string, free with \fBhx509_free_error_string()\fP\&. .SS "void hx509_set_error_string (hx509_context context, int flags, int code, const char * fmt, \&.\&.\&.)" See \fBhx509_set_error_stringv()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -109,7 +109,7 @@ HX509_ERROR_APPEND appends the error string to the old messages (code is updated .SS "void hx509_set_error_stringv (hx509_context context, int flags, int code, const char * fmt, va_list ap)" Add an error message to the hx509 context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -128,4 +128,4 @@ HX509_ERROR_APPEND appends the error string to the old messages (code is updated .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_keyset.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_keyset.3 index 070f9f39959d..5234b0f3f7b1 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_keyset.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_keyset.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_keyset.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_keyset.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_keyset" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_keyset" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_keyset +hx509_keyset \- hx509 certificate store functions .SH SYNOPSIS .br .PP @@ -67,7 +67,7 @@ Add a certificate to the certificiate store\&. .PP The receiving keyset certs will either increase reference counter of the cert or make a deep copy, either way, the caller needs to free the cert itself\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -76,7 +76,7 @@ The receiving keyset certs will either increase reference counter of the cert or \fIcert\fP certificate to add\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -85,7 +85,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_append (hx509_context context, hx509_certs to, hx509_lock lock, const char * name)" Same a \fBhx509_certs_merge()\fP but use a lock and name to describe the from source\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -96,7 +96,7 @@ Same a \fBhx509_certs_merge()\fP but use a lock and name to describe the from so \fIname\fP name of the source store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -105,7 +105,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_end_seq (hx509_context context, hx509_certs certs, hx509_cursor cursor)" End the iteration over certificates\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -114,7 +114,7 @@ End the iteration over certificates\&. \fIcursor\fP cursor that will keep track of progress, freed\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -123,7 +123,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_filter (hx509_context context, hx509_certs certs, const hx509_query * q, hx509_certs * result)" Filter certificate matching the query\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -134,7 +134,7 @@ Filter certificate matching the query\&. \fIresult\fP the filtered certificate store, caller must free with \fBhx509_certs_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -143,7 +143,7 @@ Return HX509_CERT_NOT_FOUND if no certificate in certs matched the query\&. .SS "int hx509_certs_find (hx509_context context, hx509_certs certs, const hx509_query * q, hx509_cert * r)" Find a certificate matching the query\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -154,7 +154,7 @@ Find a certificate matching the query\&. \fIr\fP return certificate (or NULL on error), should be freed with \fBhx509_cert_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -163,7 +163,7 @@ Return HX509_CERT_NOT_FOUND if no certificate in certs matched the query\&. .SS "void hx509_certs_free (hx509_certs * certs)" Free a certificate store\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcerts\fP certificate store to free\&. .RE @@ -172,7 +172,7 @@ Free a certificate store\&. .SS "int hx509_certs_info (hx509_context context, hx509_certs certs, int(*)(void *, const char *) func, void * ctx)" Print some info about the certificate store\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -183,7 +183,7 @@ Print some info about the certificate store\&. \fIctx\fP parameter to func\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -192,7 +192,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_init (hx509_context context, const char * name, int flags, hx509_lock lock, hx509_certs * certs)" Open or creates a new hx509 certificate store\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context .br @@ -210,7 +210,7 @@ HX509_CERTS_UNPROTECT_ALL fails if any private key failed to be extracted\&. \fIcerts\fP return pointer, free with \fBhx509_certs_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -219,7 +219,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_iter_f (hx509_context context, hx509_certs certs, int(*)(hx509_context, void *, hx509_cert) func, void * ctx)" Iterate over all certificates in a keystore and call a function for each of them\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -230,7 +230,7 @@ Iterate over all certificates in a keystore and call a function for each of them \fIctx\fP context variable that will passed to the function\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -239,7 +239,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_merge (hx509_context context, hx509_certs to, hx509_certs from)" Merge a certificate store into another\&. The from store is keep intact\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -248,7 +248,7 @@ Merge a certificate store into another\&. The from store is keep intact\&. \fIfrom\fP the store to copy the object from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -257,7 +257,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_next_cert (hx509_context context, hx509_certs certs, hx509_cursor cursor, hx509_cert * cert)" Get next ceritificate from the certificate keystore pointed out by cursor\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -268,7 +268,7 @@ Get next ceritificate from the certificate keystore pointed out by cursor\&. \fIcert\fP return certificate next in store, NULL if the store contains no more certificates\&. Free with \fBhx509_cert_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -277,7 +277,7 @@ Returns an hx509 error code\&. .SS "int hx509_certs_start_seq (hx509_context context, hx509_certs certs, hx509_cursor * cursor)" Start the integration .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -286,7 +286,7 @@ Start the integration \fIcursor\fP cursor that will keep track of progress, free with \fBhx509_certs_end_seq()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. HX509_UNSUPPORTED_OPERATION is returned if the certificate store doesn't support the iteration operation\&. .RE @@ -295,7 +295,7 @@ Returns an hx509 error code\&. HX509_UNSUPPORTED_OPERATION is returned if the ce .SS "int hx509_certs_store (hx509_context context, hx509_certs certs, int flags, hx509_lock lock)" Write the certificate store to stable storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -306,7 +306,7 @@ Write the certificate store to stable storage\&. \fIlock\fP a lock that unlocks the certificates store, use NULL to select no password/certifictes/prompt lock (see \fBLocking and unlocking certificates and encrypted data\&.\fP)\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. HX509_UNSUPPORTED_OPERATION if the certificate store doesn't support the store operation\&. .RE @@ -315,7 +315,7 @@ Returns an hx509 error code\&. HX509_UNSUPPORTED_OPERATION if the certificate st .SS "int hx509_ci_print_names (hx509_context context, void * ctx, hx509_cert c)" Function to use to \fBhx509_certs_iter_f()\fP as a function argument, the ctx variable to \fBhx509_certs_iter_f()\fP should be a FILE file descriptor\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -324,7 +324,7 @@ Function to use to \fBhx509_certs_iter_f()\fP as a function argument, the ctx va \fIc\fP a certificate .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -333,7 +333,7 @@ Returns an hx509 error code\&. .SS "int hx509_get_one_cert (hx509_context context, hx509_certs certs, hx509_cert * c)" Get one random certificate from the certificate store\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -342,7 +342,7 @@ Get one random certificate from the certificate store\&. \fIc\fP return certificate, should be freed with \fBhx509_cert_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns an hx509 error code\&. .RE @@ -350,4 +350,4 @@ Returns an hx509 error code\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_lock.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_lock.3 index c105c5acb947..43adbee7c90e 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_lock.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_lock.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_lock.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_lock.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_lock" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_lock" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_lock +hx509_lock \- hx509 lock functions .SH SYNOPSIS .br .PP @@ -13,4 +13,4 @@ hx509_lock See the \fBLocking and unlocking certificates and encrypted data\&.\fP for description and examples\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_misc.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_misc.3 index b48f1936c9c7..ddb2c138f46f 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_misc.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_misc.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_misc.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_misc.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_misc" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_misc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_misc +hx509_misc \- hx509 misc functions .SH SYNOPSIS .br .PP @@ -26,7 +26,7 @@ hx509_misc .SS "void hx509_free_octet_string_list (hx509_octet_string_list * list)" Free a list of octet strings returned by another hx509 library function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIlist\fP list to be freed\&. .RE @@ -35,7 +35,7 @@ Free a list of octet strings returned by another hx509 library function\&. .SS "void hx509_xfree (void * ptr)" Free a data element allocated in the library\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP data to be freed\&. .RE @@ -43,4 +43,4 @@ Free a data element allocated in the library\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_name.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_name.3 index cb9b825d0501..a145c7b68861 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_name.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_name.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_name.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_name.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_name" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_name" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_name +hx509_name \- hx509 name functions .SH SYNOPSIS .br .PP @@ -53,14 +53,14 @@ See the \fBPKIX/X\&.509 Names\fP for description and examples\&. .SS "int hx509_general_name_unparse (GeneralName * name, char ** str)" Unparse the hx509 name in name into a string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP the name to print .br \fIstr\fP an allocated string returns the name in string form .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -69,14 +69,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_name_binary (const hx509_name name, heim_octet_string * os)" Convert a hx509_name object to DER encoded name\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP name to concert .br \fIos\fP data to a DER encoded name, free the resulting octet string with hx509_xfree(os->data)\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -85,14 +85,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_name_cmp (hx509_name n1, hx509_name n2)" Compare to hx509 name object, useful for sorting\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIn1\fP a hx509 name object\&. .br \fIn2\fP a hx509 name object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 the objects are the same, returns > 0 is n2 is 'larger' then n2, < 0 if n1 is 'smaller' then n2\&. .RE @@ -101,7 +101,7 @@ Compare to hx509 name object, useful for sorting\&. .SS "int hx509_name_copy (hx509_context context, const hx509_name from, hx509_name * to)" Copy a hx509 name object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 cotext\&. .br @@ -110,7 +110,7 @@ Copy a hx509 name object\&. \fIto\fP the name to copy to .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -119,7 +119,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_name_expand (hx509_context context, hx509_name name, hx509_env env)" Expands variables in the name using env\&. Variables are on the form ${name}\&. Useful when dealing with certificate templates\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 cotext\&. .br @@ -128,16 +128,16 @@ Expands variables in the name using env\&. Variables are on the form ${name}\&. \fIenv\fP environment variable to expand\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE .PP -Only UTF8String rdnSequence names are allowed +Only UTF8String rdnSequence names are allowed .SS "void hx509_name_free (hx509_name * name)" Free a hx509 name object, upond return *name will be NULL\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP a hx509 name object to be freed\&. .RE @@ -146,12 +146,12 @@ Free a hx509 name object, upond return *name will be NULL\&. .SS "int hx509_name_is_null_p (const hx509_name name)" Unparse the hx509 name in name into a string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP the name to check if its empty/null\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 non zero if the name is empty/null\&. .RE @@ -160,14 +160,14 @@ non zero if the name is empty/null\&. .SS "int hx509_name_to_Name (const hx509_name from, Name * to)" Convert a hx509_name into a Name\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfrom\fP the name to copy from .br \fIto\fP the name to copy to .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -176,14 +176,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_name_to_string (const hx509_name name, char ** str)" Convert the hx509 name object into a printable string\&. The resulting string should be freed with free()\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP name to print .br \fIstr\fP the string to return .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -192,7 +192,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_parse_name (hx509_context context, const char * str, hx509_name * name)" Parse a string into a hx509 name object\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -201,7 +201,7 @@ Parse a string into a hx509 name object\&. \fIname\fP the resulting object, NULL in case of error\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -210,7 +210,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_unparse_der_name (const void * data, size_t length, char ** str)" Convert a DER encoded name info a string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP data to a DER/BER encoded name .br @@ -219,7 +219,7 @@ Convert a DER encoded name info a string\&. \fIstr\fP the resulting string, is NULL on failure\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -227,4 +227,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_peer.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_peer.3 index 8503007fa306..2db58d8472e2 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_peer.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_peer.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_peer.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_peer.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_peer" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_peer" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_peer +hx509_peer \- hx509 certificate selecting functions .SH SYNOPSIS .br .PP @@ -35,7 +35,7 @@ hx509_peer .SS "int hx509_peer_info_add_cms_alg (hx509_context context, hx509_peer_info peer, const AlgorithmIdentifier * val)" Add an additional algorithm that the peer supports\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -44,7 +44,7 @@ Add an additional algorithm that the peer supports\&. \fIval\fP an AlgorithmsIdentier to add .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -53,14 +53,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_peer_info_alloc (hx509_context context, hx509_peer_info * peer)" Allocate a new peer info structure an init it to default values\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIpeer\fP return an allocated peer, free with \fBhx509_peer_info_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -69,7 +69,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_peer_info_free (hx509_peer_info peer)" Free a peer info structure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpeer\fP peer info to be freed\&. .RE @@ -78,14 +78,14 @@ Free a peer info structure\&. .SS "int hx509_peer_info_set_cert (hx509_peer_info peer, hx509_cert cert)" Set the certificate that remote peer is using\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpeer\fP peer info to update .br \fIcert\fP cerificate of the remote peer\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -94,7 +94,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_peer_info_set_cms_algs (hx509_context context, hx509_peer_info peer, const AlgorithmIdentifier * val, size_t len)" Set the algorithms that the peer supports\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -105,7 +105,7 @@ Set the algorithms that the peer supports\&. \fIlen\fP length of array val\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -113,4 +113,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_print.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_print.3 index 7a284a82ace2..44ada9bd7421 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_print.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_print.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_print.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_print.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_print" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_print" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_print +hx509_print \- hx509 printing functions .SH SYNOPSIS .br .PP @@ -50,7 +50,7 @@ hx509_print .SS "void hx509_bitstring_print (const heim_bit_string * b, hx509_vprint_func func, void * ctx)" Print a bitstring using a hx509_vprint_func function\&. To print to stdout use \fBhx509_print_stdout()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIb\fP bit string to print\&. .br @@ -63,7 +63,7 @@ Print a bitstring using a hx509_vprint_func function\&. To print to stdout use \ .SS "int hx509_cert_keyusage_print (hx509_context context, hx509_cert c, char ** s)" Print certificate usage for a certificate to a string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -72,7 +72,7 @@ Print certificate usage for a certificate to a string\&. \fIs\fP the return string with the keysage printed in to, free with \fBhx509_xfree()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -81,7 +81,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_oid_print (const heim_oid * oid, hx509_vprint_func func, void * ctx)" Print a oid using a hx509_vprint_func function\&. To print to stdout use \fBhx509_print_stdout()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIoid\fP oid to print .br @@ -94,14 +94,14 @@ Print a oid using a hx509_vprint_func function\&. To print to stdout use \fBhx50 .SS "int hx509_oid_sprint (const heim_oid * oid, char ** str)" Print a oid to a string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIoid\fP oid to print .br \fIstr\fP allocated string, free with \fBhx509_xfree()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -117,7 +117,7 @@ Helper function to print on stdout for: \fBhx509_validate_ctx_set_print()\fP\&. .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to the print function\&. If the ctx is NULL, stdout is used\&. .br @@ -130,7 +130,7 @@ Helper function to print on stdout for: .SS "int hx509_validate_cert (hx509_context context, hx509_validate_ctx ctx, hx509_cert cert)" Validate/Print the status of the certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -139,7 +139,7 @@ Validate/Print the status of the certificate\&. \fIcert\fP the cerificate to validate/print\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -148,14 +148,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_validate_ctx_add_flags (hx509_validate_ctx ctx, int flags)" Add flags to control the behaivor of the \fBhx509_validate_cert()\fP function\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP A hx509 validation context\&. .br \fIflags\fP flags to add to the validation context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -164,7 +164,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_validate_ctx_free (hx509_validate_ctx ctx)" Free an hx509 validate context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the hx509 validate context to free\&. .RE @@ -173,14 +173,14 @@ Free an hx509 validate context\&. .SS "int hx509_validate_ctx_init (hx509_context context, hx509_validate_ctx * ctx)" Allocate a hx509 validation/printing context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIctx\fP a new allocated hx509 validation context, free with \fBhx509_validate_ctx_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -189,7 +189,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_validate_ctx_set_print (hx509_validate_ctx ctx, hx509_vprint_func func, void * c)" Set the printing functions for the validation context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a hx509 valication context\&. .br @@ -198,7 +198,7 @@ Set the printing functions for the validation context\&. \fIc\fP the context variable to the printing function\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -206,4 +206,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_query.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_query.3 index 23240a6ca4de..b7a6e179001e 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_query.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_query.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_query.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_query.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_query" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_query" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_query +hx509_query \- hx509 query functions .SH SYNOPSIS .br .PP @@ -13,4 +13,4 @@ hx509_query .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_revoke.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_revoke.3 index 9520c2b0c15f..172ce98af93e 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_revoke.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_revoke.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_revoke.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_revoke.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_revoke" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_revoke" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_revoke +hx509_revoke \- hx509 revokation checking functions .SH SYNOPSIS .br .PP @@ -41,7 +41,7 @@ See the \fBRevocation methods\fP for description and examples\&. .SS "int hx509_ocsp_request (hx509_context context, hx509_certs reqcerts, hx509_certs pool, hx509_cert signer, const AlgorithmIdentifier * digest, heim_octet_string * request, heim_octet_string * nonce)" Create an OCSP request for a set of certificates\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context .br @@ -58,7 +58,7 @@ Create an OCSP request for a set of certificates\&. \fInonce\fP nonce in the request, free with free_heim_octet_string()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -67,7 +67,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_revoke_add_crl (hx509_context context, hx509_revoke_ctx ctx, const char * path)" Add a CRL file to the revokation context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP hx509 context .br @@ -76,7 +76,7 @@ Add a CRL file to the revokation context\&. \fIpath\fP path to file that is going to be added to the context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -85,7 +85,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_revoke_add_ocsp (hx509_context context, hx509_revoke_ctx ctx, const char * path)" Add a OCSP file to the revokation context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP hx509 context .br @@ -94,7 +94,7 @@ Add a OCSP file to the revokation context\&. \fIpath\fP path to file that is going to be added to the context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -103,7 +103,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_revoke_free (hx509_revoke_ctx * ctx)" Free a hx509 revokation context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP context to be freed .RE @@ -112,14 +112,14 @@ Free a hx509 revokation context\&. .SS "int hx509_revoke_init (hx509_context context, hx509_revoke_ctx * ctx)" Allocate a revokation context\&. Free with \fBhx509_revoke_free()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIctx\fP returns a newly allocated revokation context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -128,7 +128,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_revoke_ocsp_print (hx509_context context, const char * path, FILE * out)" Print the OCSP reply stored in a file\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context .br @@ -137,7 +137,7 @@ Print the OCSP reply stored in a file\&. \fIout\fP the out FILE descriptor to print the reply on .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -146,7 +146,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_revoke_verify (hx509_context context, hx509_revoke_ctx ctx, hx509_certs certs, time_t now, hx509_cert cert, hx509_cert parent_cert)" Check that a certificate is not expired according to a revokation context\&. Also need the parent certificte to the check OCSP parent identifier\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP hx509 context .br @@ -161,7 +161,7 @@ Check that a certificate is not expired according to a revokation context\&. Als \fIparent_cert\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -169,4 +169,4 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_verify.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_verify.3 index d32e95216b6d..9be95b94847f 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_verify.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/hx509_verify.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: hx509_verify.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: hx509_verify.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "hx509_verify" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "hx509_verify" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -hx509_verify +hx509_verify \- hx509 verification functions .SH SYNOPSIS .br .PP @@ -68,7 +68,7 @@ hx509_verify .SS "void hx509_context_set_missing_revoke (hx509_context context, int flag)" Selects if the \fBhx509_revoke_verify()\fP function is going to require the existans of a revokation method (OCSP, CRL) or not\&. Note that \fBhx509_verify_path()\fP, \fBhx509_cms_verify_signed()\fP, and other function call \fBhx509_revoke_verify()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP hx509 context to change the flag for\&. .br @@ -79,7 +79,7 @@ Selects if the \fBhx509_revoke_verify()\fP function is going to require the exis .SS "int hx509_crl_add_revoked_certs (hx509_context context, hx509_crl crl, hx509_certs certs)" Add revoked certificate to an CRL context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -88,7 +88,7 @@ Add revoked certificate to an CRL context\&. \fIcerts\fP keyset of certificate to revoke\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -97,14 +97,14 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_crl_alloc (hx509_context context, hx509_crl * crl)" Create a CRL context\&. Use \fBhx509_crl_free()\fP to free the CRL context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br \fIcrl\fP return pointer to a newly allocated CRL context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -113,7 +113,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_crl_free (hx509_context context, hx509_crl * crl)" Free a CRL context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -124,7 +124,7 @@ Free a CRL context\&. .SS "int hx509_crl_lifetime (hx509_context context, hx509_crl crl, int delta)" Set the lifetime of a CRL context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -133,7 +133,7 @@ Set the lifetime of a CRL context\&. \fIdelta\fP delta time the certificate is valid, library adds the current time to this\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -142,7 +142,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_crl_sign (hx509_context context, hx509_cert signer, hx509_crl crl, heim_octet_string * os)" Sign a CRL and return an encode certificate\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context\&. .br @@ -153,7 +153,7 @@ Sign a CRL and return an encode certificate\&. \fIos\fP return the signed and encoded CRL, free with free_heim_octet_string() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -162,7 +162,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_ocsp_verify (hx509_context context, time_t now, hx509_cert cert, int flags, const void * data, size_t length, time_t * expiration)" Verify that the certificate is part of the OCSP reply and it's not expired\&. Doesn't verify signature the OCSP reply or it's done by a authorized sender, that is assumed to be already done\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a hx509 context .br @@ -179,7 +179,7 @@ Verify that the certificate is part of the OCSP reply and it's not expired\&. Do \fIexpiration\fP return the time the OCSP will expire and need to be rechecked\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -188,7 +188,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_verify_attach_anchors (hx509_verify_ctx ctx, hx509_certs set)" Set the trust anchors in the verification context, makes an reference to the keyset, so the consumer can free the keyset independent of the destruction of the verification context (ctx)\&. If there already is a keyset attached, it's released\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context .br @@ -199,7 +199,7 @@ Set the trust anchors in the verification context, makes an reference to the key .SS "void hx509_verify_attach_revoke (hx509_verify_ctx ctx, hx509_revoke_ctx revoke_ctx)" Attach an revocation context to the verfication context, , makes an reference to the revoke context, so the consumer can free the revoke context independent of the destruction of the verification context\&. If there is no revoke context, the verification process is NOT going to check any verification status\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context\&. .br @@ -210,7 +210,7 @@ Attach an revocation context to the verfication context, , makes an reference to .SS "void hx509_verify_destroy_ctx (hx509_verify_ctx ctx)" Free an hx509 verification context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP the context to be freed\&. .RE @@ -219,14 +219,14 @@ Free an hx509 verification context\&. .SS "int hx509_verify_init_ctx (hx509_context context, hx509_verify_ctx * ctx)" Allocate an verification context that is used fo control the verification process\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br \fIctx\fP returns a pointer to a hx509_verify_ctx object\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -235,7 +235,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "int hx509_verify_path (hx509_context context, hx509_verify_ctx ctx, hx509_cert cert, hx509_certs pool)" Build and verify the path for the certificate to the trust anchor specified in the verify context\&. The path is constructed from the certificate, the pool and the trust anchors\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A hx509 context\&. .br @@ -246,7 +246,7 @@ Build and verify the path for the certificate to the trust anchor specified in t \fIpool\fP A keyset of certificates to build the chain from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An hx509 error code, see \fBhx509_get_error_string()\fP\&. .RE @@ -255,7 +255,7 @@ An hx509 error code, see \fBhx509_get_error_string()\fP\&. .SS "void hx509_verify_set_max_depth (hx509_verify_ctx ctx, unsigned int max_depth)" Set the maximum depth of the certificate chain that the path builder is going to try\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context .br @@ -266,7 +266,7 @@ Set the maximum depth of the certificate chain that the path builder is going to .SS "void hx509_verify_set_proxy_certificate (hx509_verify_ctx ctx, int boolean)" Allow or deny the use of proxy certificates .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context .br @@ -277,7 +277,7 @@ Allow or deny the use of proxy certificates .SS "void hx509_verify_set_strict_rfc3280_verification (hx509_verify_ctx ctx, int boolean)" Select strict RFC3280 verification of certificiates\&. This means checking key usage on CA certificates, this will make version 1 certificiates unuseable\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context .br @@ -288,7 +288,7 @@ Select strict RFC3280 verification of certificiates\&. This means checking key u .SS "void hx509_verify_set_time (hx509_verify_ctx ctx, time_t t)" Set the clock time the the verification process is going to use\&. Used to check certificate in the past and future time\&. If not set the current time will be used\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIctx\fP a verification context\&. .br @@ -298,4 +298,4 @@ Set the clock time the the verification process is going to use\&. Used to check .SH "Author" .PP -Generated automatically by Doxygen for Heimdalx509library from the source code\&. +Generated automatically by Doxygen for Heimdal x509 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_ca.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_ca.3 index ead5330bb54a..77e2ceb570ad 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_ca.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_ca.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_ca.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_ca.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_ca" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_ca" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_caHx509 CA functions - \- See the library functions here: \fBhx509 CA functions\fP +page_ca \- Hx509 CA functions +See the library functions here: \fBhx509 CA functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cert.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cert.3 index 81581f17aa63..cde19fe84e2f 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cert.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cert.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_cert.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_cert.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_cert" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_cert" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_certThe basic certificate - \- The basic hx509 cerificate object in hx509 is hx509_cert\&. The hx509_cert object is representing one X509/PKIX certificate and associated attributes; like private key, friendly name, etc\&. +page_cert \- The basic certificate +The basic hx509 cerificate object in hx509 is hx509_cert\&. The hx509_cert object is representing one X509/PKIX certificate and associated attributes; like private key, friendly name, etc\&. .PP A hx509_cert object is usully found via the keyset interfaces (\fBCertificate store operations\fP), but its also possible to create a certificate directly from a parsed object with \fBhx509_cert_init()\fP and \fBhx509_cert_init_data()\fP\&. .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cms.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cms.3 index b5bddb30d7c3..14528408dbd7 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cms.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_cms.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_cms.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_cms.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_cms" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_cms" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_cmsCMS/PKCS7 message functions\&. - \- CMS is defined in RFC 3369 and is an continuation of the RSA Labs standard PKCS7\&. The basic messages in CMS is +page_cms \- CMS/PKCS7 message functions\&. +CMS is defined in RFC 3369 and is an continuation of the RSA Labs standard PKCS7\&. The basic messages in CMS is .PP .IP "\(bu" 2 SignedData Data signed with private key (RSA, DSA, ECDSA) or secret (symmetric) key diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_env.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_env.3 index d42991fc005f..a42bd5696d6d 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_env.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_env.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_env.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_env.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_env" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_env" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_envHx509 environment functions - \- See the library functions here: \fBhx509 environment functions\fP +page_env \- Hx509 environment functions +See the library functions here: \fBhx509 environment functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_error.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_error.3 index b6037dd05f32..225994fcf1ae 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_error.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_error.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_error.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_error.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_error" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_error" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_errorHx509 error reporting functions - \- See the library functions here: \fBhx509 error functions\fP +page_error \- Hx509 error reporting functions +See the library functions here: \fBhx509 error functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_keyset.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_keyset.3 index bab1f22e6ab3..86a2a3a227ad 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_keyset.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_keyset.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_keyset.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_keyset.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_keyset" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_keyset" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_keysetCertificate store operations - \- Type of certificates store: +page_keyset \- Certificate store operations +Type of certificates store: .IP "\(bu" 2 MEMORY In memory based format\&. Doesnt support storing\&. .IP "\(bu" 2 diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_lock.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_lock.3 index 558ddf6f2703..14415370e444 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_lock.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_lock.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_lock.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_lock.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_lock" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_lock" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_lockLocking and unlocking certificates and encrypted data\&. - \- See the library functions here: \fBhx509 lock functions\fP +page_lock \- Locking and unlocking certificates and encrypted data\&. +See the library functions here: \fBhx509 lock functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_name.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_name.3 index ff3b080628c6..fad69e917f43 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_name.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_name.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_name.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_name.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_name" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_name" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_namePKIX/X\&.509 Names - \- There are several names in PKIX/X\&.509, GeneralName and Name\&. +page_name \- PKIX/X\&.509 Names +There are several names in PKIX/X\&.509, GeneralName and Name\&. .PP A Name consists of an ordered list of Relative Distinguished Names (RDN)\&. Each RDN consists of an unordered list of typed strings\&. The types are defined by OID and have long and short description\&. For example id-at-commonName (2\&.5\&.4\&.3) have the long name CommonName and short name CN\&. The string itself can be of several encoding, UTF8, UTF16, Teltex string, etc\&. The type limit what encoding should be used\&. .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_peer.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_peer.3 index 847fdeeb502f..53b884b8b5ce 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_peer.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_peer.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: page_peer.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_peer.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_peer" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_peer" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_peerHx509 crypto selecting functions - \- Peer info structures are used togeter with hx509_crypto_select() to select the best avaible crypto algorithm to use\&. +page_peer \- Hx509 crypto selecting functions +Peer info structures are used togeter with hx509_crypto_select() to select the best avaible crypto algorithm to use\&. .PP See the library functions here: \fBhx509 certificate selecting functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_print.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_print.3 index fb25e6cc788b..f0e9ae0f09a0 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_print.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_print.3 @@ -1,8 +1,8 @@ -.\" $NetBSD: page_print.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_print.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_print" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_print" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_printHx509 printing functions - \- See the library functions here: \fBhx509 printing functions\fP +page_print \- Hx509 printing functions +See the library functions here: \fBhx509 printing functions\fP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_revoke.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_revoke.3 index 8725495ff8c5..bb8089d8f756 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_revoke.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/hx509/man/man3/page_revoke.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: page_revoke.3,v 1.2 2019/12/15 22:50:44 christos Exp $ +.\" $NetBSD: page_revoke.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "page_revoke" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalx509library" \" -*- nroff -*- +.TH "page_revoke" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal x509 library" \" -*- nroff -*- .ad l .nh .SH NAME -page_revokeRevocation methods - \- There are two revocation method for PKIX/X\&.509: CRL and OCSP\&. Revocation is needed if the private key is lost and stolen\&. Depending on how picky you are, you might want to make revocation for destroyed private keys too (smartcard broken), but that should not be a problem\&. +page_revoke \- Revocation methods +There are two revocation method for PKIX/X\&.509: CRL and OCSP\&. Revocation is needed if the private key is lost and stolen\&. Depending on how picky you are, you might want to make revocation for destroyed private keys too (smartcard broken), but that should not be a problem\&. .PP CRL is a list of certifiates that have expired\&. .PP diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5.3 index 97bb2a1ffa79..5c03c59f7879 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5 +krb5 \- Heimdal Kerberos 5 library .SH SYNOPSIS .br .PP @@ -188,14 +188,14 @@ krb5 .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_et_list (krb5_context context, void(*)(struct et_list **) func)" Add a specified list of error messages to the et list in context\&. Call func (probably a comerr-generated function) with a pointer to the current et_list\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A kerberos context\&. .br \fIfunc\fP The generated com_err et function\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -204,14 +204,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_extra_addresses (krb5_context context, krb5_addresses * addresses)" Add extra address to the address list that the library will add to the client's address list when communicating with the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP addreses to add .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -220,14 +220,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_ignore_addresses (krb5_context context, krb5_addresses * addresses)" Add extra addresses to ignore when fetching addresses from the underlaying operating system\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP addreses to ignore .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -257,7 +257,7 @@ KRB5_TC_MATCH_2ND_TKT Compares the second tickets (used by user-to-user authenti KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket\&. .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -268,7 +268,7 @@ KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket\&. \fIcreds\fP cred to compare with\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return TRUE if mcred and creds are equal, FALSE if not\&. .RE @@ -277,14 +277,14 @@ return TRUE if mcred and creds are equal, FALSE if not\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_context (krb5_context context, krb5_context * out)" Make a copy for the Kerberos 5 context, the new krb5_context shoud be freed with \fBkrb5_free_context()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP the Kerberos context to copy .br \fIout\fP the copy of the Kerberos, set to NULL error\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -293,7 +293,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds (krb5_context context, const krb5_creds * incred, krb5_creds ** outcred)" Copy krb5_creds\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -302,7 +302,7 @@ Copy krb5_creds\&. \fIoutcred\fP destination credential, free with \fBkrb5_free_creds()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -311,7 +311,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds_contents (krb5_context context, const krb5_creds * incred, krb5_creds * c)" Copy content of krb5_creds\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -320,7 +320,7 @@ Copy content of krb5_creds\&. \fIc\fP destination credential, free with \fBkrb5_free_cred_contents()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -329,7 +329,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_data (krb5_context context, const krb5_data * indata, krb5_data ** outdata)" Copy the data into a newly allocated krb5_data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -338,7 +338,7 @@ Copy the data into a newly allocated krb5_data\&. \fIoutdata\fP new krb5_date to copy too\&. Free with \fBkrb5_free_data()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&. .RE @@ -347,7 +347,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_host_realm (krb5_context context, const krb5_realm * from, krb5_realm ** to)" Copy the list of realms from `from' to `to'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -356,7 +356,7 @@ Copy the list of realms from `from' to `to'\&. \fIto\fP list of realms to copy to, free list of \fBkrb5_free_host_realm()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -365,7 +365,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_ticket (krb5_context context, const krb5_ticket * from, krb5_ticket ** to)" Copy ticket and content .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -374,7 +374,7 @@ Copy ticket and content \fIto\fP new copy of ticket, free with \fBkrb5_free_ticket()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -383,12 +383,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_creds_get_ticket_flags (krb5_creds * creds)" Returns the ticket flags for the credentials in creds\&. See also \fBkrb5_ticket_get_flags()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcreds\fP credential to get ticket flags from .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 ticket flags .RE @@ -397,14 +397,14 @@ ticket flags .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_alloc (krb5_data * p, int len)" Allocate data of and krb5_data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP krb5_data to allocate\&. .br \fIlen\fP size to allocate\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&. .RE @@ -413,14 +413,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_cmp (const krb5_data * data1, const krb5_data * data2)" Compare to data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata1\fP krb5_data to compare .br \fIdata2\fP krb5_data to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return the same way as memcmp(), useful when sorting\&. .RE @@ -429,7 +429,7 @@ return the same way as memcmp(), useful when sorting\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_copy (krb5_data * p, const void * data, size_t len)" Copy the data of len into the krb5_data\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP krb5_data to copy into\&. .br @@ -438,7 +438,7 @@ Copy the data of len into the krb5_data\&. \fIlen\fP new size\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&. .RE @@ -447,14 +447,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_ct_cmp (const krb5_data * data1, const krb5_data * data2)" Compare to data not exposing timing information from the checksum data .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata1\fP krb5_data to compare .br \fIdata2\fP krb5_data to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns zero for same data, otherwise non zero\&. .RE @@ -463,7 +463,7 @@ returns zero for same data, otherwise non zero\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_free (krb5_data * p)" Free the content of krb5_data structure, its ok to free a zeroed structure (with memset() or \fBkrb5_data_zero()\fP)\&. When done, the structure will be zeroed\&. The same function is called \fBkrb5_free_data_contents()\fP in MIT Kerberos\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP krb5_data to free\&. .RE @@ -472,14 +472,14 @@ Free the content of krb5_data structure, its ok to free a zeroed structure (with .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_realloc (krb5_data * p, int len)" Grow (or shrink) the content of krb5_data to a new size\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP krb5_data to free\&. .br \fIlen\fP new size\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&. .RE @@ -488,7 +488,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_zero (krb5_data * p)" Reset the (potentially uninitalized) krb5_data structure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP krb5_data to reset\&. .RE @@ -497,12 +497,12 @@ Reset the (potentially uninitalized) krb5_data structure\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_config_files (char ** filenames)" Free a list of configuration files\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfilenames\fP list, terminated with a NULL pointer, to be freed\&. NULL is an valid argument\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -511,7 +511,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context (krb5_context context)" Frees the krb5_context allocated by \fBkrb5_init_context()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP context to be freed\&. .RE @@ -520,14 +520,14 @@ Frees the krb5_context allocated by \fBkrb5_init_context()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_cred_contents (krb5_context context, krb5_creds * c)" Free content of krb5_creds\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIc\fP krb5_creds to free\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -536,14 +536,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds (krb5_context context, krb5_creds * c)" Free krb5_creds\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIc\fP krb5_creds to free\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -552,7 +552,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data (krb5_context context, krb5_data * p)" Free krb5_data (and its content)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -563,14 +563,14 @@ Free krb5_data (and its content)\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_ticket (krb5_context context, krb5_ticket * ticket)" Free ticket and content .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br \fIticket\fP ticket to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -579,12 +579,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_config_files (char *** pfilenames)" Get the global configuration list\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpfilenames\fP return array of filenames, should be freed with \fBkrb5_free_config_files()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -593,7 +593,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_in_tkt_etypes (krb5_context context, krb5_pdu pdu_type, krb5_enctype ** etypes)" Get the default encryption types that will be use in communcation with the KDC, clients and servers\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -602,7 +602,7 @@ Get the default encryption types that will be use in communcation with the KDC, \fIetypes\fP Encryption types, array terminated with ETYPE_NULL(0), caller should free array with krb5_xfree(): .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -611,12 +611,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_dns_canonicalize_hostname (krb5_context context)" Get if the library uses DNS to canonicalize hostnames\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return non zero if the library uses DNS to canonicalize hostnames\&. .RE @@ -627,14 +627,14 @@ Return the error string for the error code\&. The caller must not free the strin .PP This function is deprecated since its not threadsafe\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIcode\fP Kerberos error code\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the error message matching code .RE @@ -643,14 +643,14 @@ the error message matching code .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_extra_addresses (krb5_context context, krb5_addresses * addresses)" Get extra address to the address list that the library will add to the client's address list when communicating with the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP addreses to set .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -659,14 +659,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_fcache_version (krb5_context context, int * version)" Get version of fcache that the library should use\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIversion\fP version number\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -675,14 +675,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_ignore_addresses (krb5_context context, krb5_addresses * addresses)" Get extra addresses to ignore when fetching addresses from the underlaying operating system\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP list addreses ignored .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -691,7 +691,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_kdc_sec_offset (krb5_context context, int32_t * sec, int32_t * usec)" Get current offset in time to the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -700,7 +700,7 @@ Get current offset in time to the KDC\&. \fIusec\fP micro seconds part of offset\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns zero .RE @@ -709,12 +709,12 @@ returns zero .SS "KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_get_max_time_skew (krb5_context context)" Get max time skew allowed\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 timeskew in seconds\&. .RE @@ -723,12 +723,12 @@ timeskew in seconds\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_use_admin_kdc (krb5_context context)" Make the kerberos library default to the admin KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 boolean flag to telling the context will use admin KDC as the default KDC\&. .RE @@ -737,12 +737,12 @@ boolean flag to telling the context will use admin KDC as the default KDC\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context (krb5_context * context)" Initializes the context structure and reads the configuration file /etc/krb5\&.conf\&. The structure should be freed by calling \fBkrb5_free_context()\fP when it is no longer being used\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP pointer to returned context .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an errno code is returned\&. Failure means either that something bad happened during initialization (typically ENOMEM) or that Kerberos should not be used ENXIO\&. If the function returns HEIM_ERR_RANDOM_OFFLINE, the random source is not available and later Kerberos calls might fail\&. .RE @@ -753,7 +753,7 @@ Most Kerberos users calls \fBkrb5_init_context()\fP, so this is useful point whe .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_ets (krb5_context context)" Init the built-in ets in the Kerberos library\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP kerberos context to add the ets too .RE @@ -762,7 +762,7 @@ Init the built-in ets in the Kerberos library\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_thread_safe (void)" Runtime check if the Kerberos library was complied with thread support\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE if the library was compiled with thread support, FALSE if not\&. .RE @@ -771,7 +771,7 @@ TRUE if the library was compiled with thread support, FALSE if not\&. .SS "KRB5_LIB_FUNCTION const krb5_enctype* KRB5_LIB_CALL krb5_kerberos_enctypes (krb5_context context)" Returns the list of Kerberos encryption types sorted in order of most preferred to least preferred encryption type\&. Note that some encryption types might be disabled, so you need to check with \fBkrb5_enctype_valid()\fP before using the encryption type\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 list of enctypes, terminated with ETYPE_NULL\&. Its a static array completed into the Kerberos library so the content doesn't need to be freed\&. .RE @@ -784,14 +784,14 @@ Returns an the struct addrinfo in in that corresponds to the information in `hos .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_prepend_config_files_default (const char * filelist, char *** pfilenames)" Prepend the filename to the global configuration list\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIfilelist\fP a filename to add to the default list of filename .br \fIpfilenames\fP return array of filenames, should be freed with \fBkrb5_free_config_files()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -800,14 +800,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_config_files (krb5_context context, char ** filenames)" Reinit the context from a new set of filenames\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP context to add configuration too\&. .br \fIfilenames\fP array of filenames, end of list is indicated with a NULL filename\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -816,14 +816,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_default_in_tkt_etypes (krb5_context context, const krb5_enctype * etypes)" Set the default encryption types that will be use in communcation with the KDC, clients and servers\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIetypes\fP Encryption types, array terminated with ETYPE_NULL (0)\&. A value of NULL resets the encryption types to the defaults set in the configuration file\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -832,7 +832,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_dns_canonicalize_hostname (krb5_context context, krb5_boolean flag)" Set if the library should use DNS to canonicalize hostnames\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -843,14 +843,14 @@ Set if the library should use DNS to canonicalize hostnames\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_extra_addresses (krb5_context context, const krb5_addresses * addresses)" Set extra address to the address list that the library will add to the client's address list when communicating with the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP addreses to set .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -859,14 +859,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_fcache_version (krb5_context context, int version)" Set version of fcache that the library should use\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIversion\fP version number\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -877,14 +877,14 @@ Enable and disable home directory access on either the global state or the krb5_ .PP For home directory access to be allowed, both the global state and the krb5_context state have to be allowed\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context or NULL .br \fIallow\fP allow if TRUE home directory .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the old value .RE @@ -893,14 +893,14 @@ the old value .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_ignore_addresses (krb5_context context, const krb5_addresses * addresses)" Set extra addresses to ignore when fetching addresses from the underlaying operating system\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br \fIaddresses\fP addreses to ignore .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -909,7 +909,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_kdc_sec_offset (krb5_context context, int32_t sec, int32_t usec)" Set current offset in time to the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -918,7 +918,7 @@ Set current offset in time to the KDC\&. \fIusec\fP micro seconds part of offset\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns zero .RE @@ -927,7 +927,7 @@ returns zero .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_max_time_skew (krb5_context context, time_t t)" Set max time skew allowed\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -938,7 +938,7 @@ Set max time skew allowed\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_password (krb5_context context, krb5_creds * creds, const char * newpw, krb5_principal targprinc, int * result_code, krb5_data * result_code_string, krb5_data * result_string)" Change password using creds\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -955,7 +955,7 @@ Change password using creds\&. \fIresult_string\fP A message from the kpasswd service or the library in human printable form\&. The string is NUL terminated\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed\&. .RE @@ -964,7 +964,7 @@ On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_real_time (krb5_context context, krb5_timestamp sec, int32_t usec)" Set the absolute time that the caller knows the kdc has so the kerberos library can calculate the relative diffrence beteen the KDC time and local system time\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br @@ -973,7 +973,7 @@ Set the absolute time that the caller knows the kdc has so the kerberos library \fIusec\fP The applications new of 'now' in micro seconds .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -982,7 +982,7 @@ If the caller passes in a negative usec, its assumed to be unknown and the funct .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_use_admin_kdc (krb5_context context, krb5_boolean flag)" Make the kerberos library default to the admin KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -993,7 +993,7 @@ Make the kerberos library default to the admin KDC\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_authorization_data_type (krb5_context context, krb5_ticket * ticket, int type, krb5_data * data)" Extract the authorization data type of type from the ticket\&. Store the field in data\&. This function is to use for kerberos applications\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -1008,7 +1008,7 @@ Extract the authorization data type of type from the ticket\&. Store the field i .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_client (krb5_context context, const krb5_ticket * ticket, krb5_principal * client)" Return client principal in ticket .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -1017,7 +1017,7 @@ Return client principal in ticket \fIclient\fP client principal, free with \fBkrb5_free_principal()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -1026,14 +1026,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_ticket_get_endtime (krb5_context context, const krb5_ticket * ticket)" Return end time of ticket .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br \fIticket\fP ticket to copy .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 end time of ticket .RE @@ -1042,7 +1042,7 @@ end time of ticket .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_server (krb5_context context, const krb5_ticket * ticket, krb5_principal * server)" Return server principal in ticket .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -1051,7 +1051,7 @@ Return server principal in ticket \fIserver\fP server principal, free with \fBkrb5_free_principal()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -1059,4 +1059,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_address.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_address.3 index d265bb45d9fd..41e8b1556fcc 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_address.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_address.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_address.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_address.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_address" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_address" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_address +krb5_address \- Heimdal Kerberos 5 address functions .SH SYNOPSIS .br .PP @@ -80,7 +80,7 @@ krb5_address .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_addr2sockaddr (krb5_context context, const krb5_address * addr, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)" krb5_addr2sockaddr sets the 'struct sockaddr sockaddr' from addr and port\&. The argument sa_size should initially contain the size of the sa and after the call, it will contain the actual length of the address\&. In case of the sa is too small to fit the whole address, the up to *sa_size will be stored, and then *sa_size will be set to the required length\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -93,7 +93,7 @@ krb5_addr2sockaddr sets the 'struct sockaddr sockaddr' from addr and port\&. The \fIport\fP set port in sa\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported\&. .RE @@ -102,7 +102,7 @@ Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_compare (krb5_context context, const krb5_address * addr1, const krb5_address * addr2)" krb5_address_compare compares the addresses addr1 and addr2\&. Returns TRUE if the two addresses are the same\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -111,7 +111,7 @@ krb5_address_compare compares the addresses addr1 and addr2\&. Returns TRUE if t \fIaddr2\fP address to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an TRUE is the address are the same FALSE if not .RE @@ -120,7 +120,7 @@ Return an TRUE is the address are the same FALSE if not .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_address_order (krb5_context context, const krb5_address * addr1, const krb5_address * addr2)" krb5_address_order compares the addresses addr1 and addr2 so that it can be used for sorting addresses\&. If the addresses are the same address krb5_address_order will return 0\&. Behavies like memcmp(2)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -129,7 +129,7 @@ krb5_address_order compares the addresses addr1 and addr2 so that it can be used \fIaddr2\fP krb5_address to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 < 0 if address addr1 in 'less' then addr2\&. 0 if addr1 and addr2 is the same address, > 0 if addr2 is 'less' then addr1\&. .RE @@ -138,7 +138,7 @@ krb5_address_order compares the addresses addr1 and addr2 so that it can be used .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_address_prefixlen_boundary (krb5_context context, const krb5_address * inaddr, unsigned long prefixlen, krb5_address * low, krb5_address * high)" Calculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low' and `high'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -151,7 +151,7 @@ Calculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low' \fIhigh\fP highest address .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -160,7 +160,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_search (krb5_context context, const krb5_address * addr, const krb5_addresses * addrlist)" krb5_address_search checks if the address addr is a member of the address set list addrlist \&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -169,7 +169,7 @@ krb5_address_search checks if the address addr is a member of the address set li \fIaddrlist\fP list of addresses to look in for addr\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -178,7 +178,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_anyaddr (krb5_context context, int af, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)" krb5_anyaddr fills in a 'struct sockaddr sa' that can be used to bind(2) to\&. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -191,7 +191,7 @@ krb5_anyaddr fills in a 'struct sockaddr sa' that can be used to bind(2) to\&. T \fIport\fP for to fill into sa\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -200,7 +200,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_append_addresses (krb5_context context, krb5_addresses * dest, const krb5_addresses * source)" krb5_append_addresses adds the set of addresses in source to dest\&. While copying the addresses, duplicates are also sorted out\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -209,7 +209,7 @@ krb5_append_addresses adds the set of addresses in source to dest\&. While copyi \fIsource\fP adresses that are going to be added to dest .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -218,7 +218,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_address (krb5_context context, const krb5_address * inaddr, krb5_address * outaddr)" krb5_copy_address copies the content of address inaddr to outaddr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -227,7 +227,7 @@ krb5_copy_address copies the content of address inaddr to outaddr\&. \fIoutaddr\fP pointer to destination address .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -236,7 +236,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_addresses (krb5_context context, const krb5_addresses * inaddr, krb5_addresses * outaddr)" krb5_copy_addresses copies the content of addresses inaddr to outaddr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -245,7 +245,7 @@ krb5_copy_addresses copies the content of addresses inaddr to outaddr\&. \fIoutaddr\fP pointer to destination addresses .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -254,14 +254,14 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_address (krb5_context context, krb5_address * address)" krb5_free_address frees the data stored in the address that is alloced with any of the krb5_address functions\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br \fIaddress\fP addresss to be freed\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -270,14 +270,14 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_addresses (krb5_context context, krb5_addresses * addresses)" krb5_free_addresses frees the data stored in the address that is alloced with any of the krb5_address functions\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br \fIaddresses\fP addressses to be freed\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -286,7 +286,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2addr (krb5_context context, int af, const char * haddr, krb5_address * addr)" krb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it operates on a krb5_address instead of a struct sockaddr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -297,7 +297,7 @@ krb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it oper \fIaddr\fP returned krb5_address\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -306,7 +306,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2sockaddr (krb5_context context, int af, const char * addr, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)" krb5_h_addr2sockaddr initializes a 'struct sockaddr sa' from af and the 'struct hostent' (see gethostbyname(3) ) h_addr_list component\&. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -321,7 +321,7 @@ krb5_h_addr2sockaddr initializes a 'struct sockaddr sa' from af and the 'struct \fIport\fP port to set in sa\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -330,7 +330,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_addrport (krb5_context context, krb5_address ** res, const krb5_address * addr, int16_t port)" Create an address of type KRB5_ADDRESS_ADDRPORT from (addr, port) .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -341,7 +341,7 @@ Create an address of type KRB5_ADDRESS_ADDRPORT from (addr, port) \fIport\fP port to use .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -350,7 +350,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL krb5_max_sockaddr_size (void)" krb5_max_sockaddr_size returns the max size of the \&.Li struct sockaddr that the Kerberos library will return\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an size_t of the maximum struct sockaddr\&. .RE @@ -359,7 +359,7 @@ Return an size_t of the maximum struct sockaddr\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_address (krb5_context context, const char * string, krb5_addresses * addresses)" krb5_parse_address returns the resolved hostname in string to the krb5_addresses addresses \&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -368,7 +368,7 @@ krb5_parse_address returns the resolved hostname in string to the krb5_addresses \fIaddresses\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -377,7 +377,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_print_address (const krb5_address * addr, char * str, size_t len, size_t * ret_len)" krb5_print_address prints the address in addr to the string string that have the length len\&. If ret_len is not NULL, it will be filled with the length of the string if size were unlimited (not including the final NUL) \&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIaddr\fP address to be printed .br @@ -388,7 +388,7 @@ krb5_print_address prints the address in addr to the string string that have the \fIret_len\fP return length the str\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -397,7 +397,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2address (krb5_context context, const struct sockaddr * sa, krb5_address * addr)" krb5_sockaddr2address stores a address a 'struct sockaddr' sa in the krb5_address addr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -406,7 +406,7 @@ krb5_sockaddr2address stores a address a 'struct sockaddr' sa in the krb5_addres \fIaddr\fP an Kerberos 5 address to store the address in\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -415,7 +415,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2port (krb5_context context, const struct sockaddr * sa, int16_t * port)" krb5_sockaddr2port extracts a port (if possible) from a "struct sockaddr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -424,7 +424,7 @@ krb5_sockaddr2port extracts a port (if possible) from a "struct sockaddr\&. \fIport\fP a pointer to an int16_t store the port in\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported\&. .RE @@ -433,12 +433,12 @@ Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_sockaddr_uninteresting (const struct sockaddr * sa)" krb5_sockaddr_uninteresting returns TRUE for all \&.Fa sa that the kerberos library thinks are uninteresting\&. One example are link local addresses\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsa\fP pointer to struct sockaddr that might be interesting\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return a non zero for uninteresting addresses\&. .RE @@ -446,4 +446,4 @@ Return a non zero for uninteresting addresses\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_auth.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_auth.3 index aea43c096628..6cd2d858defe 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_auth.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_auth.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_auth.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_auth.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_auth" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_auth" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_auth +krb5_auth \- Heimdal Kerberos 5 authentication functions .SH SYNOPSIS .br .PP @@ -38,7 +38,7 @@ krb5_auth .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_ctx (krb5_context context, krb5_auth_context * auth_context, const krb5_data * inbuf, krb5_const_principal server, krb5_rd_req_in_ctx inctx, krb5_rd_req_out_ctx * outctx)" The core server function that verify application authentication requests from clients\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br @@ -53,7 +53,7 @@ The core server function that verify application authentication requests from cl \fIoutctx\fP the return outctx, free with \fBkrb5_rd_req_out_ctx_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -62,14 +62,14 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_ctx_alloc (krb5_context context, krb5_rd_req_in_ctx * ctx)" Allocate a krb5_rd_req_in_ctx as an input parameter to \fBkrb5_rd_req_ctx()\fP\&. The caller should free the context with krb5_rd_req_in_ctx_free() when done with the context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br \fIctx\fP in ctx to \fBkrb5_rd_req_ctx()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -78,7 +78,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_keytab (krb5_context context, krb5_rd_req_in_ctx in, krb5_keytab keytab)" Set the keytab that \fBkrb5_rd_req_ctx()\fP will use\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br @@ -87,7 +87,7 @@ Set the keytab that \fBkrb5_rd_req_ctx()\fP will use\&. \fIkeytab\fP keytab that \fBkrb5_rd_req_ctx()\fP will use, only copy the pointer, so the caller must free they keytab after krb5_rd_req_in_ctx_free() is called\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -96,7 +96,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_pac_check (krb5_context context, krb5_rd_req_in_ctx in, krb5_boolean flag)" Set if krb5_rq_red() is going to check the Windows PAC or not .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br @@ -105,7 +105,7 @@ Set if krb5_rq_red() is going to check the Windows PAC or not \fIflag\fP flag to select if to check the pac (TRUE) or not (FALSE)\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -114,7 +114,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_rd_req_out_ctx_free (krb5_context context, krb5_rd_req_out_ctx ctx)" Free the krb5_rd_req_out_ctx\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Keberos 5 context\&. .br @@ -125,7 +125,7 @@ Free the krb5_rd_req_out_ctx\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_out_get_server (krb5_context context, krb5_rd_req_out_ctx out, krb5_principal * principal)" Get the principal that was used in the request from the client\&. Might not match whats in the ticket if \fBkrb5_rd_req_ctx()\fP searched in the keytab for a matching key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -137,4 +137,4 @@ Get the principal that was used in the request from the client\&. Might not matc .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache.3 index a415c81e6172..9b87e636fa45 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_ccache.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_ccache.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_ccache" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_ccache" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_ccache +krb5_ccache \- Heimdal Kerberos 5 credential cache functions .SH SYNOPSIS .br .PP @@ -186,7 +186,7 @@ krb5_ccache .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_end_seq_get (krb5_context context, krb5_cc_cache_cursor cursor)" Destroy the cursor `cursor'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -195,7 +195,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_get_first (krb5_context context, const char * type, krb5_cc_cache_cursor * cursor)" Start iterating over all caches of specified type\&. See also \fBkrb5_cccol_cursor_new()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -204,7 +204,7 @@ Start iterating over all caches of specified type\&. See also \fBkrb5_cccol_curs \fIcursor\fP cursor should be freed with \fBkrb5_cc_cache_end_seq_get()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -213,7 +213,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_match (krb5_context context, krb5_principal client, krb5_ccache * id)" Search for a matching credential cache that have the `principal' as the default principal\&. On success, `id' needs to be freed with \fBkrb5_cc_close()\fP or \fBkrb5_cc_destroy()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -222,7 +222,7 @@ Search for a matching credential cache that have the `principal' as the default \fIid\fP the returned credential cache .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 On failure, error code is returned and `id' is set to NULL\&. .RE @@ -231,7 +231,7 @@ On failure, error code is returned and `id' is set to NULL\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_next (krb5_context context, krb5_cc_cache_cursor cursor, krb5_ccache * id)" Retrieve the next cache pointed to by (`cursor') in `id' and advance `cursor'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -240,7 +240,7 @@ Retrieve the next cache pointed to by (`cursor') in `id' and advance `cursor'\&. \fIid\fP next ccache .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or an error code\&. Returns KRB5_CC_END when the end of caches is reached, see \fBkrb5_get_error_message()\fP\&. .RE @@ -251,7 +251,7 @@ Clear `mcreds' so it can be used with krb5_cc_retrieve_cred .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_close (krb5_context context, krb5_ccache id)" Stop using the ccache `id' and free the related resources\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -266,7 +266,7 @@ MIT compat glue .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_copy_match_f (krb5_context context, const krb5_ccache from, krb5_ccache to, krb5_boolean(*)(krb5_context, void *, const krb5_creds *) match, void * matchctx, unsigned int * matched)" Copy the contents of `from' to `to' if the given match function return true\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -281,7 +281,7 @@ Copy the contents of `from' to `to' if the given match function return true\&. \fImatched\fP set to true if there was a credential that matched, may be NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -290,7 +290,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_default (krb5_context context, krb5_ccache * id)" Open the default ccache in `id'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -299,7 +299,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_cc_default_name (krb5_context context)" Return a pointer to a context static string containing the default ccache name\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 String to the default credential cache name\&. .RE @@ -308,7 +308,7 @@ String to the default credential cache name\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_destroy (krb5_context context, krb5_ccache id)" Remove the ccache `id'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -321,7 +321,7 @@ Generate a new ccache of type `ops' in `id'\&. .PP Deprecated: use \fBkrb5_cc_new_unique()\fP instead\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -330,7 +330,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_config (krb5_context context, krb5_ccache id, krb5_const_principal principal, const char * name, krb5_data * data)" Get some configuration for the credential cache in the cache\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -349,7 +349,7 @@ Get the flags of `id', store them in `flags'\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_friendly_name (krb5_context context, krb5_ccache id, char ** name)" Return a friendly name on credential cache\&. Free the result with krb5_xfree()\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -358,7 +358,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_full_name (krb5_context context, krb5_ccache id, char ** str)" Return the complete resolvable name the cache .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -367,7 +367,7 @@ Return the complete resolvable name the cache \fIstr\fP the returned name of a credential cache, free with krb5_xfree() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 or an error (and then *str is set to NULL)\&. .RE @@ -378,7 +378,7 @@ Get the time offset betwen the client and the KDC .PP If the backend doesn't support KDC offset, use the context global setting\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -387,7 +387,7 @@ If the backend doesn't support KDC offset, use the context global setting\&. \fIoffset\fP the offset in seconds .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -398,7 +398,7 @@ Get the lifetime of the initial ticket in the cache .PP Get the lifetime of the initial ticket in the cache, if the initial ticket was not found, the error code KRB5_CC_END is returned\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -407,7 +407,7 @@ Get the lifetime of the initial ticket in the cache, if the initial ticket was n \fIt\fP the relative lifetime of the initial ticket .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -422,7 +422,7 @@ Return krb5_cc_ops of a the ccache `id'\&. .SS "KRB5_LIB_FUNCTION const krb5_cc_ops* KRB5_LIB_CALL krb5_cc_get_prefix_ops (krb5_context context, const char * prefix)" Get the cc ops that is registered in `context' to handle the prefix\&. prefix can be a complete credential cache name or a prefix, the function will only use part up to the first colon (:) if there is one\&. If prefix the argument is NULL, the default ccache implemtation is returned\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns NULL if ops not found\&. .RE @@ -431,7 +431,7 @@ Returns NULL if ops not found\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_principal (krb5_context context, krb5_ccache id, krb5_principal * principal)" Return the principal of `id' in `principal'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -444,7 +444,7 @@ Return the version of `id'\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_initialize (krb5_context context, krb5_ccache id, krb5_principal primary_principal)" Create a new ccache in `id' for `primary_principal'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -453,7 +453,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_last_change_time (krb5_context context, krb5_ccache id, krb5_timestamp * mtime)" Return the last time the credential cache was modified\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -462,7 +462,7 @@ Return the last time the credential cache was modified\&. \fImtime\fP the last modification time, set to 0 on error\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&. .RE @@ -471,7 +471,7 @@ Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_move (krb5_context context, krb5_ccache from, krb5_ccache to)" Move the content from one credential cache to another\&. The operation is an atomic switch\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -480,7 +480,7 @@ Move the content from one credential cache to another\&. The operation is an ato \fIto\fP the credential cache to move the content to .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 On sucess, from is freed\&. On failure, error code is returned and from and to are both still allocated, see \fBkrb5_get_error_message()\fP\&. .RE @@ -489,7 +489,7 @@ On sucess, from is freed\&. On failure, error code is returned and from and to a .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_new_unique (krb5_context context, const char * type, const char * hint, krb5_ccache * id)" Generates a new unique ccache of \fCtype\fP in `id'\&. If `type' is NULL, the library chooses the default credential cache type\&. The supplied `hint' (that can be NULL) is a string that the credential cache type can use to base the name of the credential on, this is to make it easier for the user to differentiate the credentials\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -498,7 +498,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_next_cred (krb5_context context, const krb5_ccache id, krb5_cc_cursor * cursor, krb5_creds * creds)" Retrieve the next cred pointed to by (`id', `cursor') in `creds' and advance `cursor'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -507,7 +507,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_register (krb5_context context, const krb5_cc_ops * ops, krb5_boolean override)" Add a new ccache type with operations `ops', overwriting any existing one if `override'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -516,7 +516,7 @@ Add a new ccache type with operations `ops', overwriting any existing one if `ov \fIoverride\fP flag to select if the registration is to overide an existing ops with the same name\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -527,7 +527,7 @@ Remove the credential identified by `cred', `which' from `id'\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_resolve (krb5_context context, const char * name, krb5_ccache * id)" Find and allocate a ccache in `id' from the specification in `residual'\&. If the ccache name doesn't contain any colon, interpret it as a file name\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -536,7 +536,7 @@ Find and allocate a ccache in `id' from the specification in `residual'\&. If th \fIid\fP return pointer to a found credential cache\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or an error code\&. In case of an error, id is set to NULL, see \fBkrb5_get_error_message()\fP\&. .RE @@ -545,7 +545,7 @@ Return 0 or an error code\&. In case of an error, id is set to NULL, see \fBkrb5 .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_retrieve_cred (krb5_context context, krb5_ccache id, krb5_flags whichfields, const krb5_creds * mcreds, krb5_creds * creds)" Retrieve the credential identified by `mcreds' (and `whichfields') from `id' in `creds'\&. 'creds' must be free by the caller using krb5_free_cred_contents\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -558,7 +558,7 @@ Retrieve the credential identified by `mcreds' (and `whichfields') from `id' in \fIcreds\fP returned credential, free with \fBkrb5_free_cred_contents()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -567,7 +567,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_set_config (krb5_context context, krb5_ccache id, krb5_const_principal principal, const char * name, krb5_data * data)" Store some configuration for the credential cache in the cache\&. Existing configuration under the same name is over-written\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -588,7 +588,7 @@ Set the flags of `id' to `flags'\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_set_friendly_name (krb5_context context, krb5_ccache id, const char * name)" Set the friendly name on credential cache\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -599,7 +599,7 @@ Set the time offset betwen the client and the KDC .PP If the backend doesn't support KDC offset, use the context global setting\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -608,7 +608,7 @@ If the backend doesn't support KDC offset, use the context global setting\&. \fIoffset\fP the offset in seconds .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -617,7 +617,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_start_seq_get (krb5_context context, const krb5_ccache id, krb5_cc_cursor * cursor)" Start iterating over `id', `cursor' is initialized to the beginning\&. Caller must free the cursor with \fBkrb5_cc_end_seq_get()\fP\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -626,7 +626,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_store_cred (krb5_context context, krb5_ccache id, krb5_creds * creds)" Store `creds' in the ccache `id'\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -637,7 +637,7 @@ Return true if the default credential cache support switch .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_switch (krb5_context context, krb5_ccache id)" Switch the default default credential cache for a specific credcache type (and name for some implementations)\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -646,14 +646,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_free (krb5_context context, krb5_cccol_cursor * cursor)" End an iteration and free all resources, can be done before end is reached\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br \fIcursor\fP the iteration cursor to be freed\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \fBkrb5_get_error_message()\fP\&. .RE @@ -662,14 +662,14 @@ Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \f .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_new (krb5_context context, krb5_cccol_cursor * cursor)" Get a new cache interation cursor that will interate over all credentials caches independent of type\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br \fIcursor\fP passed into \fBkrb5_cccol_cursor_next()\fP and free with \fBkrb5_cccol_cursor_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 or and error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -678,7 +678,7 @@ Returns 0 or and error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_next (krb5_context context, krb5_cccol_cursor cursor, krb5_ccache * cache)" Get next credential cache from the iteration\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -687,7 +687,7 @@ Get next credential cache from the iteration\&. \fIcache\fP the returned cursor, pointer is set to NULL on failure and a cache on success\&. The returned cache needs to be freed with \fBkrb5_cc_close()\fP or destroyed with \fBkrb5_cc_destroy()\fP\&. MIT Kerberos behavies slightly diffrent and sets cache to NULL when all caches are iterated over and return 0\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \fBkrb5_get_error_message()\fP\&. .RE @@ -696,7 +696,7 @@ Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \f .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_last_change_time (krb5_context context, const char * type, krb5_timestamp * mtime)" Return the last modfication time for a cache collection\&. The query can be limited to a specific cache type\&. If the function return 0 and mtime is 0, there was no credentials in the caches\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -705,7 +705,7 @@ Return the last modfication time for a cache collection\&. The query can be limi \fImtime\fP the last modification time, set to 0 on error\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&. .RE @@ -714,7 +714,7 @@ Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_validated_creds (krb5_context context, krb5_creds * creds, krb5_principal client, krb5_ccache ccache, char * service)" Validate the newly fetch credential, see also krb5_verify_init_creds()\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -731,7 +731,7 @@ Validate the newly fetch credential, see also krb5_verify_init_creds()\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_config_principal (krb5_context context, krb5_const_principal principal)" Return TRUE (non zero) if the principal is a configuration principal (generated part of \fBkrb5_cc_set_config()\fP)\&. Returns FALSE (zero) if not a configuration principal\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -879,4 +879,4 @@ Variable containing the FILE based credential cache implemention\&. Variable containing the MEMORY based credential cache implemention\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3 index 44d70959d676..ecc090dd85a2 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_ccache_intro.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_ccache_intro.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_ccache_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_ccache_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_ccache_introThe credential cache functions - \- +krb5_ccache_intro \- The credential cache functions + .SH "Kerberos credential caches" .PP krb5_ccache structure holds a Kerberos credential cache\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_credential.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_credential.3 index 9cd0b33f217f..097bf16282f8 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_credential.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_credential.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_credential.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_credential.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_credential" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_credential" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_credential +krb5_credential \- Heimdal Kerberos 5 credential handing functions .SH SYNOPSIS .br .PP @@ -65,7 +65,7 @@ krb5_credential .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_fwd_tgt_creds (krb5_context context, krb5_auth_context auth_context, const char * hostname, krb5_principal client, krb5_principal server, krb5_ccache ccache, int forwardable, krb5_data * out_data)" Forward credentials for client to host hostname , making them forwardable if forwardable, and returning the blob of data to sent in out_data\&. If hostname == NULL, pick it from server\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A kerberos 5 context\&. .br @@ -84,7 +84,7 @@ Forward credentials for client to host hostname , making them forwardable if for \fIout_data\fP the resulting credential\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -95,7 +95,7 @@ Gets tickets forwarded to hostname\&. If the tickets that are forwarded are addr .PP If the ticket have any address, hostname will be used for figure out the address to forward the ticket too\&. This since this might use DNS, its insecure and also doesn't represent configured all addresses of the host\&. For example, the host might have two adresses, one IPv4 and one IPv6 address where the later is not published in DNS\&. This IPv6 address might be used communications and thus the resulting ticket useless\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A kerberos 5 context\&. .br @@ -112,7 +112,7 @@ If the ticket have any address, hostname will be used for figure out the address \fIout_data\fP the resulting credential\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -131,7 +131,7 @@ Get new credentials using password\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_creds_free (krb5_context context, krb5_init_creds_context ctx)" Free the krb5_init_creds_context allocated by \fBkrb5_init_creds_init()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -142,7 +142,7 @@ Free the krb5_init_creds_context allocated by \fBkrb5_init_creds_init()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_get (krb5_context context, krb5_init_creds_context ctx)" Get new credentials as setup by the krb5_init_creds_context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -153,7 +153,7 @@ Get new credentials as setup by the krb5_init_creds_context\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_get_error (krb5_context context, krb5_init_creds_context ctx, KRB_ERROR * error)" Get the last error from the transaction\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 or an error code .RE @@ -162,7 +162,7 @@ Returns 0 or an error code .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_init (krb5_context context, krb5_principal client, krb5_prompter_fct prompter, void * prompter_data, krb5_deltat start_time, krb5_get_init_creds_opt * options, krb5_init_creds_context * rctx)" Start a new context to get a new initial credential\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -179,7 +179,7 @@ Start a new context to get a new initial credential\&. \fIrctx\fP A new allocated free with \fBkrb5_init_creds_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -188,7 +188,7 @@ Start a new context to get a new initial credential\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_keytab (krb5_context context, krb5_init_creds_context ctx, krb5_keytab keytab)" Set the keytab to use for authentication\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -197,7 +197,7 @@ Set the keytab to use for authentication\&. \fIkeytab\fP the keytab to read the key from\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -206,7 +206,7 @@ Set the keytab to use for authentication\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_password (krb5_context context, krb5_init_creds_context ctx, const char * password)" Sets the password that will use for the request\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -215,7 +215,7 @@ Sets the password that will use for the request\&. \fIpassword\fP the password to use\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -224,7 +224,7 @@ Sets the password that will use for the request\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_service (krb5_context context, krb5_init_creds_context ctx, const char * service)" Sets the service that the is requested\&. This call is only neede for special initial tickets, by default the a krbtgt is fetched in the default realm\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -233,7 +233,7 @@ Sets the service that the is requested\&. This call is only neede for special in \fIservice\fP the service given as a string, for example 'kadmind/admin'\&. If NULL, the default krbtgt in the clients realm is set\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -244,7 +244,7 @@ The core loop if krb5_get_init_creds() function family\&. Create the packets and .PP If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP instead\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -259,7 +259,7 @@ If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP \fIflags\fP status of the round, if KRB5_INIT_CREDS_STEP_FLAG_CONTINUE is set, continue one more round\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -267,4 +267,4 @@ If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto.3 index 4d8bb47c8ab4..a79086cb18b5 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_crypto.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_crypto.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_crypto" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_crypto" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_crypto +krb5_crypto \- Heimdal Kerberos 5 cryptography functions .SH SYNOPSIS .br .PP @@ -110,14 +110,14 @@ krb5_crypto .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL _krb5_enctype_requires_random_salt (krb5_context context, krb5_enctype enctype)" Returns whether the encryption type should use randomly generated salts .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIenctype\fP encryption type to probe .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns true if generated salts should have random component .RE @@ -126,7 +126,7 @@ Returns true if generated salts should have random component .SS "krb5_error_code _krb5_SP800_108_HMAC_KDF (krb5_context context, const krb5_data * kdf_K1, const krb5_data * kdf_label, const krb5_data * kdf_context, const EVP_MD * md, krb5_data * kdf_K0)" As described in SP800-108 5\&.1 (for HMAC) .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -141,7 +141,7 @@ As described in SP800-108 5\&.1 (for HMAC) \fIkdf_K0\fP Derived key data\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code for an failure or 0 on success\&. .RE @@ -150,14 +150,14 @@ Return an error code for an failure or 0 on success\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_allow_weak_crypto (krb5_context context, krb5_boolean enable)" Enable or disable all weak encryption types .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIenable\fP true to enable, false to disable .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -166,7 +166,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cksumtype_to_enctype (krb5_context context, krb5_cksumtype ctype, krb5_enctype * etype)" Return the coresponding encryption type for a checksum type\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -175,7 +175,7 @@ Return the coresponding encryption type for a checksum type\&. \fIetype\fP The returned encryption, when the matching etype is not found, etype is set to ETYPE_NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code for an failure or 0 on success\&. .RE @@ -184,7 +184,7 @@ Return an error code for an failure or 0 on success\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock (krb5_context context, const krb5_keyblock * inblock, krb5_keyblock ** to)" Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -193,7 +193,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&. \fIto\fP the output key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success or a Kerberos 5 error code .RE @@ -202,7 +202,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock_contents (krb5_context context, const krb5_keyblock * inblock, krb5_keyblock * to)" Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -211,7 +211,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\ \fIto\fP the output key\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success or a Kerberos 5 error code .RE @@ -220,7 +220,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\ .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_create_checksum_iov (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, krb5_cksumtype * type)" Create a Kerberos message checksum\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -235,7 +235,7 @@ Create a Kerberos message checksum\&. \fItype\fP output data .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -244,14 +244,14 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_destroy (krb5_context context, krb5_crypto crypto)" Free a crypto context created by \fBkrb5_crypto_init()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br \fIcrypto\fP crypto context to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -260,7 +260,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_fx_cf2 (krb5_context context, const krb5_crypto crypto1, const krb5_crypto crypto2, krb5_data * pepper1, krb5_data * pepper2, krb5_enctype enctype, krb5_keyblock * res)" The FX-CF2 key derivation function, used in FAST and preauth framework\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -277,7 +277,7 @@ The FX-CF2 key derivation function, used in FAST and preauth framework\&. \fIres\fP allocated key, free with \fBkrb5_free_keyblock_contents()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -286,7 +286,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getblocksize (krb5_context context, krb5_crypto crypto, size_t * blocksize)" Return the blocksize used algorithm referenced by the crypto context .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -295,7 +295,7 @@ Return the blocksize used algorithm referenced by the crypto context \fIblocksize\fP the resulting blocksize .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -304,7 +304,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getconfoundersize (krb5_context context, krb5_crypto crypto, size_t * confoundersize)" Return the confounder size used by the crypto context .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -313,7 +313,7 @@ Return the confounder size used by the crypto context \fIconfoundersize\fP the returned confounder size .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -322,7 +322,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getenctype (krb5_context context, krb5_crypto crypto, krb5_enctype * enctype)" Return the encryption type used by the crypto context .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -331,7 +331,7 @@ Return the encryption type used by the crypto context \fIenctype\fP the resulting encryption type .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -340,7 +340,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getpadsize (krb5_context context, krb5_crypto crypto, size_t * padsize)" Return the padding size used by the crypto context .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -349,7 +349,7 @@ Return the padding size used by the crypto context \fIpadsize\fP the return padding size .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -360,7 +360,7 @@ Create a crypto context used for all encryption and signature operation\&. The e .PP To free the crypto context, use \fBkrb5_crypto_destroy()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -371,7 +371,7 @@ To free the crypto context, use \fBkrb5_crypto_destroy()\fP\&. \fIcrypto\fP the resulting crypto context .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -380,7 +380,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_decrypt_iov_ivec (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, void * ivec)" Inline decrypt a Kerberos message\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -395,7 +395,7 @@ Inline decrypt a Kerberos message\&. \fIivec\fP initial cbc/cts vector .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -409,7 +409,7 @@ one KRB5_CRYPTO_TYPE_DATA and array [0,\&.\&.\&.] of KRB5_CRYPTO_TYPE_SIGN_ONLY .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_encrypt_iov_ivec (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, int num_data, void * ivec)" Inline encrypt a kerberos message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -424,7 +424,7 @@ Inline encrypt a kerberos message \fIivec\fP initial cbc/cts vector .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -444,14 +444,14 @@ KRB5_CRYPTO_TYPE_TRAILER .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_disable (krb5_context context, krb5_enctype enctype)" Disable encryption type .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIenctype\fP encryption type to disable .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -460,14 +460,14 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_enable (krb5_context context, krb5_enctype enctype)" Enable encryption type .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIenctype\fP encryption type to enable .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -476,14 +476,14 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_valid (krb5_context context, krb5_enctype etype)" Check if a enctype is valid, return 0 if it is\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br \fIetype\fP enctype to check if its valid or not .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code for an failure or 0 on success (enctype valid)\&. .RE @@ -492,7 +492,7 @@ Return an error code for an failure or 0 on success (enctype valid)\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock (krb5_context context, krb5_keyblock * keyblock)" Free a keyblock, also zero out the content of the keyblock, uses \fBkrb5_free_keyblock_contents()\fP to free the content\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -503,7 +503,7 @@ Free a keyblock, also zero out the content of the keyblock, uses \fBkrb5_free_ke .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock_contents (krb5_context context, krb5_keyblock * keyblock)" Free a keyblock's content, also zero out the content of the keyblock\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context .br @@ -516,14 +516,14 @@ Fill buffer buf with len bytes of PRNG randomness that is ok to use for key gene .PP This function can fail, and callers must check the return value\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIbuf\fP a buffer to fill with randomness .br \fIlen\fP length of memory that buf points to\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 return 0 on success or HEIM_ERR_RANDOM_OFFLINE if the funcation failed to initialize the randomness source\&. .RE @@ -536,7 +536,7 @@ This function can NOT fail, instead it will abort() and program will crash\&. .PP If this function is called after a successful \fBkrb5_init_context()\fP, the chance of it failing is low due to that \fBkrb5_init_context()\fP pulls out some random, and quite commonly the randomness sources will not fail once it have started to produce good output, /dev/urandom behavies that way\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIbuf\fP a buffer to fill with randomness .br @@ -547,7 +547,7 @@ If this function is called after a successful \fBkrb5_init_context()\fP, the cha .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey_extended (krb5_context context, const krb5_keyblock * key, krb5_enctype etype, krb5_keyblock ** subkey)" Generate subkey, from keyblock .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP kerberos context .br @@ -558,7 +558,7 @@ Generate subkey, from keyblock \fIsubkey\fP returned new, free with \fBkrb5_free_keyblock()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success or a Kerberos 5 error code .RE @@ -567,14 +567,14 @@ Generate subkey, from keyblock .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_enctype_weak (krb5_context context, krb5_enctype enctype)" Returns is the encryption is strong or weak .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIenctype\fP encryption type to probe .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns true if encryption type is weak or is not supported\&. .RE @@ -585,7 +585,7 @@ Get encryption type of a keyblock\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keyblock_init (krb5_context context, krb5_enctype type, const void * data, size_t size, krb5_keyblock * key)" Fill in `key' with key data of type `enctype' from `data' of length `size'\&. Key should be freed using \fBkrb5_free_keyblock_contents()\fP\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success or a Kerberos 5 error code .RE @@ -594,7 +594,7 @@ Fill in `key' with key data of type `enctype' from `data' of length `size'\&. Ke .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_keyblock_zero (krb5_keyblock * keyblock)" Zero out a keyblock .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkeyblock\fP keyblock to zero out .RE @@ -603,7 +603,7 @@ Zero out a keyblock .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_random_to_key (krb5_context context, krb5_enctype type, const void * data, size_t size, krb5_keyblock * key)" Converts the random bytestring to a protocol key according to Kerberos crypto frame work\&. It may be assumed that all the bits of the input string are equally random, even though the entropy present in the random source may be limited\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -616,7 +616,7 @@ Converts the random bytestring to a protocol key according to Kerberos crypto fr \fIkey\fP key, output key, free with \fBkrb5_free_keyblock_contents()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -625,7 +625,7 @@ Return an error code or 0\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verify_checksum_iov (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, krb5_cksumtype * type)" Verify a Kerberos message checksum\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -640,7 +640,7 @@ Verify a Kerberos message checksum\&. \fItype\fP return checksum type if not NULL .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -648,4 +648,4 @@ Return an error code or 0\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3 index 6563ec4ca928..62a4be3fba30 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: krb5_crypto_iov.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_crypto_iov.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_crypto_iov" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_crypto_iov" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -16,4 +16,4 @@ Semi private, not stable yet .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_deprecated.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_deprecated.3 index 98861be1535a..a898b3d718cc 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_deprecated.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_deprecated.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_deprecated.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_deprecated.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_deprecated" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_deprecated" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_deprecated +krb5_deprecated \- Heimdal Kerberos 5 deprecated functions .SH SYNOPSIS .br .PP @@ -108,7 +108,7 @@ Deprecated: keytypes doesn't exists, they are really enctypes\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_change_password (krb5_context context, krb5_creds * creds, const char * newpw, int * result_code, krb5_data * result_code_string, krb5_data * result_string)" Deprecated: \fBkrb5_change_password()\fP is deprecated, use \fBkrb5_set_password()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -123,7 +123,7 @@ Deprecated: \fBkrb5_change_password()\fP is deprecated, use \fBkrb5_set_password \fIresult_string\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 On sucess password is changed\&. .RE @@ -134,7 +134,7 @@ Clear the error message returned by \fBkrb5_get_error_string()\fP\&. .PP Deprecated: use \fBkrb5_clear_error_message()\fP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .RE @@ -151,7 +151,7 @@ Same as \fBkrb5_data_free()\fP\&. MIT compat\&. .PP Deprecated: use \fBkrb5_data_free()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -164,7 +164,7 @@ Free the error message returned by \fBkrb5_get_error_string()\fP\&. .PP Deprecated: use \fBkrb5_free_error_message()\fP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -211,14 +211,14 @@ Set the error message returned by \fBkrb5_get_error_string()\fP\&. .PP Deprecated: use \fBkrb5_get_error_message()\fP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br \fIfmt\fP error message to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -231,7 +231,7 @@ Set the error message returned by \fBkrb5_get_error_string()\fP, deprecated, use .PP Deprecated: use \fBkrb5_vset_error_message()\fP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -240,7 +240,7 @@ Deprecated: use \fBkrb5_vset_error_message()\fP \fIargs\fP variable argument list vector .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -248,4 +248,4 @@ Return an error code or 0\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_digest.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_digest.3 index 8b01175c3c7e..b5d39c3d6036 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_digest.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_digest.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_digest.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_digest.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_digest" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_digest" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_digest +krb5_digest \- Heimdal Kerberos 5 digest service .SH SYNOPSIS .br .PP @@ -23,7 +23,7 @@ krb5_digest .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_digest_probe (krb5_context context, krb5_realm realm, krb5_ccache ccache, unsigned * flags)" Get the supported/allowed mechanism for this principal\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Keberos context\&. .br @@ -34,7 +34,7 @@ Get the supported/allowed mechanism for this principal\&. \fIflags\fP The supported mechanism\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -42,4 +42,4 @@ Return an error code or 0\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_error.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_error.3 index 29d78113e1b8..fe943a786705 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_error.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_error.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_error.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_error.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_error" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_error" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_error +krb5_error \- Heimdal Kerberos 5 error reporting functions .SH SYNOPSIS .br .PP @@ -30,6 +30,9 @@ krb5_error .RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_vset_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__" .br .ti -1c +.RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_prepend_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt,\&.\&.\&.) __attribute__((__format__(__printf__" +.br +.ti -1c .RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_vprepend_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__" .br .ti -1c @@ -86,7 +89,7 @@ krb5_error .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_abort (krb5_context context, krb5_error_code code, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr, include the error from the last failure and then abort\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -101,7 +104,7 @@ Log a warning to the log, default stderr, include the error from the last failur .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_abortx (krb5_context context, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr, and then abort\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -114,7 +117,7 @@ Log a warning to the log, default stderr, and then abort\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_clear_error_message (krb5_context context)" Clears the error message from the Kerberos 5 context\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP The Kerberos 5 context to clear .RE @@ -123,14 +126,14 @@ Clears the error message from the Kerberos 5 context\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_eai_to_heim_errno (int eai_errno, int system_error)" Convert the getaddrinfo() error code to a Kerberos et error code\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIeai_errno\fP contains the error code from getaddrinfo()\&. .br \fIsystem_error\fP should have the value of errno after the failed getaddrinfo()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos error code representing the EAI errors\&. .RE @@ -139,7 +142,7 @@ Kerberos error code representing the EAI errors\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_err (krb5_context context, int eval, krb5_error_code code, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr, include bthe error from the last failure and then exit\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -154,7 +157,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_errx (krb5_context context, int eval, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr, and then exit\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -167,7 +170,7 @@ Log a warning to the log, default stderr, and then exit\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_error_message (krb5_context context, const char * msg)" Free the error message returned by \fBkrb5_get_error_message()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br @@ -178,14 +181,14 @@ Free the error message returned by \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_get_error_message (krb5_context context, krb5_error_code code)" Return the error message for `code' in context\&. On memory allocation error the function returns NULL\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIcode\fP Error code related to the error .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The functions return NULL on error\&. .RE @@ -194,12 +197,12 @@ an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The f .SS "KRB5_LIB_FUNCTION char* KRB5_LIB_CALL krb5_get_error_string (krb5_context context)" Return the error message in context\&. On error or no error string, the function returns NULL\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The functions return NULL on error\&. .RE @@ -208,7 +211,7 @@ an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The f .SS "KRB5_LIB_FUNCTION krb5_log_facility* KRB5_LIB_CALL krb5_get_warn_dest (krb5_context context)" Get the default logging facility\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .RE @@ -217,23 +220,40 @@ Get the default logging facility\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_errno_to_heim_errno (int eai_errno)" Convert the gethostname() error code (h_error) to a Kerberos et error code\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIeai_errno\fP contains the error code from gethostname()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Kerberos error code representing the gethostname errors\&. .RE .PP +.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_prepend_error_message (krb5_context context, krb5_error_code ret, const char * fmt, \&.\&.\&.)" +Prepend the context full error string for a specific error code\&. The error that is stored should be internationalized\&. +.PP +The if context is NULL, no error string is stored\&. +.PP +\fBParameters\fP +.RS 4 +\fIcontext\fP Kerberos 5 context +.br +\fIret\fP The error code +.br +\fIfmt\fP Error string for the error code +.br +\fI\&.\&.\&.\fP printf(3) style parameters\&. +.RE +.PP + .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_error_message (krb5_context context, krb5_error_code ret, const char * fmt, \&.\&.\&.)" Set the context full error string for a specific error code\&. The error that is stored should be internationalized\&. .PP The if context is NULL, no error string is stored\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -248,7 +268,7 @@ The if context is NULL, no error string is stored\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_warn_dest (krb5_context context, krb5_log_facility * fac)" Set the default logging facility\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -259,7 +279,7 @@ Set the default logging facility\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vabort (krb5_context context, krb5_error_code code, const char * fmt, va_list ap)" Log a warning to the log, default stderr, include bthe error from the last failure and then abort\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -274,7 +294,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verr (krb5_context context, int eval, krb5_error_code code, const char * fmt, va_list ap)" Log a warning to the log, default stderr, include bthe error from the last failure and then exit\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -291,7 +311,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verrx (krb5_context context, int eval, const char * fmt, va_list ap)" Log a warning to the log, default stderr, and then exit\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br @@ -308,7 +328,7 @@ Prepend the contexts's full error string for a specific error code\&. .PP The if context is NULL, no error string is stored\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -325,7 +345,7 @@ Set the context full error string for a specific error code\&. .PP The if context is NULL, no error string is stored\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -340,7 +360,7 @@ The if context is NULL, no error string is stored\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vwarn (krb5_context context, krb5_error_code code, const char * fmt, va_list ap)" Log a warning to the log, default stderr, include the error from the last failure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -355,7 +375,7 @@ Log a warning to the log, default stderr, include the error from the last failur .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vwarnx (krb5_context context, const char * fmt, va_list ap)" Log a warning to the log, default stderr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -368,7 +388,7 @@ Log a warning to the log, default stderr\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_warn (krb5_context context, krb5_error_code code, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr, include the error from the last failure\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -381,7 +401,7 @@ Log a warning to the log, default stderr, include the error from the last failur .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_warnx (krb5_context context, const char * fmt, \&.\&.\&.)" Log a warning to the log, default stderr\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -391,4 +411,4 @@ Log a warning to the log, default stderr\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_fileformats.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_fileformats.3 index 4b48a3eed4a8..44657c8993ca 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_fileformats.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_fileformats.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_fileformats.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_fileformats.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_fileformats" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_fileformats" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_fileformatsFile formats - \- +krb5_fileformats \- File formats + .SH "File formats" .PP This section documents the diffrent file formats that are used in Heimdal and other Kerberos implementations\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3 index 30304f9ac322..0970f477a7ff 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_init_creds_intro.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_init_creds_intro.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_init_creds_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_init_creds_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_init_creds_introThe initial credential handing functions - \- +krb5_init_creds_intro \- The initial credential handing functions + .SH "Initial credential" .PP Functions to get initial credentials: \fBHeimdal Kerberos 5 credential handing functions\fP \&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_introduction.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_introduction.3 index c77905086d45..f3234efe618c 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_introduction.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_introduction.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_introduction.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_introduction.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_introduction" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_introduction" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_introductionIntroduction to the Kerberos 5 API - \- +krb5_introduction \- Introduction to the Kerberos 5 API + .SH "Kerberos 5 API Overview" .PP All functions are documented in manual pages\&. This section tries to give an overview of the major components used in Kerberos library, and point to where to look for a specific function\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab.3 index 2cca34bc8a0a..d1fa1d5b39b6 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_keytab.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_keytab.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_keytab" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_keytab" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_keytab +krb5_keytab \- Heimdal Kerberos 5 keytab handling functions .SH SYNOPSIS .br .PP @@ -83,7 +83,7 @@ krb5_keytab .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)" Add the entry in `entry' to the keytab `id'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -92,7 +92,7 @@ Add the entry in `entry' to the keytab `id'\&. \fIentry\fP the entry to add .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -101,14 +101,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close (krb5_context context, krb5_keytab id)" Finish using the keytab in `id'\&. All resources will be released, even on errors\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP keytab to close\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -117,7 +117,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare (krb5_context context, krb5_keytab_entry * entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)" Compare `entry' against `principal, vno, enctype'\&. Any of `principal, vno, enctype' might be 0 which acts as a wildcard\&. Return TRUE if they compare the same, FALSE otherwise\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -130,7 +130,7 @@ Compare `entry' against `principal, vno, enctype'\&. Any of `principal, vno, enc \fIenctype\fP encryption type to match, 0 matches all encryption types\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return TRUE or match, FALSE if not matched\&. .RE @@ -139,7 +139,7 @@ Return TRUE or match, FALSE if not matched\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents (krb5_context context, const krb5_keytab_entry * in, krb5_keytab_entry * out)" Copy the contents of `in' into `out'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -148,7 +148,7 @@ Copy the contents of `in' into `out'\&. \fIout\fP the copy of the keytab entry, free with \fBkrb5_kt_free_entry()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -157,14 +157,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default (krb5_context context, krb5_keytab * id)" Set `id' to the default keytab\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP the new default keytab\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -173,7 +173,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name (krb5_context context, char * name, size_t namesize)" Copy the name of the default modify keytab into `name'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -182,7 +182,7 @@ Copy the name of the default modify keytab into `name'\&. \fInamesize\fP length of name .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -191,7 +191,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name (krb5_context context, char * name, size_t namesize)" copy the name of the default keytab into `name'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -200,7 +200,7 @@ copy the name of the default keytab into `name'\&. \fInamesize\fP length of name .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -209,14 +209,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy (krb5_context context, krb5_keytab id)" Destroy (remove) the keytab in `id'\&. All resources will be released, even on errors, does the equvalment of \fBkrb5_kt_close()\fP on the resources\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP keytab to destroy\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -225,7 +225,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)" Release all resources associated with `cursor'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -234,7 +234,7 @@ Release all resources associated with `cursor'\&. \fIcursor\fP the cursor to free\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -243,14 +243,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry (krb5_context context, krb5_keytab_entry * entry)" Free the contents of `entry'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIentry\fP the entry to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -259,7 +259,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry (krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry * entry)" Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the keytab `id'\&. Matching is done like \fBkrb5_kt_compare()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -274,7 +274,7 @@ Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the k \fIentry\fP the returned entry, free with \fBkrb5_kt_free_entry()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -283,7 +283,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name (krb5_context context, krb5_keytab keytab, char ** str)" Retrieve the full name of the keytab `keytab' and store the name in `str'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -292,7 +292,7 @@ Retrieve the full name of the keytab `keytab' and store the name in `str'\&. \fIstr\fP the name of the keytab name, usee krb5_xfree() to free the string\&. On error, *str is set to NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -301,7 +301,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name (krb5_context context, krb5_keytab keytab, char * name, size_t namesize)" Retrieve the name of the keytab `keytab' into `name', `namesize' .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -312,7 +312,7 @@ Retrieve the name of the keytab `keytab' into `name', `namesize' \fInamesize\fP size of name buffer\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -321,7 +321,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type (krb5_context context, krb5_keytab keytab, char * prefix, size_t prefixsize)" Return the type of the `keytab' in the string \fCprefix of length \fPprefixsize'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -332,7 +332,7 @@ Return the type of the `keytab' in the string \fCprefix of length \fPprefixsize' \fIprefixsize\fP length of prefix buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -341,14 +341,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_have_content (krb5_context context, krb5_keytab id)" Return true if the keytab exists and have entries .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -357,7 +357,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry, krb5_kt_cursor * cursor)" Get the next entry from keytab, advance the cursor\&. On last entry the function will return KRB5_KT_END\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -368,7 +368,7 @@ Get the next entry from keytab, advance the cursor\&. On last entry the function \fIcursor\fP the cursor of the iteration\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -377,7 +377,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key (krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock ** key)" Read the key identified by `(principal, vno, enctype)' from the keytab in `keyprocarg' (the default if == NULL) into `*key'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -392,7 +392,7 @@ Read the key identified by `(principal, vno, enctype)' from the keytab in `keypr \fIkey\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -401,14 +401,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register (krb5_context context, const krb5_kt_ops * ops)" Register a new keytab backend\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIops\fP a backend to register\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -417,7 +417,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)" Remove an entry from the keytab, matching is done using \fBkrb5_kt_compare()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -426,7 +426,7 @@ Remove an entry from the keytab, matching is done using \fBkrb5_kt_compare()\fP\ \fIentry\fP the entry to remove .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -435,7 +435,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve (krb5_context context, const char * name, krb5_keytab * id)" Resolve the keytab name (of the form `type:residual') in `name' into a keytab in `id'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -444,7 +444,7 @@ Resolve the keytab name (of the form `type:residual') in `name' into a keytab in \fIid\fP resulting keytab, free with \fBkrb5_kt_close()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -453,7 +453,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)" Set `cursor' to point at the beginning of `id'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context\&. .br @@ -462,7 +462,7 @@ Set `cursor' to point at the beginning of `id'\&. \fIcursor\fP a newly allocated cursor, free with \fBkrb5_kt_end_seq_get()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -470,4 +470,4 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3 index 9c631ba949b3..fef41880a61a 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_keytab_intro.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_keytab_intro.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_keytab_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_keytab_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_keytab_introThe keytab handing functions - \- +krb5_keytab_intro \- The keytab handing functions + .SH "Kerberos Keytabs" .PP See the library functions here: \fBHeimdal Kerberos 5 keytab handling functions\fP @@ -29,11 +29,7 @@ keytab store the keytab in a AFS keyfile (usually /usr/afs/etc/KeyFile ), the ty memory The keytab is stored in a memory segment\&. This allows sensitive and/or temporary data not to be stored on disk\&. The type's name is MEMORY\&. Each MEMORY keytab is referenced counted by and opened by the residual name, so two handles can point to the same memory area\&. When the last user closes using \fBkrb5_kt_close()\fP the keytab, the keys in they keytab is memset() to zero and freed and can no longer be looked up by name\&. .PP .SS "Keytab example" -.PP -.nf -This is a minimalistic version of ktutil. -.fi -.PP +This is a minimalistic version of ktutil\&. .PP .PP .nf diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_pac.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_pac.3 index a59c59545cc8..c73e62e88396 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_pac.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_pac.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_pac.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_pac.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_pac" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_pac" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_pac +krb5_pac \- Heimdal Kerberos 5 PAC handling functions .SH SYNOPSIS .br .PP @@ -26,7 +26,7 @@ krb5_pac .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_pac_get_buffer (krb5_context context, krb5_pac p, uint32_t type, krb5_data * data)" Get the PAC buffer of specific type from the pac\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -37,7 +37,7 @@ Get the PAC buffer of specific type from the pac\&. \fIdata\fP return data, free with \fBkrb5_data_free()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -46,7 +46,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_pac_verify (krb5_context context, const krb5_pac pac, time_t authtime, krb5_const_principal principal, const krb5_keyblock * server, const krb5_keyblock * privsvr)" Verify the PAC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -61,7 +61,7 @@ Verify the PAC\&. \fIprivsvr\fP The KDC key, may be given\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -69,4 +69,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3 index 645ef03fc58d..c3166db00e7a 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3 @@ -1,3 +1,3 @@ -.\" $NetBSD: krb5_prepend_error_message.3,v 1.1.1.1 2023/06/19 21:33:09 christos Exp $ +.\" $NetBSD: krb5_prepend_error_message.3,v 1.2 2023/06/19 21:41:40 christos Exp $ .\" .so man3/krb5_error.3 diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal.3 index ea606d092c60..3a4c298078c9 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_principal.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_principal.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_principal" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_principal" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_principal +krb5_principal \- Heimdal Kerberos 5 principal functions .SH SYNOPSIS .br .PP @@ -113,7 +113,7 @@ krb5_principal .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_build_principal (krb5_context context, krb5_principal * principal, int rlen, krb5_const_realm realm, \&.\&.\&.)" Build a principal using vararg style building .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -126,7 +126,7 @@ Build a principal using vararg style building \fI\&.\&.\&.\fP a list of components ended with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -135,7 +135,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_principal (krb5_context context, krb5_const_principal inprinc, krb5_principal * outprinc)" Copy a principal .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -144,7 +144,7 @@ Copy a principal \fIoutprinc\fP copied principal, free with \fBkrb5_free_principal()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -153,14 +153,14 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_principal (krb5_context context, krb5_principal p)" Frees a Kerberos principal allocated by the library with \fBkrb5_parse_name()\fP, \fBkrb5_make_principal()\fP or any other related principal functions\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br \fIp\fP a principal to free\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -169,7 +169,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_principal (krb5_context context, krb5_principal * principal, krb5_const_realm realm, \&.\&.\&.)" Build a principal using vararg style building .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -180,7 +180,7 @@ Build a principal using vararg style building \fI\&.\&.\&.\fP a list of components ended with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -189,7 +189,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_name (krb5_context context, const char * name, krb5_principal * principal)" Parse a name into a krb5_principal structure .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -198,7 +198,7 @@ Parse a name into a krb5_principal structure \fIprincipal\fP returned principal, free with \fBkrb5_free_principal()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -207,7 +207,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_name_flags (krb5_context context, const char * name, int flags, krb5_principal * principal)" Parse a name into a krb5_principal structure, flags controls the behavior\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -218,7 +218,7 @@ Parse a name into a krb5_principal structure, flags controls the behavior\&. \fIprincipal\fP returned principal, free with \fBkrb5_free_principal()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -229,7 +229,7 @@ Parse nametype string and return a nametype integer .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_principal_compare (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)" Compares the two principals, including realm of the principals and returns TRUE if they are the same and FALSE if not\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -238,7 +238,7 @@ Compares the two principals, including realm of the principals and returns TRUE \fIprinc2\fP second principal to compare .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_principal_compare_any_realm()\fP .PP @@ -249,7 +249,7 @@ Compares the two principals, including realm of the principals and returns TRUE .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_principal_compare_any_realm (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)" Return TRUE iff princ1 == princ2 (without considering the realm) .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -258,12 +258,12 @@ Return TRUE iff princ1 == princ2 (without considering the realm) \fIprinc2\fP second principal to compare .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 non zero if equal, 0 if not .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_principal_compare()\fP .PP @@ -274,14 +274,14 @@ non zero if equal, 0 if not .SS "KRB5_LIB_FUNCTION unsigned int KRB5_LIB_CALL krb5_principal_get_num_comp (krb5_context context, krb5_const_principal principal)" Get number of component is principal\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br \fIprincipal\fP principal to query .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 number of components in string .RE @@ -290,14 +290,14 @@ number of components in string .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_principal_get_realm (krb5_context context, krb5_const_principal principal)" Get the realm of the principal .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br \fIprincipal\fP principal to get the realm for .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 realm of the principal, don't free or use after krb5_principal is freed .RE @@ -306,14 +306,14 @@ realm of the principal, don't free or use after krb5_principal is freed .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_principal_get_type (krb5_context context, krb5_const_principal principal)" Get the type of the principal .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br \fIprincipal\fP principal to get the type for .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 the type of principal .RE @@ -338,7 +338,7 @@ return TRUE iff princ matches pattern .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_principal_set_realm (krb5_context context, krb5_principal principal, krb5_const_realm realm)" Set a new realm for a principal, and as a side-effect free the previous realm\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -347,7 +347,7 @@ Set a new realm for a principal, and as a side-effect free the previous realm\&. \fIrealm\fP the new realm to set .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -356,7 +356,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_principal_set_type (krb5_context context, krb5_principal principal, int type)" Set the type of the principal .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -365,7 +365,7 @@ Set the type of the principal \fItype\fP the new type .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -374,7 +374,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_realm_compare (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)" return TRUE iff realm(princ1) == realm(princ2) .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -383,7 +383,7 @@ return TRUE iff realm(princ1) == realm(princ2) \fIprinc2\fP second principal to compare .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_principal_compare_any_realm()\fP .PP @@ -398,7 +398,7 @@ Create a principal for the given service running on the given hostname\&. If KRB .PP Canonicalization is immediate (not delayed) only when there is only one canonicalization rule and that rule indicates that we should do a host lookup by name (i\&.e\&., DNS)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -411,7 +411,7 @@ Canonicalization is immediate (not delayed) only when there is only one canonica \fIret_princ\fP return principal, free with \fBkrb5_free_principal()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -420,7 +420,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name (krb5_context context, krb5_const_principal principal, char ** name)" Unparse the Kerberos name into a string .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -429,7 +429,7 @@ Unparse the Kerberos name into a string \fIname\fP resulting string, free with krb5_xfree() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -438,7 +438,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed (krb5_context context, krb5_const_principal principal, char * name, size_t len)" Unparse the principal name to a fixed buffer .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -449,7 +449,7 @@ Unparse the principal name to a fixed buffer \fIlen\fP length of buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -458,7 +458,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed_flags (krb5_context context, krb5_const_principal principal, int flags, char * name, size_t len)" Unparse the principal name with unparse flags to a fixed buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -471,7 +471,7 @@ Unparse the principal name with unparse flags to a fixed buffer\&. \fIlen\fP length of buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -480,7 +480,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed_short (krb5_context context, krb5_const_principal principal, char * name, size_t len)" Unparse the principal name to a fixed buffer\&. The realm is skipped if its a default realm\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -491,7 +491,7 @@ Unparse the principal name to a fixed buffer\&. The realm is skipped if its a de \fIlen\fP length of buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -500,7 +500,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_flags (krb5_context context, krb5_const_principal principal, int flags, char ** name)" Unparse the Kerberos name into a string .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -511,7 +511,7 @@ Unparse the Kerberos name into a string \fIname\fP resulting string, free with krb5_xfree() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -520,7 +520,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_short (krb5_context context, krb5_const_principal principal, char ** name)" Unparse the principal name to a allocated buffer\&. The realm is skipped if its a default realm\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos context\&. .br @@ -529,7 +529,7 @@ Unparse the principal name to a allocated buffer\&. The realm is skipped if its \fIname\fP returned buffer, free with krb5_xfree() .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .RE @@ -537,4 +537,4 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal_intro.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal_intro.3 index 61ec1c47a5dd..dba668e45707 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal_intro.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_principal_intro.3 @@ -1,11 +1,11 @@ -.\" $NetBSD: krb5_principal_intro.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_principal_intro.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_principal_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_principal_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_principal_introThe principal handing functions\&. - \- A Kerberos principal is a email address looking string that contains two parts separated by . The second part is the kerberos realm the principal belongs to and the first is a list of 0 or more components\&. For example +krb5_principal_intro \- The principal handing functions\&. +A Kerberos principal is a email address looking string that contains two parts separated by . The second part is the kerberos realm the principal belongs to and the first is a list of 0 or more components\&. For example .PP .nf lha@SU.SE diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_storage.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_storage.3 index 6f7c7a199d71..ca83d26b0673 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_storage.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_storage.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_storage.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_storage.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_storage" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_storage" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_storage +krb5_storage \- Heimdal Kerberos 5 storage functions .SH SYNOPSIS .br .PP @@ -197,14 +197,14 @@ krb5_storage .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_address (krb5_storage * sp, krb5_address * adr)" Read a address block from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIadr\fP the address block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -213,14 +213,14 @@ Read a address block from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_addrs (krb5_storage * sp, krb5_addresses * adr)" Read a addresses block from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIadr\fP the addresses block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -229,14 +229,14 @@ Read a addresses block from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_authdata (krb5_storage * sp, krb5_authdata * auth)" Read a auth data from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIauth\fP the auth data block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -245,14 +245,14 @@ Read a auth data from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_creds (krb5_storage * sp, krb5_creds * creds)" Read a credentials block from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIcreds\fP the credentials block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -261,14 +261,14 @@ Read a credentials block from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_creds_tag (krb5_storage * sp, krb5_creds * creds)" Read a tagged credentials block from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIcreds\fP the credentials block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -277,14 +277,14 @@ Read a tagged credentials block from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_data (krb5_storage * sp, krb5_data * data)" Parse a data from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to read from .br \fIdata\fP the parsed data .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -293,14 +293,14 @@ Parse a data from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int16 (krb5_storage * sp, int16_t * value)" Read a int16 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -309,14 +309,14 @@ Read a int16 from storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int32 (krb5_storage * sp, int32_t * value)" Read a int32 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -325,14 +325,14 @@ Read a int32 from storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int64 (krb5_storage * sp, int64_t * value)" Read a int64 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -341,14 +341,14 @@ Read a int64 from storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int8 (krb5_storage * sp, int8_t * value)" Read a int8 from storage .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -357,14 +357,14 @@ Read a int8 from storage .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_keyblock (krb5_storage * sp, krb5_keyblock * p)" Read a keyblock from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIp\fP the keyblock read from storage, free using \fBkrb5_free_keyblock()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -373,14 +373,14 @@ Read a keyblock from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_principal (krb5_storage * sp, krb5_principal * princ)" Parse principal from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to read from .br \fIprinc\fP the parsed principal .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -389,14 +389,14 @@ Parse principal from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_string (krb5_storage * sp, char ** string)" Parse a string from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to read from .br \fIstring\fP the parsed string .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -405,14 +405,14 @@ Parse a string from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_stringz (krb5_storage * sp, char ** string)" Parse zero terminated string from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to read from .br \fIstring\fP the parsed string .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -421,14 +421,14 @@ Parse zero terminated string from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_times (krb5_storage * sp, krb5_times * times)" Read a times block from the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fItimes\fP the times block read from storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -437,14 +437,14 @@ Read a times block from the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint16 (krb5_storage * sp, uint16_t * value)" Read a int16 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -453,14 +453,14 @@ Read a int16 from storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint32 (krb5_storage * sp, uint32_t * value)" Read a uint32 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -469,14 +469,14 @@ Read a uint32 from storage, byte order is controlled by the settings on the stor .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint64 (krb5_storage * sp, uint64_t * value)" Read a uint64 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -485,14 +485,14 @@ Read a uint64 from storage, byte order is controlled by the settings on the stor .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint8 (krb5_storage * sp, uint8_t * value)" Read a uint8 from storage .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value read from the buffer .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -501,7 +501,7 @@ Read a uint8 from storage .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_clear_flags (krb5_storage * sp, krb5_flags flags)" Clear the flags on a storage buffer .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to clear the flags on .br @@ -512,12 +512,12 @@ Clear the flags on a storage buffer .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_emem (void)" Create a elastic (allocating) memory storage backend\&. Memory is allocated on demand\&. Free returned krb5_storage with \fBkrb5_storage_free()\fP\&. .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_storage_from_mem()\fP .PP @@ -534,12 +534,12 @@ A krb5_storage on success, or NULL on out of memory error\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_storage_free (krb5_storage * sp)" Free a krb5 storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to free\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An Kerberos 5 error code\&. .RE @@ -548,12 +548,12 @@ An Kerberos 5 error code\&. .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_data (krb5_data * data)" Create a fixed size memory storage block .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 krb5_storage_mem() .PP @@ -568,12 +568,12 @@ krb5_storage_mem() .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_fd (int fd_in)" .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_storage_emem()\fP .PP @@ -590,12 +590,12 @@ A krb5_storage on success, or NULL on out of memory error\&. .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_mem (void * buf, size_t len)" Create a fixed size memory storage block .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 krb5_storage_mem() .PP @@ -612,12 +612,12 @@ krb5_storage_mem() .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_readonly_mem (const void * buf, size_t len)" Create a fixed size memory storage block that is read only .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 krb5_storage_mem() .PP @@ -632,12 +632,12 @@ krb5_storage_mem() .SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_socket (krb5_socket_t sock_in)" .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A krb5_storage on success, or NULL on out of memory error\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_storage_emem()\fP .PP @@ -654,12 +654,12 @@ A krb5_storage on success, or NULL on out of memory error\&. .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_fsync (krb5_storage * sp)" Sync the storage buffer to its backing store\&. If there is no backing store this function will return success\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to sync .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 A Kerberos 5 error code .RE @@ -670,12 +670,12 @@ Return the current byteorder for the buffer\&. See \fBkrb5_storage_set_byteorder .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_get_eof_code (krb5_storage * sp)" Get the return code that will be used when end of storage is reached\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 storage error code .RE @@ -684,14 +684,14 @@ storage error code .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_storage_is_flags (krb5_storage * sp, krb5_flags flags)" Return true or false depending on if the storage flags is set or not\&. NB testing for the flag 0 always return true\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to check flags on .br \fIflags\fP The flags to test for .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 true if all the flags are set, false if not\&. .RE @@ -700,7 +700,7 @@ true if all the flags are set, false if not\&. .SS "KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL krb5_storage_read (krb5_storage * sp, void * buf, size_t len)" Read to the storage buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to read from .br @@ -709,7 +709,7 @@ Read to the storage buffer\&. \fIlen\fP the length to read .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 The length of data read (can be shorter then len), or negative on error\&. .RE @@ -718,7 +718,7 @@ The length of data read (can be shorter then len), or negative on error\&. .SS "KRB5_LIB_FUNCTION off_t KRB5_LIB_CALL krb5_storage_seek (krb5_storage * sp, off_t offset, int whence)" Seek to a new offset\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to seek in\&. .br @@ -727,7 +727,7 @@ Seek to a new offset\&. \fIwhence\fP relateive searching, SEEK_CUR from the current position, SEEK_END from the end, SEEK_SET absolute from the start\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 The new current offset .RE @@ -736,7 +736,7 @@ The new current offset .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_byteorder (krb5_storage * sp, krb5_flags byteorder)" Set the new byte order of the storage buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to set the byte order for\&. .br @@ -747,7 +747,7 @@ The byte order are: KRB5_STORAGE_BYTEORDER_BE, KRB5_STORAGE_BYTEORDER_LE and KRB .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_eof_code (krb5_storage * sp, int code)" Set the return code that will be used when end of storage is reached\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage .br @@ -758,7 +758,7 @@ Set the return code that will be used when end of storage is reached\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_flags (krb5_storage * sp, krb5_flags flags)" Add the flags on a storage buffer by or-ing in the flags to the buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to set the flags on .br @@ -769,7 +769,7 @@ Add the flags on a storage buffer by or-ing in the flags to the buffer\&. .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_max_alloc (krb5_storage * sp, size_t size)" Set the max alloc value .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer set the max allow for .br @@ -780,14 +780,14 @@ Set the max alloc value .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_storage_to_data (krb5_storage * sp, krb5_data * data)" Copy the contnent of storage .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to copy to a data .br \fIdata\fP the copied data, free with \fBkrb5_data_free()\fP .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -796,14 +796,14 @@ Copy the contnent of storage .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_truncate (krb5_storage * sp, off_t offset)" Truncate the storage buffer in sp to offset\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to truncate\&. .br \fIoffset\fP the offset to truncate too\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 An Kerberos 5 error code\&. .RE @@ -812,7 +812,7 @@ An Kerberos 5 error code\&. .SS "KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL krb5_storage_write (krb5_storage * sp, const void * buf, size_t len)" Write to the storage buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br @@ -821,7 +821,7 @@ Write to the storage buffer\&. \fIlen\fP the length to write .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 The length of data written (can be shorter then len), or negative on error\&. .RE @@ -830,14 +830,14 @@ The length of data written (can be shorter then len), or negative on error\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_address (krb5_storage * sp, krb5_address p)" Write a address block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIp\fP the address block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -846,14 +846,14 @@ Write a address block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_addrs (krb5_storage * sp, krb5_addresses p)" Write a addresses block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIp\fP the addresses block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -862,14 +862,14 @@ Write a addresses block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_authdata (krb5_storage * sp, krb5_authdata auth)" Write a auth data block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIauth\fP the auth data block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -878,14 +878,14 @@ Write a auth data block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_creds (krb5_storage * sp, krb5_creds * creds)" Write a credentials block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIcreds\fP the creds block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -894,14 +894,14 @@ Write a credentials block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_creds_tag (krb5_storage * sp, krb5_creds * creds)" Write a tagged credentials block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIcreds\fP the creds block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -910,14 +910,14 @@ Write a tagged credentials block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_data (krb5_storage * sp, krb5_data data)" Store a data to the storage\&. The data is stored with an int32 as lenght plus the data (not padded)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIdata\fP the buffer to store\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -926,14 +926,14 @@ Store a data to the storage\&. The data is stored with an int32 as lenght plus t .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int16 (krb5_storage * sp, int16_t value)" Store a int16 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -942,14 +942,14 @@ Store a int16 to storage, byte order is controlled by the settings on the storag .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int32 (krb5_storage * sp, int32_t value)" Store a int32 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -958,14 +958,14 @@ Store a int32 to storage, byte order is controlled by the settings on the storag .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int64 (krb5_storage * sp, int64_t value)" Store a int64 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -974,14 +974,14 @@ Store a int64 to storage, byte order is controlled by the settings on the storag .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int8 (krb5_storage * sp, int8_t value)" Store a int8 to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -990,14 +990,14 @@ Store a int8 to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_keyblock (krb5_storage * sp, krb5_keyblock p)" Store a keyblock to the storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIp\fP the keyblock to write .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -1006,14 +1006,14 @@ Store a keyblock to the storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_principal (krb5_storage * sp, krb5_const_principal p)" Write a principal block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIp\fP the principal block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -1022,14 +1022,14 @@ Write a principal block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_string (krb5_storage * sp, const char * s)" Store a string to the buffer\&. The data is formated as an len:uint32 plus the string itself (not padded)\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIs\fP the string to store\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -1038,14 +1038,14 @@ Store a string to the buffer\&. The data is formated as an len:uint32 plus the s .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_stringz (krb5_storage * sp, const char * s)" Store a zero terminated string to the buffer\&. The data is stored one character at a time until a NUL is stored\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fIs\fP the string to store\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -1054,14 +1054,14 @@ Store a zero terminated string to the buffer\&. The data is stored one character .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_times (krb5_storage * sp, krb5_times times)" Write a times block to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage buffer to write to .br \fItimes\fP the times block to write\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, a Kerberos 5 error code on failure\&. .RE @@ -1070,14 +1070,14 @@ Write a times block to storage\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint16 (krb5_storage * sp, uint16_t value)" Store a uint16 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -1086,14 +1086,14 @@ Store a uint16 to storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint32 (krb5_storage * sp, uint32_t value)" Store a uint32 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -1102,14 +1102,14 @@ Store a uint32 to storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint64 (krb5_storage * sp, uint64_t value)" Store a uint64 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -1118,14 +1118,14 @@ Store a uint64 to storage, byte order is controlled by the settings on the stora .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint8 (krb5_storage * sp, uint8_t value)" Store a uint8 to storage\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIsp\fP the storage to write too .br \fIvalue\fP the value to store .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 for success, or a Kerberos 5 error code on failure\&. .RE @@ -1133,4 +1133,4 @@ Store a uint8 to storage\&. .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_support.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_support.3 index 9b2c6a1514c8..ed749fd7bc38 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_support.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_support.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_support.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_support.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_support" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_support" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_support +krb5_support \- Heimdal Kerberos 5 support functions .SH SYNOPSIS .br .PP @@ -117,7 +117,7 @@ krb5_support .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_file (krb5_context context, const char * file, const char * format, \&.\&.\&.)" krb5_acl_match_file matches ACL format against each line in a file using \fBkrb5_acl_match_string()\fP\&. Lines starting with # are treated like comments and ignored\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -128,12 +128,12 @@ krb5_acl_match_file matches ACL format against each line in a file using \fBkrb5 \fI\&.\&.\&.\fP parameter to format string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_acl_match_string\fP .RE @@ -153,7 +153,7 @@ f Matches the string with fnmatch(3)\&. Theflags argument (the last argument) pa r Returns a copy of the string in the char ** passed in; the copy must be freed with free(3)\&. There is no need to free(3) the string on error: the function will clean up and set the pointer to NULL\&. .PP .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context .br @@ -164,7 +164,7 @@ r Returns a copy of the string in the char ** passed in; the copy must be freed \fI\&.\&.\&.\fP parameter to format string .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0\&. .RE @@ -187,7 +187,7 @@ free(s); .fi .PP .PP -\fBSee also:\fP +\fBSee also\fP .RS 4 \fBkrb5_acl_match_file\fP .RE @@ -200,7 +200,7 @@ Returns 0 on success, KRB5_NO_LOCALNAME if no mapping was found, or some Kerbero .PP Inputs: .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A krb5_context .br @@ -215,14 +215,14 @@ Inputs: .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_file_free (krb5_context context, krb5_config_section * s)" Free configuration file section, the result of krb5_config_parse_file() and \fBkrb5_config_parse_file_multi()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context .br \fIs\fP the configuration section to free .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on successes, otherwise an error code, see \fBkrb5_get_error_message()\fP .RE @@ -231,7 +231,7 @@ returns 0 on successes, otherwise an error code, see \fBkrb5_get_error_message() .SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_config_free_strings (char ** strings)" Free the resulting strings from krb5_config-get_strings() and \fBkrb5_config_vget_strings()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIstrings\fP strings to free .RE @@ -242,7 +242,7 @@ Like \fBkrb5_config_get_bool()\fP but with a va_list list of configuration selec .PP Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -251,7 +251,7 @@ Configuration value to a boolean value, where yes/true and any non-zero number m \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -260,7 +260,7 @@ TRUE or FALSE .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool_default (krb5_context context, const krb5_config_section * c, krb5_boolean def_value, \&.\&.\&.)" \fBkrb5_config_get_bool_default()\fP will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -271,7 +271,7 @@ TRUE or FALSE \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -280,7 +280,7 @@ TRUE or FALSE .SS "KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_get_list (krb5_context context, const krb5_config_section * c, \&.\&.\&.)" Get a list of configuration binding list for more processing .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -289,7 +289,7 @@ Get a list of configuration binding list for more processing \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 NULL if configuration list is not found, a list otherwise .RE @@ -298,7 +298,7 @@ NULL if configuration list is not found, a list otherwise .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string (krb5_context context, const krb5_config_section * c, \&.\&.\&.)" Returns a 'const char *' to a string in the configuration database\&. The string may not be valid after a reload of the configuration database so a caller should make a local copy if it needs to keep the string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -307,7 +307,7 @@ Returns a 'const char *' to a string in the configuration database\&. The string \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 NULL if configuration string not found, a string otherwise .RE @@ -316,7 +316,7 @@ NULL if configuration string not found, a string otherwise .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string_default (krb5_context context, const krb5_config_section * c, const char * def_value, \&.\&.\&.)" Like \fBkrb5_config_get_string()\fP, but instead of returning NULL, instead return a default value\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -327,7 +327,7 @@ Like \fBkrb5_config_get_string()\fP, but instead of returning NULL, instead retu \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a configuration string .RE @@ -336,7 +336,7 @@ a configuration string .SS "KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_get_strings (krb5_context context, const krb5_config_section * c, \&.\&.\&.)" Get a list of configuration strings, free the result with \fBkrb5_config_free_strings()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -345,7 +345,7 @@ Get a list of configuration strings, free the result with \fBkrb5_config_free_st \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -354,7 +354,7 @@ TRUE or FALSE .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time (krb5_context context, const krb5_config_section * c, \&.\&.\&.)" Get the time from the configuration file using a relative time, for example: 1h30s .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -363,7 +363,7 @@ Get the time from the configuration file using a relative time, for example: 1h3 \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 parsed the time or -1 on error .RE @@ -372,7 +372,7 @@ parsed the time or -1 on error .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time_default (krb5_context context, const krb5_config_section * c, int def_value, \&.\&.\&.)" Get the time from the configuration file using a relative time, for example: 1h30s .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -383,7 +383,7 @@ Get the time from the configuration file using a relative time, for example: 1h3 \fI\&.\&.\&.\fP a list of names, terminated with NULL\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 parsed the time (or def_value on parse error) .RE @@ -392,7 +392,7 @@ parsed the time (or def_value on parse error) .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_file_multi (krb5_context context, const char * fname, krb5_config_section ** res)" Parse a configuration file and add the result into res\&. This interface can be used to parse several configuration files into one resulting krb5_config_section by calling it repeatably\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Kerberos 5 context\&. .br @@ -401,7 +401,7 @@ Parse a configuration file and add the result into res\&. This interface can be \fIres\fP the returned result, must be free with \fBkrb5_free_config_files()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -410,7 +410,7 @@ If the fname starts with '~/' parse configuration file in the current users home .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool (krb5_context context, const krb5_config_section * c, va_list args)" \fBkrb5_config_get_bool()\fP will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -419,7 +419,7 @@ If the fname starts with '~/' parse configuration file in the current users home \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -430,7 +430,7 @@ Like \fBkrb5_config_get_bool_default()\fP but with a va_list list of configurati .PP Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -441,7 +441,7 @@ Configuration value to a boolean value, where yes/true and any non-zero number m \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -450,7 +450,7 @@ TRUE or FALSE .SS "KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_vget_list (krb5_context context, const krb5_config_section * c, va_list args)" Get a list of configuration binding list for more processing .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -459,7 +459,7 @@ Get a list of configuration binding list for more processing \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 NULL if configuration list is not found, a list otherwise .RE @@ -468,7 +468,7 @@ NULL if configuration list is not found, a list otherwise .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string (krb5_context context, const krb5_config_section * c, va_list args)" Like \fBkrb5_config_get_string()\fP, but uses a va_list instead of \&.\&.\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -477,7 +477,7 @@ Like \fBkrb5_config_get_string()\fP, but uses a va_list instead of \&.\&.\&. \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 NULL if configuration string not found, a string otherwise .RE @@ -486,7 +486,7 @@ NULL if configuration string not found, a string otherwise .SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string_default (krb5_context context, const krb5_config_section * c, const char * def_value, va_list args)" Like \fBkrb5_config_vget_string()\fP, but instead of returning NULL, instead return a default value\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -497,7 +497,7 @@ Like \fBkrb5_config_vget_string()\fP, but instead of returning NULL, instead ret \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a configuration string .RE @@ -506,7 +506,7 @@ a configuration string .SS "KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_vget_strings (krb5_context context, const krb5_config_section * c, va_list args)" Get a list of configuration strings, free the result with \fBkrb5_config_free_strings()\fP\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -515,7 +515,7 @@ Get a list of configuration strings, free the result with \fBkrb5_config_free_st \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 TRUE or FALSE .RE @@ -524,7 +524,7 @@ TRUE or FALSE .SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time (krb5_context context, const krb5_config_section * c, va_list args)" Get the time from the configuration file using a relative time, for example: 1h30s .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -533,7 +533,7 @@ Get the time from the configuration file using a relative time, for example: 1h3 \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 parsed the time or -1 on error .RE @@ -544,7 +544,7 @@ Get the time from the configuration file using a relative time\&. .PP Like \fBkrb5_config_get_time_default()\fP but with a va_list list of configuration selection\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br @@ -555,7 +555,7 @@ Like \fBkrb5_config_get_time_default()\fP but with a va_list list of configurati \fIargs\fP a va_list of arguments .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 parsed the time (or def_value on parse error) .RE @@ -564,7 +564,7 @@ parsed the time (or def_value on parse error) .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname (krb5_context context, const char * orig_hostname, char ** new_hostname)" \fBkrb5_expand_hostname()\fP tries to make orig_hostname into a more canonical one in the newly allocated space returned in new_hostname\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -573,7 +573,7 @@ parsed the time (or def_value on parse error) \fInew_hostname\fP output hostname, caller must free hostname with krb5_xfree()\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -582,7 +582,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname_realms (krb5_context context, const char * orig_hostname, char ** new_hostname, char *** realms)" \fBkrb5_expand_hostname_realms()\fP expands orig_hostname to a name we believe to be a hostname in newly allocated space in new_hostname and return the realms new_hostname is believed to belong to in realms\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -593,7 +593,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. \fIrealms\fP output possible realms, is an array that is terminated with NULL\&. Caller must free with \fBkrb5_free_host_realm()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE @@ -602,14 +602,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_host_realm (krb5_context context, krb5_realm * realmlist)" Free all memory allocated by `realmlist' .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP A Kerberos 5 context\&. .br \fIrealmlist\fP realmlist to free, NULL is ok .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 a Kerberos error code, always 0\&. .RE @@ -628,7 +628,7 @@ Optionally, a set of files may be put in ~/\&.k5login\&.d (a directory), in whic .PP If no configuration file exists, match user against local domains, ie luser@LOCAL-REALMS-IN-CONFIGURATION-FILES\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -637,7 +637,7 @@ If no configuration file exists, match user against local domains, ie luser@LOCA \fIluser\fP local user id .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns TRUE if access should be granted, FALSE otherwise\&. .RE @@ -646,7 +646,7 @@ returns TRUE if access should be granted, FALSE otherwise\&. .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_plugin_register (krb5_context context, enum krb5_plugin_type type, const char * name, void * symbol)" Register a plugin symbol name of specific type\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP a Keberos context .br @@ -657,7 +657,7 @@ Register a plugin symbol name of specific type\&. \fIsymbol\fP a pointer to the named symbol .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of error a non zero error com_err error is returned and the Kerberos error string is set\&. .RE @@ -665,4 +665,4 @@ In case of error a non zero error com_err error is returned and the Kerberos err .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ticket.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ticket.3 index f29d159dc2d4..5fea5ad77ca3 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ticket.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_ticket.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_ticket.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_ticket.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_ticket" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_ticket" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_ticket +krb5_ticket \- Heimdal Kerberos 5 ticket functions .SH SYNOPSIS .br .PP @@ -23,14 +23,14 @@ krb5_ticket .SS "KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_ticket_get_flags (krb5_context context, const krb5_ticket * ticket)" Get the flags from the Kerberos ticket .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos context .br \fIticket\fP Kerberos ticket .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 ticket flags .RE @@ -38,4 +38,4 @@ ticket flags .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_v4compat.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_v4compat.3 index 05a3f8c1eb76..73386118ec70 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_v4compat.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5_v4compat.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: krb5_v4compat.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5_v4compat.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5_v4compat" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5_v4compat" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME -krb5_v4compat +krb5_v4compat \- Heimdal Kerberos 4 compatiblity functions .SH SYNOPSIS .br .PP @@ -26,7 +26,7 @@ krb5_v4compat .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb524_convert_creds_kdc (krb5_context context, krb5_creds * in_cred, struct credentials * v4creds)" Convert the v5 credentials in in_cred to v4-dito in v4creds\&. This is done by sending them to the 524 function in the KDC\&. If `in_cred' doesn't contain a DES session key, then a new one is gotten from the KDC and stored in the cred cache `ccache'\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -35,7 +35,7 @@ Convert the v5 credentials in in_cred to v4-dito in v4creds\&. This is done by s \fIv4creds\fP the converted credential .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -44,7 +44,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb524_convert_creds_kdc_ccache (krb5_context context, krb5_ccache ccache, krb5_creds * in_cred, struct credentials * v4creds)" Convert the v5 credentials in in_cred to v4-dito in v4creds, check the credential cache ccache before checking with the KDC\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIcontext\fP Kerberos 5 context\&. .br @@ -55,7 +55,7 @@ Convert the v5 credentials in in_cred to v4-dito in v4creds, check the credentia \fIv4creds\fP the converted credential .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&. .RE @@ -63,4 +63,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3 index 168207554ae2..62c88742bd22 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: krb5plugin_an2ln_ftable_desc.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5plugin_an2ln_ftable_desc.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5plugin_an2ln_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5plugin_an2ln_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -19,7 +19,7 @@ The krb5_aname_to_lname(3) function is pluggable\&. The plugin is named KRB5_PLU .PP The plugin for krb5_aname_to_lname(3) consists of a data symbol referencing a structure of type krb5plugin_an2ln_ftable, with four fields: .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIinit\fP Plugin initialization function (see krb5-plugin(7)) .br @@ -51,4 +51,4 @@ set_res_ctx, the first argument to set_res_f (the second is the result lname str .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3 index 634d45ea83f3..b8b3b8949e12 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: krb5plugin_db_ftable_desc.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5plugin_db_ftable_desc.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5plugin_db_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5plugin_db_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -19,7 +19,7 @@ The krb5_aname_to_lname(3) function's DB rule is pluggable\&. The plugin is name .PP The plugin consists of a data symbol referencing a structure of type \fBkrb5plugin_db_ftable_desc\fP, with three fields: .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIinit\fP Plugin initialization function (see krb5-plugin(7)) .br @@ -32,4 +32,4 @@ The init entry point is expected to call heim_db_register()\&. The fini entry po .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3 index e6c1f098cad4..762ed95ecde7 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: krb5plugin_kuserok_ftable_desc.3,v 1.2 2019/12/15 22:50:45 christos Exp $ +.\" $NetBSD: krb5plugin_kuserok_ftable_desc.3,v 1.3 2023/06/19 21:41:40 christos Exp $ .\" -.TH "krb5plugin_kuserok_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*- +.TH "krb5plugin_kuserok_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -19,7 +19,7 @@ The krb5_kuserok(3) function is pluggable\&. The plugin is named KRB5_PLUGIN_KUS .PP The plugin for krb5_kuserok(3) consists of a data symbol referencing a structure of type krb5plugin_kuserok_ftable, with four fields: .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIinit\fP Plugin initialization function (see krb5-plugin(7)) .br @@ -55,4 +55,4 @@ result, a krb5_boolean pointer where the plugin will output its result .SH "Author" .PP -Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&. +Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_buf.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_buf.3 index 22f3b2a77396..da092026d5c1 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_buf.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_buf.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: ntlm_buf.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: ntlm_buf.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "ntlm_buf" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalntlmlibrary" \" -*- nroff -*- +.TH "ntlm_buf" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal ntlm library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -24,7 +24,7 @@ ntlm_buf .PP Buffer for storing data in the NTLM library\&. When filled in by the library it should be freed with \fBheim_ntlm_free_buf()\fP\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Field Documentation" @@ -32,16 +32,16 @@ Buffer for storing data in the NTLM library\&. When filled in by the library it .SS "void* ntlm_buf::data" pointer to the data itself .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "size_t ntlm_buf::length" length buffer data .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalntlmlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal ntlm library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_core.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_core.3 index 73ef1e1dad15..c0a4b97e9007 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_core.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_core.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: ntlm_core.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: ntlm_core.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "ntlm_core" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalntlmlibrary" \" -*- nroff -*- +.TH "ntlm_core" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal ntlm library" \" -*- nroff -*- .ad l .nh .SH NAME -ntlm_core +ntlm_core \- Heimdal NTLM library .SH SYNOPSIS .br .PP @@ -77,7 +77,7 @@ The NTLM core functions implement the string2key generation function, message en .SS "int heim_ntlm_build_ntlm1_master (void * key, size_t len, struct \fBntlm_buf\fP * session, struct \fBntlm_buf\fP * master)" Generates an NTLMv1 session random with assosited session master key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm v1 key .br @@ -88,7 +88,7 @@ Generates an NTLMv1 session random with assosited session master key\&. \fImaster\fP calculated session master key, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE @@ -97,7 +97,7 @@ In case of success 0 is return, an errors, a errno in what went wrong\&. .SS "int heim_ntlm_build_ntlm2_master (void * key, size_t len, struct \fBntlm_buf\fP * blob, struct \fBntlm_buf\fP * session, struct \fBntlm_buf\fP * master)" Generates an NTLMv2 session random with associated session master key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the NTLMv2 key .br @@ -110,7 +110,7 @@ Generates an NTLMv2 session random with associated session master key\&. \fImaster\fP calculated session master key, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE @@ -119,7 +119,7 @@ In case of success 0 is return, an errors, a errno in what went wrong\&. .SS "int heim_ntlm_calculate_lm2 (const void * key, size_t len, const char * username, const char * target, const unsigned char serverchallenge[8], unsigned char ntlmv2[16], struct \fBntlm_buf\fP * answer)" Calculate LMv2 response .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm key .br @@ -136,7 +136,7 @@ Calculate LMv2 response \fIanswer\fP ntlm response answer, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE @@ -145,7 +145,7 @@ In case of success 0 is return, an errors, a errno in what went wrong\&. .SS "int heim_ntlm_calculate_ntlm1 (void * key, size_t len, unsigned char challenge[8], struct \fBntlm_buf\fP * answer)" Calculate NTLMv1 response hash .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm v1 key .br @@ -156,20 +156,20 @@ Calculate NTLMv1 response hash \fIanswer\fP calculated answer, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_calculate_ntlm2 (const void * key, size_t len, const char * username, const char * target, const unsigned char serverchallenge[8], const struct \fBntlm_buf\fP * infotarget, unsigned char ntlmv2[16], struct \fBntlm_buf\fP * answer)" Calculate NTLMv2 response .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm key .br @@ -188,20 +188,20 @@ Calculate NTLMv2 response \fIanswer\fP ntlm response answer, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_decode_targetinfo (const struct \fBntlm_buf\fP * data, int ucs2, struct ntlm_targetinfo * ti)" Decodes an NTLM targetinfo message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP input data buffer with the encode NTLM targetinfo message .br @@ -210,20 +210,20 @@ Decodes an NTLM targetinfo message \fIti\fP the decoded target info, should be freed with \fBheim_ntlm_free_targetinfo()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_encode_targetinfo (const struct ntlm_targetinfo * ti, int ucs2, struct \fBntlm_buf\fP * data)" Encodes a ntlm_targetinfo message\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIti\fP the ntlm_targetinfo message to encode\&. .br @@ -232,60 +232,60 @@ Encodes a ntlm_targetinfo message\&. \fIdata\fP is the return buffer with the encoded message, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_encode_type1 (const struct \fBntlm_type1\fP * type1, struct \fBntlm_buf\fP * data)" Encodes an \fBntlm_type1\fP message\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fItype1\fP the \fBntlm_type1\fP message to encode\&. .br \fIdata\fP is the return buffer with the encoded message, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_encode_type2 (const struct \fBntlm_type2\fP * type2, struct \fBntlm_buf\fP * data)" Encodes an \fBntlm_type2\fP message\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fItype2\fP the \fBntlm_type2\fP message to encode\&. .br \fIdata\fP is the return buffer with the encoded message, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_encode_type3 (const struct \fBntlm_type3\fP * type3, struct \fBntlm_buf\fP * data, size_t * mic_offset)" Encodes an \fBntlm_type3\fP message\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fItype3\fP the \fBntlm_type3\fP message to encode\&. .br @@ -294,85 +294,85 @@ Encodes an \fBntlm_type3\fP message\&. \fImic_offset\fP offset of message integrity code freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "void heim_ntlm_free_buf (struct \fBntlm_buf\fP * p)" heim_ntlm_free_buf frees the ntlm buffer .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIp\fP buffer to be freed .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "void heim_ntlm_free_targetinfo (struct ntlm_targetinfo * ti)" Frees the ntlm_targetinfo message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIti\fP targetinfo to be freed .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "void heim_ntlm_free_type1 (struct \fBntlm_type1\fP * data)" Frees the \fBntlm_type1\fP message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP message to be freed .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "void heim_ntlm_free_type2 (struct \fBntlm_type2\fP * data)" Frees the \fBntlm_type2\fP message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP message to be freed .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "void heim_ntlm_free_type3 (struct \fBntlm_type3\fP * data)" Frees the \fBntlm_type3\fP message .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIdata\fP message to be freed .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_keyex_unwrap (struct \fBntlm_buf\fP * baseKey, struct \fBntlm_buf\fP * encryptedSession, struct \fBntlm_buf\fP * session)" Given a key and encrypted session, unwrap the session key .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIbaseKey\fP the sessionBaseKey .br @@ -381,7 +381,7 @@ Given a key and encrypted session, unwrap the session key \fIsession\fP generated session nonce, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE @@ -390,27 +390,27 @@ In case of success 0 is return, an errors, a errno in what went wrong\&. .SS "int heim_ntlm_nt_key (const char * password, struct \fBntlm_buf\fP * key)" Calculate the NTLM key, the password is assumed to be in UTF8\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIpassword\fP password to calcute the key for\&. .br \fIkey\fP calcuted key, should be freed with \fBheim_ntlm_free_buf()\fP\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE .PP .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SS "int heim_ntlm_ntlmv2_key (const void * key, size_t len, const char * username, const char * target, int upper_case_target, unsigned char ntlmv2[16])" Generates an NTLMv2 session key\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm key .br @@ -425,7 +425,7 @@ Generates an NTLMv2 session key\&. \fIntlmv2\fP the ntlmv2 session key .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 0 on success, or an error code on failure\&. .RE @@ -434,7 +434,7 @@ Generates an NTLMv2 session key\&. .SS "int heim_ntlm_verify_ntlm2 (const void * key, size_t len, const char * username, const char * target, time_t now, const unsigned char serverchallenge[8], const struct \fBntlm_buf\fP * answer, struct \fBntlm_buf\fP * infotarget, unsigned char ntlmv2[16])" Verify NTLMv2 response\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIkey\fP the ntlm key .br @@ -455,7 +455,7 @@ Verify NTLMv2 response\&. \fIntlmv2\fP calculated session key .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 In case of success 0 is return, an errors, a errno in what went wrong\&. .RE @@ -466,9 +466,9 @@ Second check with domain uppercased\&. .PP Third check with empty domain\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalntlmlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal ntlm library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type1.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type1.3 index b9f060a232e5..23abb8c94ef2 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type1.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type1.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: ntlm_type1.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: ntlm_type1.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "ntlm_type1" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalntlmlibrary" \" -*- nroff -*- +.TH "ntlm_type1" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal ntlm library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -14,10 +14,10 @@ ntlm_type1 .PP Struct for the NTLM type1 message info, the strings is assumed to be in UTF8\&. When filled in by the library it should be freed with \fBheim_ntlm_free_type1()\fP\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalntlmlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal ntlm library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type2.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type2.3 index 1b17cc3cec5b..814b5804b49b 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type2.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type2.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: ntlm_type2.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: ntlm_type2.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "ntlm_type2" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalntlmlibrary" \" -*- nroff -*- +.TH "ntlm_type2" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal ntlm library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -14,10 +14,10 @@ ntlm_type2 .PP Struct for the NTLM type2 message info, the strings is assumed to be in UTF8\&. When filled in by the library it should be freed with \fBheim_ntlm_free_type2()\fP\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalntlmlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal ntlm library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type3.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type3.3 index 2ffb9e2b1fab..a9ff3d4eb539 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type3.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/ntlm/man/man3/ntlm_type3.3 @@ -1,6 +1,6 @@ -.\" $NetBSD: ntlm_type3.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: ntlm_type3.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "ntlm_type3" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalntlmlibrary" \" -*- nroff -*- +.TH "ntlm_type3" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal ntlm library" \" -*- nroff -*- .ad l .nh .SH NAME @@ -14,10 +14,10 @@ ntlm_type3 .PP Struct for the NTLM type3 message info, the strings is assumed to be in UTF8\&. When filled in by the library it should be freed with \fBheim_ntlm_free_type3()\fP\&. .PP -\fBExamples: \fP +\fBExamples\fP .in +1c \fBtest_ntlm\&.c\fP\&. .SH "Author" .PP -Generated automatically by Doxygen for Heimdalntlmlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal ntlm library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/html/doxygen.png b/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8..000000000000 Binary files a/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/html/doxygen.png and /dev/null differ diff --git a/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/man/man3/wind.3 b/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/man/man3/wind.3 index efbf4a34241e..ca032917ea3b 100644 --- a/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/man/man3/wind.3 +++ b/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/man/man3/wind.3 @@ -1,10 +1,10 @@ -.\" $NetBSD: wind.3,v 1.2 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: wind.3,v 1.3 2023/06/19 21:41:41 christos Exp $ .\" -.TH "wind" 3 "Fri Jun 7 2019" "Version 7.7.0" "Heimdalwindlibrary" \" -*- nroff -*- +.TH "wind" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal wind library" \" -*- nroff -*- .ad l .nh .SH NAME -wind +wind \- Heimdal wind library .SH SYNOPSIS .br .PP @@ -59,14 +59,14 @@ wind .SS "int wind_profile (const char * name, wind_profile_flags * flags)" Try to find the profile given a name\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIname\fP name of the profile\&. .br \fIflags\fP the resulting profile\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -75,7 +75,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_punycode_label_toascii (const uint32_t * in, size_t in_len, char * out, size_t * out_len)" Convert an UCS4 string to a puny-coded DNS label string suitable when combined with delimiters and other labels for DNS lookup\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UCS4 string to convert .br @@ -86,7 +86,7 @@ Convert an UCS4 string to a puny-coded DNS label string suitable when combined w \fIout_len\fP before processing out_len should be the length of the out variable, after processing it will be the length of the out string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -95,7 +95,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_stringprep (const uint32_t * in, size_t in_len, uint32_t * out, size_t * out_len, wind_profile_flags flags)" Process a input UCS4 string according a string-prep profile\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP input UCS4 string to process .br @@ -108,7 +108,7 @@ Process a input UCS4 string according a string-prep profile\&. \fIflags\fP stringprep profile\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -117,7 +117,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_ucs2read (const void * ptr, size_t len, unsigned int * flags, uint16_t * out, size_t * out_len)" Read in an UCS2 from a buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIptr\fP The input buffer to read from\&. .br @@ -130,7 +130,7 @@ Read in an UCS2 from a buffer\&. \fIout_len\fP the output length .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise\&. .RE @@ -143,7 +143,7 @@ If the flags WIND_RW_BOM is set, check for BOM\&. If not BOM is found, check is .SS "int wind_ucs2utf8 (const uint16_t * in, size_t in_len, char * out, size_t * out_len)" Convert an UCS2 string to a UTF-8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UCS2 string to convert\&. .br @@ -154,7 +154,7 @@ Convert an UCS2 string to a UTF-8 string\&. \fIout_len\fP before processing out_len should be the length of the out variable, after processing it will be the length of the out string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -163,7 +163,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_ucs2utf8_length (const uint16_t * in, size_t in_len, size_t * out_len)" Calculate the length of from converting a UCS2 string to an UTF-8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UCS2 string to convert\&. .br @@ -172,7 +172,7 @@ Calculate the length of from converting a UCS2 string to an UTF-8 string\&. \fIout_len\fP the length of the resulting UTF-8 string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -181,7 +181,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_ucs2write (const uint16_t * in, size_t in_len, unsigned int * flags, void * ptr, size_t * out_len)" Write an UCS2 string to a buffer\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP The input UCS2 string\&. .br @@ -194,7 +194,7 @@ Write an UCS2 string to a buffer\&. \fIout_len\fP the output length .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise\&. .RE @@ -205,11 +205,11 @@ On zero input length, flags are preserved .PP If flags have WIND_RW_BOM set, the byte order mark is written first to the output data .PP -If the output wont fit into out_len, WIND_ERR_OVERRUN is returned +If the output wont fit into out_len, WIND_ERR_OVERRUN is returned .SS "int wind_ucs4utf8 (const uint32_t * in, size_t in_len, char * out, size_t * out_len)" Convert an UCS4 string to a UTF-8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UCS4 string to convert\&. .br @@ -220,7 +220,7 @@ Convert an UCS4 string to a UTF-8 string\&. \fIout_len\fP before processing out_len should be the length of the out variable, after processing it will be the length of the out string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -229,7 +229,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_ucs4utf8_length (const uint32_t * in, size_t in_len, size_t * out_len)" Calculate the length of from converting a UCS4 string to an UTF-8 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UCS4 string to convert\&. .br @@ -238,7 +238,7 @@ Calculate the length of from converting a UCS4 string to an UTF-8 string\&. \fIout_len\fP the length of the resulting UTF-8 string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -247,7 +247,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_utf8ucs2 (const char * in, uint16_t * out, size_t * out_len)" Convert an UTF-8 string to an UCS2 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UTF-8 string to convert\&. .br @@ -256,7 +256,7 @@ Convert an UTF-8 string to an UCS2 string\&. \fIout_len\fP before processing out_len should be the length of the out variable, after processing it will be the length of the out string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -265,14 +265,14 @@ returns 0 on success, an wind error code otherwise .SS "int wind_utf8ucs2_length (const char * in, size_t * out_len)" Calculate the length of from converting a UTF-8 string to a UCS2 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UTF-8 string to convert\&. .br \fIout_len\fP the length of the resulting UCS4 string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -281,7 +281,7 @@ returns 0 on success, an wind error code otherwise .SS "int wind_utf8ucs4 (const char * in, uint32_t * out, size_t * out_len)" Convert an UTF-8 string to an UCS4 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UTF-8 string to convert\&. .br @@ -290,7 +290,7 @@ Convert an UTF-8 string to an UCS4 string\&. \fIout_len\fP before processing out_len should be the length of the out variable, after processing it will be the length of the out string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -299,14 +299,14 @@ returns 0 on success, an wind error code otherwise .SS "int wind_utf8ucs4_length (const char * in, size_t * out_len)" Calculate the length of from converting a UTF-8 string to a UCS4 string\&. .PP -\fBParameters:\fP +\fBParameters\fP .RS 4 \fIin\fP an UTF-8 string to convert\&. .br \fIout_len\fP the length of the resulting UCS4 string\&. .RE .PP -\fBReturns:\fP +\fBReturns\fP .RS 4 returns 0 on success, an wind error code otherwise .RE @@ -314,4 +314,4 @@ returns 0 on success, an wind error code otherwise .SH "Author" .PP -Generated automatically by Doxygen for Heimdalwindlibrary from the source code\&. +Generated automatically by Doxygen for Heimdal wind library from the source code\&. diff --git a/crypto/external/bsd/heimdal/dist/doc/vars.texi b/crypto/external/bsd/heimdal/dist/doc/vars.texi index 0f7d1ea59419..68f34a02ca46 100644 --- a/crypto/external/bsd/heimdal/dist/doc/vars.texi +++ b/crypto/external/bsd/heimdal/dist/doc/vars.texi @@ -1,9 +1,9 @@ -@c $NetBSD: vars.texi,v 1.2 2019/12/15 22:50:43 christos Exp $ +@c $NetBSD: vars.texi,v 1.3 2023/06/19 21:41:38 christos Exp $ @c @c Variables depending on installation @c @set dbdir /var/heimdal @set dbtype db3 -@set PACKAGE_VERSION 7.7.0 +@set PACKAGE_VERSION 7.8.0 diff --git a/crypto/external/bsd/heimdal/dist/include/bits.c b/crypto/external/bsd/heimdal/dist/include/bits.c index 40cfcaeaaad7..383bca67d4a0 100644 --- a/crypto/external/bsd/heimdal/dist/include/bits.c +++ b/crypto/external/bsd/heimdal/dist/include/bits.c @@ -1,4 +1,4 @@ -/* $NetBSD: bits.c,v 1.3 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: bits.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2002 Kungliga Tekniska Högskolan @@ -37,7 +37,7 @@ #ifdef HAVE_CONFIG_H #include -__RCSID("$NetBSD: bits.c,v 1.3 2019/12/15 22:50:46 christos Exp $"); +__RCSID("$NetBSD: bits.c,v 1.4 2023/06/19 21:41:41 christos Exp $"); #endif #include #include @@ -51,7 +51,7 @@ __RCSID("$NetBSD: bits.c,v 1.3 2019/12/15 22:50:46 christos Exp $"); #define BITSIZE(TYPE) \ { \ int b = 0; TYPE x = 1, zero = 0; const char *pre = "u"; \ - char tmp[128], tmp2[128]; \ + char tmp[128], tmp2[192]; \ while(x){ x <<= 1; b++; if(x < zero) pre=""; } \ if(b >= len){ \ size_t tabs; \ diff --git a/crypto/external/bsd/heimdal/dist/include/crypto-headers.h b/crypto/external/bsd/heimdal/dist/include/crypto-headers.h index 9ae12e3fc96b..ff02ba349581 100644 --- a/crypto/external/bsd/heimdal/dist/include/crypto-headers.h +++ b/crypto/external/bsd/heimdal/dist/include/crypto-headers.h @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-headers.h,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-headers.h,v 1.5 2023/06/19 21:41:41 christos Exp $ */ #ifndef __crypto_header__ #define __crypto_header__ diff --git a/crypto/external/bsd/heimdal/dist/include/heim_threads.h b/crypto/external/bsd/heimdal/dist/include/heim_threads.h index 70994b2fd3db..f291693c1b72 100644 --- a/crypto/external/bsd/heimdal/dist/include/heim_threads.h +++ b/crypto/external/bsd/heimdal/dist/include/heim_threads.h @@ -1,4 +1,4 @@ -/* $NetBSD: heim_threads.h,v 1.3 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: heim_threads.h,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2003-2016 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kadmin/ank.c b/crypto/external/bsd/heimdal/dist/kadmin/ank.c index 189a4055ac26..c9bcdd42758b 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/ank.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/ank.c @@ -1,4 +1,4 @@ -/* $NetBSD: ank.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: ank.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2006 Kungliga Tekniska Högskolan @@ -139,7 +139,9 @@ add_one_principal (const char *name, krb5_set_error_message(context, ret, "out of memory"); goto out; } - ret = UI_UTIL_read_pw_string (pwbuf, sizeof(pwbuf), prompt, 1); + ret = UI_UTIL_read_pw_string (pwbuf, sizeof(pwbuf), prompt, + UI_UTIL_FLAG_VERIFY | + UI_UTIL_FLAG_VERIFY_SILENT); free (prompt); if (ret) { ret = KRB5_LIBOS_BADPWDMATCH; diff --git a/crypto/external/bsd/heimdal/dist/kadmin/cpw.c b/crypto/external/bsd/heimdal/dist/kadmin/cpw.c index 4c75dae6710c..4363d9214384 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/cpw.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/cpw.c @@ -1,4 +1,4 @@ -/* $NetBSD: cpw.c,v 1.3 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: cpw.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan @@ -100,7 +100,9 @@ set_password (krb5_principal principal, char *password, int keepold) free (princ_name); if (aret == -1) return ENOMEM; - ret = UI_UTIL_read_pw_string(pwbuf, sizeof(pwbuf), prompt, 1); + ret = UI_UTIL_read_pw_string(pwbuf, sizeof(pwbuf), prompt, + UI_UTIL_FLAG_VERIFY | + UI_UTIL_FLAG_VERIFY_SILENT); free (prompt); if(ret){ return 0; /* XXX error code? */ diff --git a/crypto/external/bsd/heimdal/dist/kadmin/ext.c b/crypto/external/bsd/heimdal/dist/kadmin/ext.c index 7b0a52792b4f..12b652db2711 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/ext.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/ext.c @@ -1,4 +1,4 @@ -/* $NetBSD: ext.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: ext.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -146,7 +146,7 @@ do_ext_keytab(krb5_principal principal, void *data) } free(unparsed); free(keys); - return 0; + return ret; } int diff --git a/crypto/external/bsd/heimdal/dist/kadmin/get.c b/crypto/external/bsd/heimdal/dist/kadmin/get.c index f2b781b054f4..2cf18d23a817 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/get.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/get.c @@ -1,4 +1,4 @@ -/* $NetBSD: get.c,v 1.4 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: get.c,v 1.5 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kadmin/kadmind.8 b/crypto/external/bsd/heimdal/dist/kadmin/kadmind.8 index 976fc34300df..b2249dbccbcc 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/kadmind.8 +++ b/crypto/external/bsd/heimdal/dist/kadmin/kadmind.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kadmind.8,v 1.6 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: kadmind.8,v 1.7 2023/06/19 21:41:41 christos Exp $ .\" .\" Copyright (c) 2002 - 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kadmin/kadmind.c b/crypto/external/bsd/heimdal/dist/kadmin/kadmind.c index a60b7fcf6d22..6f5b76c40343 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/kadmind.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/kadmind.c @@ -1,4 +1,4 @@ -/* $NetBSD: kadmind.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: kadmind.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2004 Kungliga Tekniska Högskolan @@ -132,7 +132,11 @@ main(int argc, char **argv) errx (1, "krb5_init_context failed: %d", ret); argc -= optidx; +#ifndef __clang_analyzer__ argv += optidx; +#endif + if (argc != 0) + usage(1); if (config_file == NULL) { int aret; diff --git a/crypto/external/bsd/heimdal/dist/kadmin/mod.c b/crypto/external/bsd/heimdal/dist/kadmin/mod.c index 1ef123939087..f35ad2b688d6 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/mod.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/mod.c @@ -1,4 +1,4 @@ -/* $NetBSD: mod.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: mod.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -108,7 +108,7 @@ static void add_aliases(krb5_context contextp, kadm5_principal_ent_rec *princ, struct getarg_strings *strings) { - krb5_error_code ret; + krb5_error_code ret = 0; HDB_extension ext; krb5_data buf; krb5_principal p; @@ -129,9 +129,16 @@ add_aliases(krb5_context contextp, kadm5_principal_ent_rec *princ, sizeof(ext.data.u.aliases.aliases.val[0])); ext.data.u.aliases.aliases.len = strings->num_strings; - for (i = 0; i < strings->num_strings; i++) { + for (i = 0; ret == 0 && i < strings->num_strings; i++) { ret = krb5_parse_name(contextp, strings->strings[i], &p); - ret = copy_Principal(p, &ext.data.u.aliases.aliases.val[i]); + if (ret) + krb5_err(contextp, 1, ret, "Could not parse alias %s", + strings->strings[i]); + if (ret == 0) + ret = copy_Principal(p, &ext.data.u.aliases.aliases.val[i]); + if (ret) + krb5_err(contextp, 1, ret, "Could not copy parsed alias %s", + strings->strings[i]); krb5_free_principal(contextp, p); } } diff --git a/crypto/external/bsd/heimdal/dist/kadmin/rpc.c b/crypto/external/bsd/heimdal/dist/kadmin/rpc.c index deea8b4f9502..112d2fa67600 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/rpc.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/rpc.c @@ -1,4 +1,4 @@ -/* $NetBSD: rpc.c,v 1.3 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: rpc.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan @@ -933,7 +933,7 @@ process_stream(krb5_context contextp, INSIST(gctx.ctx == NULL); gctx.inprogress = 1; - /* FALL THOUGH */ + /* FALLTHROUGH */ case RPG_CONTINUE_INIT: { gss_name_t src_name = GSS_C_NO_NAME; krb5_data in; diff --git a/crypto/external/bsd/heimdal/dist/kadmin/stash.c b/crypto/external/bsd/heimdal/dist/kadmin/stash.c index 2c6f4fb7624d..3262ea427a3b 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/stash.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/stash.c @@ -1,4 +1,4 @@ -/* $NetBSD: stash.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: stash.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -101,13 +101,17 @@ stash(struct stash_options *opt, int argc, char **argv) random_password (buf, sizeof(buf)); printf("Using random master stash password: %s\n", buf); } else { - if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Master key: ", 1)) { + if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Master key: ", + UI_UTIL_FLAG_VERIFY)) { hdb_free_master_key(context, mkey); return 0; } } ret = krb5_string_to_key_salt(context, enctype, buf, salt, &key); - ret = hdb_add_master_key(context, &key, &mkey); + if (ret == 0) + ret = hdb_add_master_key(context, &key, &mkey); + if (ret) + krb5_warn(context, errno, "setting master key"); krb5_free_keyblock_contents(context, &key); } diff --git a/crypto/external/bsd/heimdal/dist/kadmin/util.c b/crypto/external/bsd/heimdal/dist/kadmin/util.c index 56c00e3998fd..07d1018a843c 100644 --- a/crypto/external/bsd/heimdal/dist/kadmin/util.c +++ b/crypto/external/bsd/heimdal/dist/kadmin/util.c @@ -1,4 +1,4 @@ -/* $NetBSD: util.c,v 1.4 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: util.c,v 1.5 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kcm/cache.c b/crypto/external/bsd/heimdal/dist/kcm/cache.c index 66db21131f7e..14ff98d0bbf0 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/cache.c +++ b/crypto/external/bsd/heimdal/dist/kcm/cache.c @@ -1,4 +1,4 @@ -/* $NetBSD: cache.c,v 1.5 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: cache.c,v 1.6 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2005, PADL Software Pty Ltd. @@ -107,7 +107,7 @@ kcm_ccache_resolve_by_uuid(krb5_context context, for (p = ccache_head; p != NULL; p = p->next) { if ((p->flags & KCM_FLAGS_VALID) == 0) continue; - if (memcmp(p->uuid, uuid, sizeof(*uuid)) == 0) { + if (memcmp(p->uuid, uuid, sizeof(kcmuuid_t)) == 0) { ret = 0; break; } diff --git a/crypto/external/bsd/heimdal/dist/kcm/client.c b/crypto/external/bsd/heimdal/dist/kcm/client.c index af96c7abd8f0..e13518d579dd 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/client.c +++ b/crypto/external/bsd/heimdal/dist/kcm/client.c @@ -1,4 +1,4 @@ -/* $NetBSD: client.c,v 1.3 2017/09/08 15:29:43 christos Exp $ */ +/* $NetBSD: client.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2005, PADL Software Pty Ltd. diff --git a/crypto/external/bsd/heimdal/dist/kcm/config.c b/crypto/external/bsd/heimdal/dist/kcm/config.c index a0244bfeb396..f0e328c6eb50 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/config.c +++ b/crypto/external/bsd/heimdal/dist/kcm/config.c @@ -1,4 +1,4 @@ -/* $NetBSD: config.c,v 1.3 2017/09/08 15:29:43 christos Exp $ */ +/* $NetBSD: config.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2005, PADL Software Pty Ltd. @@ -343,7 +343,9 @@ kcm_configure(int argc, char **argv) } argc -= optidx; +#ifndef __clang_analyzer__ argv += optidx; +#endif if (argc != 0) usage(1); diff --git a/crypto/external/bsd/heimdal/dist/kcm/glue.c b/crypto/external/bsd/heimdal/dist/kcm/glue.c index 5331e53692cb..e104e456433f 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/glue.c +++ b/crypto/external/bsd/heimdal/dist/kcm/glue.c @@ -1,4 +1,4 @@ -/* $NetBSD: glue.c,v 1.3 2018/04/06 19:57:03 christos Exp $ */ +/* $NetBSD: glue.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2005, PADL Software Pty Ltd. @@ -34,7 +34,7 @@ #include "kcm_locl.h" -__RCSID("$NetBSD: glue.c,v 1.3 2018/04/06 19:57:03 christos Exp $"); +__RCSID("$NetBSD: glue.c,v 1.4 2023/06/19 21:41:41 christos Exp $"); /* * Server-side loopback glue for credentials cache operations; this diff --git a/crypto/external/bsd/heimdal/dist/kcm/kcm.8 b/crypto/external/bsd/heimdal/dist/kcm/kcm.8 index f0e99358b1af..8eeb870e7014 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/kcm.8 +++ b/crypto/external/bsd/heimdal/dist/kcm/kcm.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kcm.8,v 1.6 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: kcm.8,v 1.7 2023/06/19 21:41:41 christos Exp $ .\" .\" Copyright (c) 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kcm/protocol.c b/crypto/external/bsd/heimdal/dist/kcm/protocol.c index e98b88a10c08..183346e428a5 100644 --- a/crypto/external/bsd/heimdal/dist/kcm/protocol.c +++ b/crypto/external/bsd/heimdal/dist/kcm/protocol.c @@ -1,4 +1,4 @@ -/* $NetBSD: protocol.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: protocol.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2005, PADL Software Pty Ltd. @@ -425,7 +425,7 @@ kcm_op_get_principal(krb5_context context, free(name); kcm_release_ccache(context, ccache); - return 0; + return ret; } /* diff --git a/crypto/external/bsd/heimdal/dist/kdc/connect.c b/crypto/external/bsd/heimdal/dist/kdc/connect.c index faa0e804a215..a8eb20e27364 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/connect.c +++ b/crypto/external/bsd/heimdal/dist/kdc/connect.c @@ -1,4 +1,4 @@ -/* $NetBSD: connect.c,v 1.4 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: connect.c,v 1.5 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -1270,6 +1270,4 @@ start_kdc(krb5_context context, loop(context, config, d, ndescr, -1); kdc_log(context, config, 0, "KDC exiting", pid); #endif - - free(d); } diff --git a/crypto/external/bsd/heimdal/dist/kdc/default_config.c b/crypto/external/bsd/heimdal/dist/kdc/default_config.c index 24c666f89a25..8fcb346ac7f7 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/default_config.c +++ b/crypto/external/bsd/heimdal/dist/kdc/default_config.c @@ -1,4 +1,4 @@ -/* $NetBSD: default_config.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: default_config.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan @@ -61,6 +61,7 @@ krb5_kdc_get_config(krb5_context context, krb5_kdc_configuration **config) c->check_ticket_addresses = TRUE; c->allow_null_ticket_addresses = TRUE; c->allow_anonymous = FALSE; + c->historical_anon_realm = FALSE; c->strict_nametypes = FALSE; c->trpolicy = TRPOLICY_ALWAYS_CHECK; c->enable_pkinit = FALSE; @@ -166,6 +167,12 @@ krb5_kdc_get_config(krb5_context context, krb5_kdc_configuration **config) "kdc", "allow-anonymous", NULL); + c->historical_anon_realm = + krb5_config_get_bool_default(context, NULL, + c->historical_anon_realm, + "kdc", + "historical_anon_realm", NULL); + c->strict_nametypes = krb5_config_get_bool_default(context, NULL, c->strict_nametypes, diff --git a/crypto/external/bsd/heimdal/dist/kdc/digest.c b/crypto/external/bsd/heimdal/dist/kdc/digest.c index d9cf3456d964..ed635e295c33 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/digest.c +++ b/crypto/external/bsd/heimdal/dist/kdc/digest.c @@ -1,4 +1,4 @@ -/* $NetBSD: digest.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: digest.c,v 1.5 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan @@ -1479,6 +1479,10 @@ _kdc_do_digest(krb5_context context, ret = krb5_encrypt_EncryptedData(context, crypto, KRB5_KU_DIGEST_ENCRYPT, buf.data, buf.length, 0, &rep.innerRep); + if (ret) { + krb5_prepend_error_message(context, ret, "Failed to encrypt digest: "); + goto out; + } ASN1_MALLOC_ENCODE(DigestREP, reply->data, reply->length, &rep, &size, ret); if (ret) { diff --git a/crypto/external/bsd/heimdal/dist/kdc/hprop.8 b/crypto/external/bsd/heimdal/dist/kdc/hprop.8 index c92a99fe38e4..e751691c2ff0 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/hprop.8 +++ b/crypto/external/bsd/heimdal/dist/kdc/hprop.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: hprop.8,v 1.6 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: hprop.8,v 1.7 2023/06/19 21:41:41 christos Exp $ .\" .\" Copyright (c) 2000 - 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kdc/hpropd.8 b/crypto/external/bsd/heimdal/dist/kdc/hpropd.8 index 66ec1e82e305..3d5d59d1360d 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/hpropd.8 +++ b/crypto/external/bsd/heimdal/dist/kdc/hpropd.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: hpropd.8,v 1.4 2017/01/28 21:31:44 christos Exp $ +.\" $NetBSD: hpropd.8,v 1.5 2023/06/19 21:41:41 christos Exp $ .\" .\" Copyright (c) 1997, 2000 - 2003 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kdc/hpropd.c b/crypto/external/bsd/heimdal/dist/kdc/hpropd.c index 941dfab92109..f0efe99bfeb2 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/hpropd.c +++ b/crypto/external/bsd/heimdal/dist/kdc/hpropd.c @@ -1,4 +1,4 @@ -/* $NetBSD: hpropd.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: hpropd.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2006 Kungliga Tekniska Högskolan @@ -109,7 +109,9 @@ main(int argc, char **argv) } argc -= optidx; +#ifndef __clang_analyzer__ argv += optidx; +#endif if (argc != 0) usage(1); @@ -127,6 +129,7 @@ main(int argc, char **argv) krb5_ticket *ticket; char *server; + memset(&ss, 0, sizeof(ss)); sock = STDIN_FILENO; #ifdef SUPPORT_INETD if (inetd_flag == -1) { @@ -147,7 +150,7 @@ main(int argc, char **argv) if (getpeername(sock, sa, &sin_len) < 0) krb5_err(context, 1, errno, "getpeername"); - if (inet_ntop(ss.ss_family, + if (inet_ntop(sa->sa_family, socket_get_address (sa), addr_name, sizeof(addr_name)) == NULL) diff --git a/crypto/external/bsd/heimdal/dist/kdc/kdc-private.h b/crypto/external/bsd/heimdal/dist/kdc/kdc-private.h index 81a794cd9e75..30368a21db53 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kdc-private.h +++ b/crypto/external/bsd/heimdal/dist/kdc/kdc-private.h @@ -1,4 +1,4 @@ -/* $NetBSD: kdc-private.h,v 1.2 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: kdc-private.h,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* This is a generated file */ #ifndef __kdc_private_h__ @@ -181,6 +181,9 @@ _kdc_get_preferred_key ( krb5_enctype */*enctype*/, Key **/*key*/); +krb5_boolean +_kdc_is_anon_request (const KDC_REQ */*req*/); + krb5_boolean _kdc_is_anonymous ( krb5_context /*context*/, diff --git a/crypto/external/bsd/heimdal/dist/kdc/kdc-replay.c b/crypto/external/bsd/heimdal/dist/kdc/kdc-replay.c index ecac82790aa1..9e6255e640b8 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kdc-replay.c +++ b/crypto/external/bsd/heimdal/dist/kdc/kdc-replay.c @@ -1,4 +1,4 @@ -/* $NetBSD: kdc-replay.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: kdc-replay.c,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 2007 Kungliga Tekniska Högskolan @@ -186,6 +186,8 @@ main(int argc, char **argv) unsigned int tag2; ret = der_get_tag (r.data, r.length, &cl, &ty, &tag2, NULL); + if (ret) + krb5_err(context, 1, ret, "Could not decode replay data"); if (MAKE_TAG(cl, ty, 0) != clty) krb5_errx(context, 1, "class|type mismatch: %d != %d", (int)MAKE_TAG(cl, ty, 0), (int)clty); diff --git a/crypto/external/bsd/heimdal/dist/kdc/kdc.8 b/crypto/external/bsd/heimdal/dist/kdc/kdc.8 index 9a7166b1b719..fe1e3adf556b 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kdc.8 +++ b/crypto/external/bsd/heimdal/dist/kdc/kdc.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kdc.8,v 1.5 2017/01/28 21:31:44 christos Exp $ +.\" $NetBSD: kdc.8,v 1.6 2023/06/19 21:41:41 christos Exp $ .\" .\" Copyright (c) 2003 - 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). @@ -157,6 +157,19 @@ Permit tickets with no addresses. This option is only relevant when check-ticket-addresses is TRUE. .It Li allow-anonymous = Va boolean Permit anonymous tickets with no addresses. +.It Li historical_anon_realm = Va boolean +Enables pre-7.0 non-RFC-comformant KDC behavior. +With this option set to +.Li true +the client realm in anonymous pkinit AS replies will be the requested realm, +rather than the RFC-conformant +.Li WELLKNOWN:ANONYMOUS +realm. +This can have a security impact on servers that expect to grant access to +anonymous-but-authenticated to the KDC users of the realm in question: +they would also grant access to unauthenticated anonymous users. +As such, it is not recommend to set this option to +.Li true. .It Li max-kdc-datagram-reply-length = Va number Maximum packet size the UDP rely that the KDC will transmit, instead the KDC sends back a reply telling the client to use TCP instead. diff --git a/crypto/external/bsd/heimdal/dist/kdc/kdc.h b/crypto/external/bsd/heimdal/dist/kdc/kdc.h index 5dbd055a8512..8391b95d0652 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kdc.h +++ b/crypto/external/bsd/heimdal/dist/kdc/kdc.h @@ -1,4 +1,4 @@ -/* $NetBSD: kdc.h,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: kdc.h,v 1.3 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2003 Kungliga Tekniska Högskolan @@ -71,6 +71,7 @@ typedef struct krb5_kdc_configuration { krb5_boolean check_ticket_addresses; krb5_boolean allow_null_ticket_addresses; krb5_boolean allow_anonymous; + krb5_boolean historical_anon_realm; krb5_boolean strict_nametypes; enum krb5_kdc_trpolicy trpolicy; diff --git a/crypto/external/bsd/heimdal/dist/kdc/kerberos5.c b/crypto/external/bsd/heimdal/dist/kdc/kerberos5.c index 85adc5f65524..dc8e9706dd9b 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kerberos5.c +++ b/crypto/external/bsd/heimdal/dist/kdc/kerberos5.c @@ -1,4 +1,4 @@ -/* $NetBSD: kerberos5.c,v 1.8 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: kerberos5.c,v 1.9 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan @@ -118,11 +118,28 @@ is_default_salt_p(const krb5_salt *default_salt, const Key *key) return TRUE; } +/* + * Detect if `key' is the using the the precomputed `default_salt' + * (for des-cbc-crc) or any salt otherwise. + * + * This is for avoiding Kerberos v4 (yes really) keys in AS-REQ as + * that salt is strange, and a buggy client will try to use the + * principal as the salt and not the returned value. + */ static krb5_boolean -is_anon_as_request_p(kdc_request_t r) +is_good_salt_p(const krb5_salt *default_salt, const Key *key) { - KDC_REQ_BODY *b = &r->req.req_body; + if (key->key.keytype == KRB5_ENCTYPE_DES_CBC_CRC) + return is_default_salt_p(default_salt, key); + + return TRUE; +} + +krb5_boolean +_kdc_is_anon_request(const KDC_REQ *req) +{ + const KDC_REQ_BODY *b = &req->req_body; /* * Versions of Heimdal from 0.9rc1 through 1.50 use bit 14 instead @@ -200,7 +217,7 @@ _kdc_find_etype(krb5_context context, krb5_boolean use_strongest_session_key, enctype = p[i]; ret = 0; if (is_preauth && ret_key != NULL && - !is_default_salt_p(&def_salt, key)) + !is_good_salt_p(&def_salt, key)) continue; } } @@ -232,7 +249,7 @@ _kdc_find_etype(krb5_context context, krb5_boolean use_strongest_session_key, enctype = etypes[i]; ret = 0; if (is_preauth && ret_key != NULL && - !is_default_salt_p(&def_salt, key)) + !is_good_salt_p(&def_salt, key)) continue; } } @@ -463,7 +480,7 @@ pa_enc_chal_validate(kdc_request_t r, const PA_DATA *pa) heim_assert(r->armor_crypto != NULL, "ENC-CHAL called for non FAST"); - if (is_anon_as_request_p(r)) { + if (_kdc_is_anon_request(&r->req)) { ret = KRB5KRB_AP_ERR_BAD_INTEGRITY; kdc_log(r->context, r->config, 0, "ENC-CHALL doesn't support anon"); return ret; @@ -1732,7 +1749,7 @@ _kdc_as_rep(kdc_request_t r, */ if (_kdc_is_anonymous(context, r->client_princ) && - !is_anon_as_request_p(r)) { + !_kdc_is_anon_request(&r->req)) { kdc_log(context, config, 0, "Anonymous client w/o anonymous flag"); ret = KRB5KDC_ERR_BADOPTION; goto out; @@ -1905,7 +1922,7 @@ _kdc_as_rep(kdc_request_t r, * send requre preauth is its required or anon is requested, * anon is today only allowed via preauth mechanisms. */ - if (require_preauth_p(r) || is_anon_as_request_p(r)) { + if (require_preauth_p(r) || _kdc_is_anon_request(&r->req)) { ret = KRB5KDC_ERR_PREAUTH_REQUIRED; _kdc_set_e_text(r, "Need to use PA-ENC-TIMESTAMP/PA-PK-AS-REQ"); goto out; @@ -1938,7 +1955,7 @@ _kdc_as_rep(kdc_request_t r, if(ret) goto out; - if (is_anon_as_request_p(r)) { + if (_kdc_is_anon_request(&r->req)) { ret = _kdc_check_anon_policy(context, config, r->client, r->server); if (ret) { _kdc_set_e_text(r, "Anonymous ticket requests are disabled"); @@ -1972,7 +1989,8 @@ _kdc_as_rep(kdc_request_t r, rep.pvno = 5; rep.msg_type = krb_as_rep; - if (_kdc_is_anonymous(context, r->client_princ)) { + if (!config->historical_anon_realm && + _kdc_is_anonymous(context, r->client_princ)) { Realm anon_realm = KRB5_ANON_REALM; ret = copy_Realm(&anon_realm, &rep.crealm); } else diff --git a/crypto/external/bsd/heimdal/dist/kdc/krb5tgs.c b/crypto/external/bsd/heimdal/dist/kdc/krb5tgs.c index 6bcc140f83e5..f43980df8c25 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/krb5tgs.c +++ b/crypto/external/bsd/heimdal/dist/kdc/krb5tgs.c @@ -1,4 +1,4 @@ -/* $NetBSD: krb5tgs.c,v 1.3 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: krb5tgs.c,v 1.4 2023/06/19 21:41:41 christos Exp $ */ /* * Copyright (c) 1997-2008 Kungliga Tekniska Högskolan @@ -914,6 +914,12 @@ tgs_make_reply(krb5_context context, et.flags.hw_authent = tgt->flags.hw_authent; et.flags.ok_as_delegate = server->entry.flags.ok_as_delegate; + /* See MS-KILE 3.3.5.1 */ + if (!server->entry.flags.forwardable) + et.flags.forwardable = 0; + if (!server->entry.flags.proxiable) + et.flags.proxiable = 0; + /* * For anonymous tickets, we should filter out positive authorization data * that could reveal the client's identity, and return a policy error for @@ -1662,6 +1668,10 @@ tgs_build_reply(krb5_context context, s = &adtkt.cname; r = adtkt.crealm; + } else if (s == NULL) { + ret = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN; + kdc_log(context, config, 0, "No server in request"); + goto out; } _krb5_principalname2krb5_principal(context, &sp, *s, r); @@ -2105,30 +2115,43 @@ server_lookup: if (ret) goto out; + ret = _kdc_db_fetch(context, config, tp, HDB_F_GET_CLIENT | flags, + NULL, &s4u2self_impersonated_clientdb, + &s4u2self_impersonated_client); + if (ret) { + const char *msg; + + /* + * If the client belongs to the same realm as our krbtgt, it + * should exist in the local database. + * + */ + + if (ret == HDB_ERR_NOENTRY) + ret = KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN; + msg = krb5_get_error_message(context, ret); + kdc_log(context, config, 2, + "S4U2Self principal to impersonate %s not found in database: %s", + tpn, msg); + krb5_free_error_message(context, msg); + goto out; + } + + /* Ignore require_pwchange and pw_end attributes (as Windows does), + * since S4U2Self is not password authentication. */ + s4u2self_impersonated_client->entry.flags.require_pwchange = FALSE; + free(s4u2self_impersonated_client->entry.pw_end); + s4u2self_impersonated_client->entry.pw_end = NULL; + + ret = kdc_check_flags(context, config, s4u2self_impersonated_client, tpn, + NULL, NULL, FALSE); + if (ret) + goto out; + /* If we were about to put a PAC into the ticket, we better fix it to be the right PAC */ if(rspac.data) { krb5_pac p = NULL; krb5_data_free(&rspac); - ret = _kdc_db_fetch(context, config, tp, HDB_F_GET_CLIENT | flags, - NULL, &s4u2self_impersonated_clientdb, &s4u2self_impersonated_client); - if (ret) { - const char *msg; - - /* - * If the client belongs to the same realm as our krbtgt, it - * should exist in the local database. - * - */ - - if (ret == HDB_ERR_NOENTRY) - ret = KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN; - msg = krb5_get_error_message(context, ret); - kdc_log(context, config, 1, - "S2U4Self principal to impersonate %s not found in database: %s", - tpn, msg); - krb5_free_error_message(context, msg); - goto out; - } ret = _kdc_pac_generate(context, s4u2self_impersonated_client, &p); if (ret) { kdc_log(context, config, 0, "PAC generation failed for -- %s", @@ -2164,10 +2187,12 @@ server_lookup: /* * If the service isn't trusted for authentication to - * delegation, remove the forward flag. + * delegation or if the impersonate client is disallowed + * forwardable, remove the forwardable flag. */ - if (client->entry.flags.trusted_for_delegation) { + if (client->entry.flags.trusted_for_delegation && + s4u2self_impersonated_client->entry.flags.forwardable) { str = "[forwardable]"; } else { b->kdc_options.forwardable = 0; diff --git a/crypto/external/bsd/heimdal/dist/kdc/kstash.8 b/crypto/external/bsd/heimdal/dist/kdc/kstash.8 index c64fa4435112..5dddb742bdaa 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kstash.8 +++ b/crypto/external/bsd/heimdal/dist/kdc/kstash.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kstash.8,v 1.4 2017/01/28 21:31:44 christos Exp $ +.\" $NetBSD: kstash.8,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kdc/kstash.c b/crypto/external/bsd/heimdal/dist/kdc/kstash.c index af36b4a9fed7..ac32ab392828 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kstash.c +++ b/crypto/external/bsd/heimdal/dist/kdc/kstash.c @@ -1,4 +1,4 @@ -/* $NetBSD: kstash.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: kstash.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2004 Kungliga Tekniska Högskolan @@ -126,12 +126,15 @@ main(int argc, char **argv) buf[strcspn(buf, "\r\n")] = '\0'; } else { - if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Master key: ", 1)) + if(UI_UTIL_read_pw_string(buf, sizeof(buf), "Master key: ", + UI_UTIL_FLAG_VERIFY)) exit(1); } krb5_string_to_key_salt(context, enctype, buf, salt, &key); } ret = hdb_add_master_key(context, &key, &mkey); + if (ret) + krb5_err(context, 1, ret, "hdb_add_master_key"); krb5_free_keyblock_contents(context, &key); diff --git a/crypto/external/bsd/heimdal/dist/kdc/kx509.c b/crypto/external/bsd/heimdal/dist/kdc/kx509.c index 389ab11eb346..5530ea4db352 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/kx509.c +++ b/crypto/external/bsd/heimdal/dist/kdc/kx509.c @@ -1,4 +1,4 @@ -/* $NetBSD: kx509.c,v 1.3 2018/02/05 16:00:52 christos Exp $ */ +/* $NetBSD: kx509.c,v 1.4 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kdc/pkinit-ec.c b/crypto/external/bsd/heimdal/dist/kdc/pkinit-ec.c index 4eb8cd10e551..317cd85fe5ef 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/pkinit-ec.c +++ b/crypto/external/bsd/heimdal/dist/kdc/pkinit-ec.c @@ -1,4 +1,4 @@ -/* $NetBSD: pkinit-ec.c,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: pkinit-ec.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2016 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kdc/pkinit.c b/crypto/external/bsd/heimdal/dist/kdc/pkinit.c index 401654ac242f..7e8a1a0398db 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/pkinit.c +++ b/crypto/external/bsd/heimdal/dist/kdc/pkinit.c @@ -1,4 +1,4 @@ -/* $NetBSD: pkinit.c,v 1.5 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: pkinit.c,v 1.6 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2003 - 2016 Kungliga Tekniska Högskolan @@ -243,8 +243,6 @@ generate_dh_keyblock(krb5_context context, memmove(dh_gen_key + size, dh_gen_key, dh_gen_keylen); memset(dh_gen_key, 0, size); } - - ret = 0; } else if (client_params->keyex == USE_ECDH) { if (client_params->u.ecdh.public_key == NULL) { ret = KRB5KRB_ERR_GENERIC; @@ -635,7 +633,8 @@ _kdc_pk_rd_padata(krb5_context context, hx509_certs signer_certs; int flags = HX509_CMS_VS_ALLOW_DATA_OID_MISMATCH; /* BTMM */ - if (_kdc_is_anonymous(context, client->entry.principal)) + if (_kdc_is_anonymous(context, client->entry.principal) + || (config->historical_anon_realm && _kdc_is_anon_request(req))) flags |= HX509_CMS_VS_ALLOW_ZERO_SIGNER; ret = hx509_cms_verify_signed(context->hx509ctx, @@ -1694,7 +1693,8 @@ _kdc_pk_check_client(krb5_context context, size_t i; if (cp->cert == NULL) { - if (!_kdc_is_anonymous(context, client->entry.principal)) + if (!_kdc_is_anonymous(context, client->entry.principal) + && !config->historical_anon_realm) return KRB5KDC_ERR_BADOPTION; *subject_name = strdup(""); diff --git a/crypto/external/bsd/heimdal/dist/kdc/string2key.8 b/crypto/external/bsd/heimdal/dist/kdc/string2key.8 index ccddb486c969..3dca04a0c396 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/string2key.8 +++ b/crypto/external/bsd/heimdal/dist/kdc/string2key.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: string2key.8,v 1.4 2017/01/28 21:31:44 christos Exp $ +.\" $NetBSD: string2key.8,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2000 - 2002 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kdc/windc_plugin.h b/crypto/external/bsd/heimdal/dist/kdc/windc_plugin.h index afbcd1aa51b3..7c1bf17d0b06 100644 --- a/crypto/external/bsd/heimdal/dist/kdc/windc_plugin.h +++ b/crypto/external/bsd/heimdal/dist/kdc/windc_plugin.h @@ -1,4 +1,4 @@ -/* $NetBSD: windc_plugin.h,v 1.2 2017/01/28 21:31:44 christos Exp $ */ +/* $NetBSD: windc_plugin.h,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -54,11 +54,11 @@ struct hdb_entry_ex; typedef krb5_error_code -(*krb5plugin_windc_pac_generate)(void *, krb5_context, +(KRB5_CALLCONV *krb5plugin_windc_pac_generate)(void *, krb5_context, struct hdb_entry_ex *, krb5_pac *); typedef krb5_error_code -(*krb5plugin_windc_pac_verify)(void *, krb5_context, +(KRB5_CALLCONV *krb5plugin_windc_pac_verify)(void *, krb5_context, const krb5_principal, /* new ticket client */ const krb5_principal, /* delegation proxy */ struct hdb_entry_ex *,/* client */ @@ -67,7 +67,7 @@ typedef krb5_error_code krb5_pac *); typedef krb5_error_code -(*krb5plugin_windc_client_access)( +(KRB5_CALLCONV *krb5plugin_windc_client_access)( void *, krb5_context, krb5_kdc_configuration *config, hdb_entry_ex *, const char *, @@ -80,8 +80,8 @@ typedef krb5_error_code typedef struct krb5plugin_windc_ftable { int minor_version; - krb5_error_code (*init)(krb5_context, void **); - void (*fini)(void *); + krb5_error_code (KRB5_CALLCONV *init)(krb5_context, void **); + void (KRB5_CALLCONV *fini)(void *); krb5plugin_windc_pac_generate pac_generate; krb5plugin_windc_pac_verify pac_verify; krb5plugin_windc_client_access client_access; diff --git a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswd.c b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswd.c index 92322aaf5b13..9bdddd19dd21 100644 --- a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswd.c +++ b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswd.c @@ -1,4 +1,4 @@ -/* $NetBSD: kpasswd.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: kpasswd.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2004 Kungliga Tekniska Högskolan @@ -34,7 +34,7 @@ */ #include "kpasswd_locl.h" -__RCSID("$NetBSD: kpasswd.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: kpasswd.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); static int version_flag; static int help_flag; @@ -85,7 +85,8 @@ change_password(krb5_context context, if (aret == -1 || msg == NULL) krb5_errx (context, 1, "out of memory"); - ret = UI_UTIL_read_pw_string (pwbuf, sizeof(pwbuf), msg, 1); + ret = UI_UTIL_read_pw_string (pwbuf, sizeof(pwbuf), msg, + UI_UTIL_FLAG_VERIFY); free(msg); if (name) free(name); diff --git a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.8 b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.8 index ed4f5b4655bc..bdf1327aa325 100644 --- a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.8 +++ b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kpasswdd.8,v 1.4 2017/01/28 21:31:45 christos Exp $ +.\" $NetBSD: kpasswdd.8,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 1997, 2000 - 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.c b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.c index 2e340c15048a..6381ecacc92b 100644 --- a/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.c +++ b/crypto/external/bsd/heimdal/dist/kpasswd/kpasswdd.c @@ -1,4 +1,4 @@ -/* $NetBSD: kpasswdd.c,v 1.4 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: kpasswdd.c,v 1.5 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -34,7 +34,7 @@ */ #include "kpasswd_locl.h" -__RCSID("$NetBSD: kpasswdd.c,v 1.4 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: kpasswdd.c,v 1.5 2023/06/19 21:41:42 christos Exp $"); #include #ifdef HAVE_SYS_UN_H diff --git a/crypto/external/bsd/heimdal/dist/kuser/copy_cred_cache.1 b/crypto/external/bsd/heimdal/dist/kuser/copy_cred_cache.1 index 66350467e730..4f40a2fcf667 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/copy_cred_cache.1 +++ b/crypto/external/bsd/heimdal/dist/kuser/copy_cred_cache.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: copy_cred_cache.1,v 1.4 2017/01/28 21:31:45 christos Exp $ +.\" $NetBSD: copy_cred_cache.1,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kuser/kdestroy.1 b/crypto/external/bsd/heimdal/dist/kuser/kdestroy.1 index f328983b0610..a19947eef4f7 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kdestroy.1 +++ b/crypto/external/bsd/heimdal/dist/kuser/kdestroy.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: kdestroy.1,v 1.5 2017/01/28 21:31:45 christos Exp $ +.\" $NetBSD: kdestroy.1,v 1.6 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 1997, 1999, 2001, 2004, 2006 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kuser/kdestroy.c b/crypto/external/bsd/heimdal/dist/kuser/kdestroy.c index ea2d00e1c756..0ac14e6134ff 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kdestroy.c +++ b/crypto/external/bsd/heimdal/dist/kuser/kdestroy.c @@ -1,4 +1,4 @@ -/* $NetBSD: kdestroy.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: kdestroy.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2000, 2003 Kungliga Tekniska Högskolan @@ -92,7 +92,9 @@ main (int argc, char **argv) } argc -= optidx; +#ifndef __clang_analyzer__ argv += optidx; +#endif if (argc != 0) usage (1); diff --git a/crypto/external/bsd/heimdal/dist/kuser/kgetcred.1 b/crypto/external/bsd/heimdal/dist/kuser/kgetcred.1 index 8cf4ac083dfa..57f190e7f5ff 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kgetcred.1 +++ b/crypto/external/bsd/heimdal/dist/kuser/kgetcred.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: kgetcred.1,v 1.5 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: kgetcred.1,v 1.6 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 1999, 2001 - 2002 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kuser/kgetcred.c b/crypto/external/bsd/heimdal/dist/kuser/kgetcred.c index e5f930797c3c..186be6e53505 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kgetcred.c +++ b/crypto/external/bsd/heimdal/dist/kuser/kgetcred.c @@ -1,4 +1,4 @@ -/* $NetBSD: kgetcred.c,v 1.3 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: kgetcred.c,v 1.4 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -285,6 +285,9 @@ main(int argc, char **argv) ret = krb5_sname_to_principal(context, hname, sname, KRB5_NT_SRV_HST, &server2); + if (ret) + krb5_err(context, 1, ret, "krb5_sname_to_principal %s %s", + sname, hname); sname = krb5_principal_get_comp_string(context, server2, 0); hname = krb5_principal_get_comp_string(context, server2, 1); diff --git a/crypto/external/bsd/heimdal/dist/kuser/kimpersonate.8 b/crypto/external/bsd/heimdal/dist/kuser/kimpersonate.8 index 727572ca764c..f53a865f2d84 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kimpersonate.8 +++ b/crypto/external/bsd/heimdal/dist/kuser/kimpersonate.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: kimpersonate.8,v 1.6 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: kimpersonate.8,v 1.7 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2002 - 2007 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kuser/kinit.1 b/crypto/external/bsd/heimdal/dist/kuser/kinit.1 index 17e0cd19f1bb..79eb0edada27 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kinit.1 +++ b/crypto/external/bsd/heimdal/dist/kuser/kinit.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: kinit.1,v 1.5 2019/12/15 22:50:46 christos Exp $ +.\" $NetBSD: kinit.1,v 1.6 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 1998 - 2003, 2006 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). @@ -168,11 +168,21 @@ in .It Fl A , Fl Fl no-addresses Request a ticket with no addresses. .It Fl n , Fl Fl anonymous -Request an anonymous ticket. If the principal is specified as @REALM, then +Request an anonymous ticket. +With the default (false) setting of the +.Ar historical_anon_pkinit +configuration parameter, if the principal is specified as @REALM, then anonymous PKINIT will be used to acquire an unauthenticated anonymous ticket -and both the client name and realm in the returned ticket will be anonymized. +and both the client name and (with fully RFC-comformant KDCs) realm in the +returned ticket will be anonymized. Otherwise, authentication proceeds as normal and the anonymous ticket will have only the client name anonymized. +With +.Ar historical_anon_pkinit +set to +.Li true , +the principal is interpreted as a realm even without an at-sign prefix, and it +is not possible to obtain authenticated anonymized tickets. .It Fl Fl enterprise Parse principal as a enterprise (KRB5-NT-ENTERPRISE) name. Enterprise names are email like principals that are stored in the name part of diff --git a/crypto/external/bsd/heimdal/dist/kuser/kinit.c b/crypto/external/bsd/heimdal/dist/kuser/kinit.c index 255843179d2b..c7ad4c5ceb25 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kinit.c +++ b/crypto/external/bsd/heimdal/dist/kuser/kinit.c @@ -1,4 +1,4 @@ -/* $NetBSD: kinit.c,v 1.4 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: kinit.c,v 1.5 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan @@ -670,7 +670,7 @@ get_new_tickets(krb5_context context, } } else if (pk_user_id || ent_user_id || krb5_principal_is_anonymous(context, principal, KRB5_ANON_MATCH_ANY)) { - + /* nop */; } else if (!interactive && passwd[0] == '\0') { static int already_warned = 0; @@ -1273,6 +1273,7 @@ main(int argc, char **argv) struct sigaction sa; #endif krb5_boolean unique_ccache = FALSE; + krb5_boolean historical_anon_pkinit = FALSE; int anonymous_pkinit = FALSE; setprogname(argv[0]); @@ -1301,6 +1302,9 @@ main(int argc, char **argv) argc -= optidx; argv += optidx; + krb5_appdefault_boolean(context, "kinit", NULL, "historical_anon_pkinit", + FALSE, &historical_anon_pkinit); + /* * Open the keytab now, we use the keytab to determine the principal's * realm when the requested principal has no realm. @@ -1333,6 +1337,16 @@ main(int argc, char **argv) krb5_err(context, 1, ret, "krb5_make_principal"); krb5_principal_set_type(context, principal, KRB5_NT_WELLKNOWN); anonymous_pkinit = TRUE; + } else if (anonymous_flag && historical_anon_pkinit) { + char *realm = argc == 0 ? get_default_realm(context) : + argv[0][0] == '@' ? &argv[0][1] : argv[0]; + + ret = krb5_make_principal(context, &principal, realm, + KRB5_WELLKNOWN_NAME, KRB5_ANON_NAME, NULL); + if (ret) + krb5_err(context, 1, ret, "krb5_make_principal"); + krb5_principal_set_type(context, principal, KRB5_NT_WELLKNOWN); + anonymous_pkinit = TRUE; } else if (use_keytab || keytab_str) { get_princ_kt(context, &principal, argv[0]); } else { diff --git a/crypto/external/bsd/heimdal/dist/kuser/klist.1 b/crypto/external/bsd/heimdal/dist/kuser/klist.1 index 0211b1c793fb..30a1c8a44ad6 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/klist.1 +++ b/crypto/external/bsd/heimdal/dist/kuser/klist.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: klist.1,v 1.4 2017/01/28 21:31:45 christos Exp $ +.\" $NetBSD: klist.1,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2000 - 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/kuser/klist.c b/crypto/external/bsd/heimdal/dist/kuser/klist.c index f537dc48e045..79dd6b0fc5e8 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/klist.c +++ b/crypto/external/bsd/heimdal/dist/kuser/klist.c @@ -1,4 +1,4 @@ -/* $NetBSD: klist.c,v 1.5 2019/12/15 22:50:46 christos Exp $ */ +/* $NetBSD: klist.c,v 1.6 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/kuser/kswitch.c b/crypto/external/bsd/heimdal/dist/kuser/kswitch.c index 1cd2802cf2ac..fe485afe9f94 100644 --- a/crypto/external/bsd/heimdal/dist/kuser/kswitch.c +++ b/crypto/external/bsd/heimdal/dist/kuser/kswitch.c @@ -1,4 +1,4 @@ -/* $NetBSD: kswitch.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: kswitch.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2008 - 2010 Kungliga Tekniska Högskolan @@ -88,16 +88,17 @@ kswitch(struct kswitch_options *opt, int argc, char **argv) krb5_err(heimtools_context, 1, ret, "krb5_cc_cache_get_first"); while (krb5_cc_cache_next(heimtools_context, cursor, &id) == 0) { - krb5_principal p; + krb5_principal p = NULL; char num[10]; ret = krb5_cc_get_principal(heimtools_context, id, &p); + if (ret == 0) + ret = krb5_unparse_name(heimtools_context, p, &name); if (ret) { krb5_cc_close(heimtools_context, id); continue; } - ret = krb5_unparse_name(heimtools_context, p, &name); krb5_free_principal(heimtools_context, p); snprintf(num, sizeof(num), "%d", (int)(len + 1)); diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.c b/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.c index c6cb5671e08a..6e6e6cd44de2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.c @@ -1,16 +1,16 @@ -/* $NetBSD: asn1parse.c,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: asn1parse.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -38,6 +36,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -45,11 +47,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 -/* Bison version. */ -#define YYBISON_VERSION "2.3" +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -57,107 +59,189 @@ /* Pure parsers. */ #define YYPURE 0 -/* Using locations. */ -#define YYLSP_NEEDED 0 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 -/* Tokens. */ + +/* First part of user prologue. */ +#line 38 "asn1parse.y" + + +#include + +#include +#include +#include +#include +#include "symbol.h" +#include "lex.h" +#include "gen_locl.h" +#include + +static Type *new_type (Typetype t); +static struct constraint_spec *new_constraint_spec(enum ctype); +static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype); +void yyerror (const char *); +static struct objid *new_objid(const char *label, int value); +static void add_oid_to_tail(struct objid *, struct objid *); +static void fix_labels(Symbol *s); + +struct string_list { + char *string; + struct string_list *next; +}; + +static int default_tag_env = TE_EXPLICIT; + +/* Declarations for Bison */ +#define YYMALLOC malloc +#define YYFREE free + + +#line 105 "asn1parse.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_ASN_PARSE_H_INCLUDED +# define YY_YY_ASN_PARSE_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - kw_ABSENT = 258, - kw_ABSTRACT_SYNTAX = 259, - kw_ALL = 260, - kw_APPLICATION = 261, - kw_AUTOMATIC = 262, - kw_BEGIN = 263, - kw_BIT = 264, - kw_BMPString = 265, - kw_BOOLEAN = 266, - kw_BY = 267, - kw_CHARACTER = 268, - kw_CHOICE = 269, - kw_CLASS = 270, - kw_COMPONENT = 271, - kw_COMPONENTS = 272, - kw_CONSTRAINED = 273, - kw_CONTAINING = 274, - kw_DEFAULT = 275, - kw_DEFINITIONS = 276, - kw_EMBEDDED = 277, - kw_ENCODED = 278, - kw_END = 279, - kw_ENUMERATED = 280, - kw_EXCEPT = 281, - kw_EXPLICIT = 282, - kw_EXPORTS = 283, - kw_EXTENSIBILITY = 284, - kw_EXTERNAL = 285, - kw_FALSE = 286, - kw_FROM = 287, - kw_GeneralString = 288, - kw_GeneralizedTime = 289, - kw_GraphicString = 290, - kw_IA5String = 291, - kw_IDENTIFIER = 292, - kw_IMPLICIT = 293, - kw_IMPLIED = 294, - kw_IMPORTS = 295, - kw_INCLUDES = 296, - kw_INSTANCE = 297, - kw_INTEGER = 298, - kw_INTERSECTION = 299, - kw_ISO646String = 300, - kw_MAX = 301, - kw_MIN = 302, - kw_MINUS_INFINITY = 303, - kw_NULL = 304, - kw_NumericString = 305, - kw_OBJECT = 306, - kw_OCTET = 307, - kw_OF = 308, - kw_OPTIONAL = 309, - kw_ObjectDescriptor = 310, - kw_PATTERN = 311, - kw_PDV = 312, - kw_PLUS_INFINITY = 313, - kw_PRESENT = 314, - kw_PRIVATE = 315, - kw_PrintableString = 316, - kw_REAL = 317, - kw_RELATIVE_OID = 318, - kw_SEQUENCE = 319, - kw_SET = 320, - kw_SIZE = 321, - kw_STRING = 322, - kw_SYNTAX = 323, - kw_T61String = 324, - kw_TAGS = 325, - kw_TRUE = 326, - kw_TYPE_IDENTIFIER = 327, - kw_TeletexString = 328, - kw_UNION = 329, - kw_UNIQUE = 330, - kw_UNIVERSAL = 331, - kw_UTCTime = 332, - kw_UTF8String = 333, - kw_UniversalString = 334, - kw_VideotexString = 335, - kw_VisibleString = 336, - kw_WITH = 337, - RANGE = 338, - EEQUAL = 339, - ELLIPSIS = 340, - IDENTIFIER = 341, - referencename = 342, - STRING = 343, - NUMBER = 344 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + kw_ABSENT = 258, /* kw_ABSENT */ + kw_ABSTRACT_SYNTAX = 259, /* kw_ABSTRACT_SYNTAX */ + kw_ALL = 260, /* kw_ALL */ + kw_APPLICATION = 261, /* kw_APPLICATION */ + kw_AUTOMATIC = 262, /* kw_AUTOMATIC */ + kw_BEGIN = 263, /* kw_BEGIN */ + kw_BIT = 264, /* kw_BIT */ + kw_BMPString = 265, /* kw_BMPString */ + kw_BOOLEAN = 266, /* kw_BOOLEAN */ + kw_BY = 267, /* kw_BY */ + kw_CHARACTER = 268, /* kw_CHARACTER */ + kw_CHOICE = 269, /* kw_CHOICE */ + kw_CLASS = 270, /* kw_CLASS */ + kw_COMPONENT = 271, /* kw_COMPONENT */ + kw_COMPONENTS = 272, /* kw_COMPONENTS */ + kw_CONSTRAINED = 273, /* kw_CONSTRAINED */ + kw_CONTAINING = 274, /* kw_CONTAINING */ + kw_DEFAULT = 275, /* kw_DEFAULT */ + kw_DEFINITIONS = 276, /* kw_DEFINITIONS */ + kw_EMBEDDED = 277, /* kw_EMBEDDED */ + kw_ENCODED = 278, /* kw_ENCODED */ + kw_END = 279, /* kw_END */ + kw_ENUMERATED = 280, /* kw_ENUMERATED */ + kw_EXCEPT = 281, /* kw_EXCEPT */ + kw_EXPLICIT = 282, /* kw_EXPLICIT */ + kw_EXPORTS = 283, /* kw_EXPORTS */ + kw_EXTENSIBILITY = 284, /* kw_EXTENSIBILITY */ + kw_EXTERNAL = 285, /* kw_EXTERNAL */ + kw_FALSE = 286, /* kw_FALSE */ + kw_FROM = 287, /* kw_FROM */ + kw_GeneralString = 288, /* kw_GeneralString */ + kw_GeneralizedTime = 289, /* kw_GeneralizedTime */ + kw_GraphicString = 290, /* kw_GraphicString */ + kw_IA5String = 291, /* kw_IA5String */ + kw_IDENTIFIER = 292, /* kw_IDENTIFIER */ + kw_IMPLICIT = 293, /* kw_IMPLICIT */ + kw_IMPLIED = 294, /* kw_IMPLIED */ + kw_IMPORTS = 295, /* kw_IMPORTS */ + kw_INCLUDES = 296, /* kw_INCLUDES */ + kw_INSTANCE = 297, /* kw_INSTANCE */ + kw_INTEGER = 298, /* kw_INTEGER */ + kw_INTERSECTION = 299, /* kw_INTERSECTION */ + kw_ISO646String = 300, /* kw_ISO646String */ + kw_MAX = 301, /* kw_MAX */ + kw_MIN = 302, /* kw_MIN */ + kw_MINUS_INFINITY = 303, /* kw_MINUS_INFINITY */ + kw_NULL = 304, /* kw_NULL */ + kw_NumericString = 305, /* kw_NumericString */ + kw_OBJECT = 306, /* kw_OBJECT */ + kw_OCTET = 307, /* kw_OCTET */ + kw_OF = 308, /* kw_OF */ + kw_OPTIONAL = 309, /* kw_OPTIONAL */ + kw_ObjectDescriptor = 310, /* kw_ObjectDescriptor */ + kw_PATTERN = 311, /* kw_PATTERN */ + kw_PDV = 312, /* kw_PDV */ + kw_PLUS_INFINITY = 313, /* kw_PLUS_INFINITY */ + kw_PRESENT = 314, /* kw_PRESENT */ + kw_PRIVATE = 315, /* kw_PRIVATE */ + kw_PrintableString = 316, /* kw_PrintableString */ + kw_REAL = 317, /* kw_REAL */ + kw_RELATIVE_OID = 318, /* kw_RELATIVE_OID */ + kw_SEQUENCE = 319, /* kw_SEQUENCE */ + kw_SET = 320, /* kw_SET */ + kw_SIZE = 321, /* kw_SIZE */ + kw_STRING = 322, /* kw_STRING */ + kw_SYNTAX = 323, /* kw_SYNTAX */ + kw_T61String = 324, /* kw_T61String */ + kw_TAGS = 325, /* kw_TAGS */ + kw_TRUE = 326, /* kw_TRUE */ + kw_TYPE_IDENTIFIER = 327, /* kw_TYPE_IDENTIFIER */ + kw_TeletexString = 328, /* kw_TeletexString */ + kw_UNION = 329, /* kw_UNION */ + kw_UNIQUE = 330, /* kw_UNIQUE */ + kw_UNIVERSAL = 331, /* kw_UNIVERSAL */ + kw_UTCTime = 332, /* kw_UTCTime */ + kw_UTF8String = 333, /* kw_UTF8String */ + kw_UniversalString = 334, /* kw_UniversalString */ + kw_VideotexString = 335, /* kw_VideotexString */ + kw_VisibleString = 336, /* kw_VisibleString */ + kw_WITH = 337, /* kw_WITH */ + RANGE = 338, /* RANGE */ + EEQUAL = 339, /* EEQUAL */ + ELLIPSIS = 340, /* ELLIPSIS */ + IDENTIFIER = 341, /* IDENTIFIER */ + referencename = 342, /* referencename */ + STRING = 343, /* STRING */ + NUMBER = 344 /* NUMBER */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define kw_ABSENT 258 #define kw_ABSTRACT_SYNTAX 259 #define kw_ALL 260 @@ -246,67 +330,12 @@ #define STRING 343 #define NUMBER 344 - - - -/* Copy the first part of user declarations. */ -#line 38 "asn1parse.y" - - -#include - -#include -#include -#include -#include -#include "symbol.h" -#include "lex.h" -#include "gen_locl.h" -#include - -static Type *new_type (Typetype t); -static struct constraint_spec *new_constraint_spec(enum ctype); -static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype); -void yyerror (const char *); -static struct objid *new_objid(const char *label, int value); -static void add_oid_to_tail(struct objid *, struct objid *); -static void fix_labels(Symbol *s); - -struct string_list { - char *string; - struct string_list *next; -}; - -static int default_tag_env = TE_EXPLICIT; - -/* Declarations for Bison */ -#define YYMALLOC malloc -#define YYFREE free - - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 72 "asn1parse.y" +union YYSTYPE { +#line 72 "asn1parse.y" + int64_t constant; struct value *value; struct range *range; @@ -319,52 +348,285 @@ typedef union YYSTYPE struct tagtype tag; struct memhead *members; struct constraint_spec *constraint_spec; -} -/* Line 193 of yacc.c. */ -#line 323 "asn1parse.c" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 351 "asn1parse.c" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif - -/* Copy the second part of user declarations. */ +extern YYSTYPE yylval; + + +int yyparse (void); + + +#endif /* !YY_YY_ASN_PARSE_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_kw_ABSENT = 3, /* kw_ABSENT */ + YYSYMBOL_kw_ABSTRACT_SYNTAX = 4, /* kw_ABSTRACT_SYNTAX */ + YYSYMBOL_kw_ALL = 5, /* kw_ALL */ + YYSYMBOL_kw_APPLICATION = 6, /* kw_APPLICATION */ + YYSYMBOL_kw_AUTOMATIC = 7, /* kw_AUTOMATIC */ + YYSYMBOL_kw_BEGIN = 8, /* kw_BEGIN */ + YYSYMBOL_kw_BIT = 9, /* kw_BIT */ + YYSYMBOL_kw_BMPString = 10, /* kw_BMPString */ + YYSYMBOL_kw_BOOLEAN = 11, /* kw_BOOLEAN */ + YYSYMBOL_kw_BY = 12, /* kw_BY */ + YYSYMBOL_kw_CHARACTER = 13, /* kw_CHARACTER */ + YYSYMBOL_kw_CHOICE = 14, /* kw_CHOICE */ + YYSYMBOL_kw_CLASS = 15, /* kw_CLASS */ + YYSYMBOL_kw_COMPONENT = 16, /* kw_COMPONENT */ + YYSYMBOL_kw_COMPONENTS = 17, /* kw_COMPONENTS */ + YYSYMBOL_kw_CONSTRAINED = 18, /* kw_CONSTRAINED */ + YYSYMBOL_kw_CONTAINING = 19, /* kw_CONTAINING */ + YYSYMBOL_kw_DEFAULT = 20, /* kw_DEFAULT */ + YYSYMBOL_kw_DEFINITIONS = 21, /* kw_DEFINITIONS */ + YYSYMBOL_kw_EMBEDDED = 22, /* kw_EMBEDDED */ + YYSYMBOL_kw_ENCODED = 23, /* kw_ENCODED */ + YYSYMBOL_kw_END = 24, /* kw_END */ + YYSYMBOL_kw_ENUMERATED = 25, /* kw_ENUMERATED */ + YYSYMBOL_kw_EXCEPT = 26, /* kw_EXCEPT */ + YYSYMBOL_kw_EXPLICIT = 27, /* kw_EXPLICIT */ + YYSYMBOL_kw_EXPORTS = 28, /* kw_EXPORTS */ + YYSYMBOL_kw_EXTENSIBILITY = 29, /* kw_EXTENSIBILITY */ + YYSYMBOL_kw_EXTERNAL = 30, /* kw_EXTERNAL */ + YYSYMBOL_kw_FALSE = 31, /* kw_FALSE */ + YYSYMBOL_kw_FROM = 32, /* kw_FROM */ + YYSYMBOL_kw_GeneralString = 33, /* kw_GeneralString */ + YYSYMBOL_kw_GeneralizedTime = 34, /* kw_GeneralizedTime */ + YYSYMBOL_kw_GraphicString = 35, /* kw_GraphicString */ + YYSYMBOL_kw_IA5String = 36, /* kw_IA5String */ + YYSYMBOL_kw_IDENTIFIER = 37, /* kw_IDENTIFIER */ + YYSYMBOL_kw_IMPLICIT = 38, /* kw_IMPLICIT */ + YYSYMBOL_kw_IMPLIED = 39, /* kw_IMPLIED */ + YYSYMBOL_kw_IMPORTS = 40, /* kw_IMPORTS */ + YYSYMBOL_kw_INCLUDES = 41, /* kw_INCLUDES */ + YYSYMBOL_kw_INSTANCE = 42, /* kw_INSTANCE */ + YYSYMBOL_kw_INTEGER = 43, /* kw_INTEGER */ + YYSYMBOL_kw_INTERSECTION = 44, /* kw_INTERSECTION */ + YYSYMBOL_kw_ISO646String = 45, /* kw_ISO646String */ + YYSYMBOL_kw_MAX = 46, /* kw_MAX */ + YYSYMBOL_kw_MIN = 47, /* kw_MIN */ + YYSYMBOL_kw_MINUS_INFINITY = 48, /* kw_MINUS_INFINITY */ + YYSYMBOL_kw_NULL = 49, /* kw_NULL */ + YYSYMBOL_kw_NumericString = 50, /* kw_NumericString */ + YYSYMBOL_kw_OBJECT = 51, /* kw_OBJECT */ + YYSYMBOL_kw_OCTET = 52, /* kw_OCTET */ + YYSYMBOL_kw_OF = 53, /* kw_OF */ + YYSYMBOL_kw_OPTIONAL = 54, /* kw_OPTIONAL */ + YYSYMBOL_kw_ObjectDescriptor = 55, /* kw_ObjectDescriptor */ + YYSYMBOL_kw_PATTERN = 56, /* kw_PATTERN */ + YYSYMBOL_kw_PDV = 57, /* kw_PDV */ + YYSYMBOL_kw_PLUS_INFINITY = 58, /* kw_PLUS_INFINITY */ + YYSYMBOL_kw_PRESENT = 59, /* kw_PRESENT */ + YYSYMBOL_kw_PRIVATE = 60, /* kw_PRIVATE */ + YYSYMBOL_kw_PrintableString = 61, /* kw_PrintableString */ + YYSYMBOL_kw_REAL = 62, /* kw_REAL */ + YYSYMBOL_kw_RELATIVE_OID = 63, /* kw_RELATIVE_OID */ + YYSYMBOL_kw_SEQUENCE = 64, /* kw_SEQUENCE */ + YYSYMBOL_kw_SET = 65, /* kw_SET */ + YYSYMBOL_kw_SIZE = 66, /* kw_SIZE */ + YYSYMBOL_kw_STRING = 67, /* kw_STRING */ + YYSYMBOL_kw_SYNTAX = 68, /* kw_SYNTAX */ + YYSYMBOL_kw_T61String = 69, /* kw_T61String */ + YYSYMBOL_kw_TAGS = 70, /* kw_TAGS */ + YYSYMBOL_kw_TRUE = 71, /* kw_TRUE */ + YYSYMBOL_kw_TYPE_IDENTIFIER = 72, /* kw_TYPE_IDENTIFIER */ + YYSYMBOL_kw_TeletexString = 73, /* kw_TeletexString */ + YYSYMBOL_kw_UNION = 74, /* kw_UNION */ + YYSYMBOL_kw_UNIQUE = 75, /* kw_UNIQUE */ + YYSYMBOL_kw_UNIVERSAL = 76, /* kw_UNIVERSAL */ + YYSYMBOL_kw_UTCTime = 77, /* kw_UTCTime */ + YYSYMBOL_kw_UTF8String = 78, /* kw_UTF8String */ + YYSYMBOL_kw_UniversalString = 79, /* kw_UniversalString */ + YYSYMBOL_kw_VideotexString = 80, /* kw_VideotexString */ + YYSYMBOL_kw_VisibleString = 81, /* kw_VisibleString */ + YYSYMBOL_kw_WITH = 82, /* kw_WITH */ + YYSYMBOL_RANGE = 83, /* RANGE */ + YYSYMBOL_EEQUAL = 84, /* EEQUAL */ + YYSYMBOL_ELLIPSIS = 85, /* ELLIPSIS */ + YYSYMBOL_IDENTIFIER = 86, /* IDENTIFIER */ + YYSYMBOL_referencename = 87, /* referencename */ + YYSYMBOL_STRING = 88, /* STRING */ + YYSYMBOL_NUMBER = 89, /* NUMBER */ + YYSYMBOL_90_ = 90, /* ';' */ + YYSYMBOL_91_ = 91, /* ',' */ + YYSYMBOL_92_ = 92, /* '(' */ + YYSYMBOL_93_ = 93, /* ')' */ + YYSYMBOL_94_ = 94, /* '{' */ + YYSYMBOL_95_ = 95, /* '}' */ + YYSYMBOL_96_ = 96, /* '[' */ + YYSYMBOL_97_ = 97, /* ']' */ + YYSYMBOL_YYACCEPT = 98, /* $accept */ + YYSYMBOL_ModuleDefinition = 99, /* ModuleDefinition */ + YYSYMBOL_TagDefault = 100, /* TagDefault */ + YYSYMBOL_ExtensionDefault = 101, /* ExtensionDefault */ + YYSYMBOL_ModuleBody = 102, /* ModuleBody */ + YYSYMBOL_Imports = 103, /* Imports */ + YYSYMBOL_SymbolsImported = 104, /* SymbolsImported */ + YYSYMBOL_SymbolsFromModuleList = 105, /* SymbolsFromModuleList */ + YYSYMBOL_SymbolsFromModule = 106, /* SymbolsFromModule */ + YYSYMBOL_Exports = 107, /* Exports */ + YYSYMBOL_AssignmentList = 108, /* AssignmentList */ + YYSYMBOL_Assignment = 109, /* Assignment */ + YYSYMBOL_referencenames = 110, /* referencenames */ + YYSYMBOL_TypeAssignment = 111, /* TypeAssignment */ + YYSYMBOL_Type = 112, /* Type */ + YYSYMBOL_BuiltinType = 113, /* BuiltinType */ + YYSYMBOL_BooleanType = 114, /* BooleanType */ + YYSYMBOL_range = 115, /* range */ + YYSYMBOL_IntegerType = 116, /* IntegerType */ + YYSYMBOL_NamedNumberList = 117, /* NamedNumberList */ + YYSYMBOL_NamedNumber = 118, /* NamedNumber */ + YYSYMBOL_EnumeratedType = 119, /* EnumeratedType */ + YYSYMBOL_Enumerations = 120, /* Enumerations */ + YYSYMBOL_BitStringType = 121, /* BitStringType */ + YYSYMBOL_ObjectIdentifierType = 122, /* ObjectIdentifierType */ + YYSYMBOL_OctetStringType = 123, /* OctetStringType */ + YYSYMBOL_NullType = 124, /* NullType */ + YYSYMBOL_size = 125, /* size */ + YYSYMBOL_SequenceType = 126, /* SequenceType */ + YYSYMBOL_SequenceOfType = 127, /* SequenceOfType */ + YYSYMBOL_SetType = 128, /* SetType */ + YYSYMBOL_SetOfType = 129, /* SetOfType */ + YYSYMBOL_ChoiceType = 130, /* ChoiceType */ + YYSYMBOL_ReferencedType = 131, /* ReferencedType */ + YYSYMBOL_DefinedType = 132, /* DefinedType */ + YYSYMBOL_UsefulType = 133, /* UsefulType */ + YYSYMBOL_ConstrainedType = 134, /* ConstrainedType */ + YYSYMBOL_Constraint = 135, /* Constraint */ + YYSYMBOL_ConstraintSpec = 136, /* ConstraintSpec */ + YYSYMBOL_GeneralConstraint = 137, /* GeneralConstraint */ + YYSYMBOL_ContentsConstraint = 138, /* ContentsConstraint */ + YYSYMBOL_UserDefinedConstraint = 139, /* UserDefinedConstraint */ + YYSYMBOL_TaggedType = 140, /* TaggedType */ + YYSYMBOL_Tag = 141, /* Tag */ + YYSYMBOL_Class = 142, /* Class */ + YYSYMBOL_tagenv = 143, /* tagenv */ + YYSYMBOL_ValueAssignment = 144, /* ValueAssignment */ + YYSYMBOL_CharacterStringType = 145, /* CharacterStringType */ + YYSYMBOL_RestrictedCharactedStringType = 146, /* RestrictedCharactedStringType */ + YYSYMBOL_ComponentTypeList = 147, /* ComponentTypeList */ + YYSYMBOL_NamedType = 148, /* NamedType */ + YYSYMBOL_ComponentType = 149, /* ComponentType */ + YYSYMBOL_NamedBitList = 150, /* NamedBitList */ + YYSYMBOL_NamedBit = 151, /* NamedBit */ + YYSYMBOL_objid_opt = 152, /* objid_opt */ + YYSYMBOL_objid = 153, /* objid */ + YYSYMBOL_objid_list = 154, /* objid_list */ + YYSYMBOL_objid_element = 155, /* objid_element */ + YYSYMBOL_Value = 156, /* Value */ + YYSYMBOL_BuiltinValue = 157, /* BuiltinValue */ + YYSYMBOL_ReferencedValue = 158, /* ReferencedValue */ + YYSYMBOL_DefinedValue = 159, /* DefinedValue */ + YYSYMBOL_Valuereference = 160, /* Valuereference */ + YYSYMBOL_CharacterStringValue = 161, /* CharacterStringValue */ + YYSYMBOL_BooleanValue = 162, /* BooleanValue */ + YYSYMBOL_IntegerValue = 163, /* IntegerValue */ + YYSYMBOL_SignedNumber = 164, /* SignedNumber */ + YYSYMBOL_NullValue = 165, /* NullValue */ + YYSYMBOL_ObjectIdentifierValue = 166 /* ObjectIdentifierValue */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + -/* Line 216 of yacc.c. */ -#line 336 "asn1parse.c" #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else typedef signed char yytype_int8; -#else -typedef short int yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short int yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -372,55 +634,106 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_uint8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YY_USE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return i; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if ! defined yyoverflow || YYERROR_VERBOSE +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -437,11 +750,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -449,8 +762,8 @@ YYID (i) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -464,88 +777,89 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 6 /* YYLAST -- Last index in YYTABLE. */ @@ -557,18 +871,23 @@ union yyalloc #define YYNNTS 69 /* YYNRULES -- Number of rules. */ #define YYNRULES 140 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 220 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 344 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -608,74 +927,8 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 13, 16, 19, 22, 23, 26, 27, - 31, 32, 36, 37, 39, 40, 42, 45, 50, 54, - 57, 58, 60, 63, 65, 67, 71, 73, 77, 79, - 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, - 101, 103, 105, 107, 109, 111, 113, 119, 125, 131, - 135, 137, 140, 145, 147, 151, 155, 160, 165, 167, - 170, 176, 179, 183, 185, 186, 189, 194, 198, 203, - 208, 212, 216, 221, 223, 225, 227, 229, 231, 234, - 238, 240, 242, 244, 247, 251, 257, 262, 266, 271, - 272, 274, 276, 278, 279, 281, 283, 288, 290, 292, - 294, 296, 298, 300, 302, 304, 306, 308, 312, 316, - 319, 321, 324, 328, 330, 334, 339, 341, 342, 346, - 347, 350, 355, 357, 359, 361, 363, 365, 367, 369, - 371, 373, 375, 377, 379, 381, 383, 385, 387, 389, - 391 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 99, 0, -1, 86, 152, 21, 100, 101, 84, 8, - 102, 24, -1, 27, 70, -1, 38, 70, -1, 7, - 70, -1, -1, 29, 39, -1, -1, 107, 103, 108, - -1, -1, 40, 104, 90, -1, -1, 105, -1, -1, - 106, -1, 105, 106, -1, 110, 32, 86, 152, -1, - 28, 110, 90, -1, 28, 5, -1, -1, 109, -1, - 109, 108, -1, 111, -1, 144, -1, 86, 91, 110, - -1, 86, -1, 86, 84, 112, -1, 113, -1, 131, - -1, 134, -1, 121, -1, 114, -1, 145, -1, 130, - -1, 119, -1, 116, -1, 124, -1, 122, -1, 123, - -1, 126, -1, 127, -1, 128, -1, 129, -1, 140, - -1, 11, -1, 92, 156, 83, 156, 93, -1, 92, - 156, 83, 46, 93, -1, 92, 47, 83, 156, 93, - -1, 92, 156, 93, -1, 43, -1, 43, 115, -1, - 43, 94, 117, 95, -1, 118, -1, 117, 91, 118, - -1, 117, 91, 85, -1, 86, 92, 164, 93, -1, - 25, 94, 120, 95, -1, 117, -1, 9, 67, -1, - 9, 67, 94, 150, 95, -1, 51, 37, -1, 52, - 67, 125, -1, 49, -1, -1, 66, 115, -1, 64, - 94, 147, 95, -1, 64, 94, 95, -1, 64, 125, - 53, 112, -1, 65, 94, 147, 95, -1, 65, 94, - 95, -1, 65, 53, 112, -1, 14, 94, 147, 95, - -1, 132, -1, 133, -1, 86, -1, 34, -1, 77, - -1, 112, 135, -1, 92, 136, 93, -1, 137, -1, - 138, -1, 139, -1, 19, 112, -1, 23, 12, 156, - -1, 19, 112, 23, 12, 156, -1, 18, 12, 94, - 95, -1, 141, 143, 112, -1, 96, 142, 89, 97, - -1, -1, 76, -1, 6, -1, 60, -1, -1, 27, - -1, 38, -1, 86, 112, 84, 156, -1, 146, -1, - 33, -1, 73, -1, 78, -1, 61, -1, 81, -1, - 36, -1, 10, -1, 79, -1, 149, -1, 147, 91, - 149, -1, 147, 91, 85, -1, 86, 112, -1, 148, - -1, 148, 54, -1, 148, 20, 156, -1, 151, -1, - 150, 91, 151, -1, 86, 92, 89, 93, -1, 153, - -1, -1, 94, 154, 95, -1, -1, 155, 154, -1, - 86, 92, 89, 93, -1, 86, -1, 89, -1, 157, - -1, 158, -1, 162, -1, 161, -1, 163, -1, 166, - -1, 165, -1, 159, -1, 160, -1, 86, -1, 88, - -1, 71, -1, 31, -1, 164, -1, 89, -1, 49, - -1, 153, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = { 0, 240, 240, 247, 249, 251, 253, 256, 258, 261, 262, 265, 266, 269, 270, 273, 274, 277, 289, 295, @@ -695,21 +948,28 @@ static const yytype_uint16 yyrline[] = }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "kw_ABSENT", "kw_ABSTRACT_SYNTAX", - "kw_ALL", "kw_APPLICATION", "kw_AUTOMATIC", "kw_BEGIN", "kw_BIT", - "kw_BMPString", "kw_BOOLEAN", "kw_BY", "kw_CHARACTER", "kw_CHOICE", - "kw_CLASS", "kw_COMPONENT", "kw_COMPONENTS", "kw_CONSTRAINED", - "kw_CONTAINING", "kw_DEFAULT", "kw_DEFINITIONS", "kw_EMBEDDED", - "kw_ENCODED", "kw_END", "kw_ENUMERATED", "kw_EXCEPT", "kw_EXPLICIT", - "kw_EXPORTS", "kw_EXTENSIBILITY", "kw_EXTERNAL", "kw_FALSE", "kw_FROM", - "kw_GeneralString", "kw_GeneralizedTime", "kw_GraphicString", - "kw_IA5String", "kw_IDENTIFIER", "kw_IMPLICIT", "kw_IMPLIED", - "kw_IMPORTS", "kw_INCLUDES", "kw_INSTANCE", "kw_INTEGER", + "\"end of file\"", "error", "\"invalid token\"", "kw_ABSENT", + "kw_ABSTRACT_SYNTAX", "kw_ALL", "kw_APPLICATION", "kw_AUTOMATIC", + "kw_BEGIN", "kw_BIT", "kw_BMPString", "kw_BOOLEAN", "kw_BY", + "kw_CHARACTER", "kw_CHOICE", "kw_CLASS", "kw_COMPONENT", "kw_COMPONENTS", + "kw_CONSTRAINED", "kw_CONTAINING", "kw_DEFAULT", "kw_DEFINITIONS", + "kw_EMBEDDED", "kw_ENCODED", "kw_END", "kw_ENUMERATED", "kw_EXCEPT", + "kw_EXPLICIT", "kw_EXPORTS", "kw_EXTENSIBILITY", "kw_EXTERNAL", + "kw_FALSE", "kw_FROM", "kw_GeneralString", "kw_GeneralizedTime", + "kw_GraphicString", "kw_IA5String", "kw_IDENTIFIER", "kw_IMPLICIT", + "kw_IMPLIED", "kw_IMPORTS", "kw_INCLUDES", "kw_INSTANCE", "kw_INTEGER", "kw_INTERSECTION", "kw_ISO646String", "kw_MAX", "kw_MIN", "kw_MINUS_INFINITY", "kw_NULL", "kw_NumericString", "kw_OBJECT", "kw_OCTET", "kw_OF", "kw_OPTIONAL", "kw_ObjectDescriptor", "kw_PATTERN", @@ -738,70 +998,56 @@ static const char *const yytname[] = "objid_list", "objid_element", "Value", "BuiltinValue", "ReferencedValue", "DefinedValue", "Valuereference", "CharacterStringValue", "BooleanValue", "IntegerValue", "SignedNumber", - "NullValue", "ObjectIdentifierValue", 0 + "NullValue", "ObjectIdentifierValue", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 59, 44, 40, 41, 123, 125, 91, 93 -}; -# endif +#define YYPACT_NINF (-119) -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-11) + +#define yytable_value_is_error(Yyn) \ + 0 + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 98, 99, 100, 100, 100, 100, 101, 101, 102, - 102, 103, 103, 104, 104, 105, 105, 106, 107, 107, - 107, 108, 108, 109, 109, 110, 110, 111, 112, 112, - 112, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 114, 115, 115, 115, 115, - 116, 116, 116, 117, 117, 117, 118, 119, 120, 121, - 121, 122, 123, 124, 125, 125, 126, 126, 127, 128, - 128, 129, 130, 131, 131, 132, 133, 133, 134, 135, - 136, 137, 137, 138, 138, 138, 139, 140, 141, 142, - 142, 142, 142, 143, 143, 143, 144, 145, 146, 146, - 146, 146, 146, 146, 146, 146, 147, 147, 147, 148, - 149, 149, 149, 150, 150, 151, 152, 152, 153, 154, - 154, 155, 155, 155, 156, 156, 157, 157, 157, 157, - 157, 158, 159, 160, 161, 162, 162, 163, 164, 165, - 166 + -43, -56, 47, -65, 29, -119, -119, -31, -119, -25, + -65, 4, -1, -119, -119, 17, 20, 26, 50, 13, + -119, -119, -119, 63, 24, -119, -119, 104, 8, -2, + 89, 74, -119, 33, 25, -119, 34, 39, 34, -119, + 37, 34, -119, 98, 58, -119, 39, -119, -119, -119, + -119, -119, 52, 66, -119, -119, 51, 53, -119, -119, + -119, -79, -119, 109, 81, -119, -60, -48, -119, -119, + -119, -119, -119, 107, -119, 2, -74, -119, -119, -119, + -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -119, -119, -18, -119, -119, -119, -56, + 55, 65, 67, -12, 67, -119, -119, 86, 68, -70, + 102, 107, -69, 69, -119, -119, -119, 73, 40, 10, + -119, -119, -119, 107, -119, 71, 107, -47, -13, -119, + 72, 75, -119, 70, -119, 80, -119, -119, -119, -119, + -119, -119, -71, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -46, -119, -119, -119, -39, 107, 69, + -119, -38, 76, -119, 155, 107, 157, 77, -119, -119, + -119, 69, 82, -10, -119, 69, -22, -119, 40, -119, + 87, 19, -119, 40, 9, -119, -119, -119, 69, -119, + -119, 83, -19, 40, -119, 90, 71, -119, -119, -119, + -119, 85, -119, -119, 88, 94, 96, 95, 163, -119, + 99, -119, -119, -119, -119, -119, -119, 40, -119, -119 }; -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 9, 2, 2, 2, 0, 2, 0, 3, - 0, 3, 0, 1, 0, 1, 2, 4, 3, 2, - 0, 1, 2, 1, 1, 3, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 5, 5, 5, 3, - 1, 2, 4, 1, 3, 3, 4, 4, 1, 2, - 5, 2, 3, 1, 0, 2, 4, 3, 4, 4, - 3, 3, 4, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 2, 3, 5, 4, 3, 4, 0, - 1, 1, 1, 0, 1, 1, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, - 1, 2, 3, 1, 3, 4, 1, 0, 3, 0, - 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1 -}; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { @@ -829,47 +1075,6 @@ static const yytype_uint8 yydefact[] = 0, 114, 56, 48, 47, 46, 86, 0, 115, 85 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 2, 18, 24, 30, 37, 40, 41, 42, 31, - 45, 46, 43, 47, 76, 77, 78, 105, 79, 131, - 132, 80, 133, 81, 82, 83, 84, 110, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 120, 167, 168, - 169, 170, 94, 95, 117, 123, 48, 96, 97, 127, - 128, 129, 173, 174, 4, 141, 9, 10, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -119 -static const yytype_int16 yypact[] = -{ - -43, -56, 47, -65, 29, -119, -119, -31, -119, -25, - -65, 4, -1, -119, -119, 17, 20, 26, 50, 13, - -119, -119, -119, 63, 24, -119, -119, 104, 8, -2, - 89, 74, -119, 33, 25, -119, 34, 39, 34, -119, - 37, 34, -119, 98, 58, -119, 39, -119, -119, -119, - -119, -119, 52, 66, -119, -119, 51, 53, -119, -119, - -119, -79, -119, 109, 81, -119, -60, -48, -119, -119, - -119, -119, -119, 107, -119, 2, -74, -119, -119, -119, - -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, - -119, -119, -119, -119, -119, -18, -119, -119, -119, -56, - 55, 65, 67, -12, 67, -119, -119, 86, 68, -70, - 102, 107, -69, 69, -119, -119, -119, 73, 40, 10, - -119, -119, -119, 107, -119, 71, 107, -47, -13, -119, - 72, 75, -119, 70, -119, 80, -119, -119, -119, -119, - -119, -119, -71, -119, -119, -119, -119, -119, -119, -119, - -119, -119, -119, -46, -119, -119, -119, -39, 107, 69, - -119, -38, 76, -119, 155, 107, 157, 77, -119, -119, - -119, 69, 82, -10, -119, 69, -22, -119, 40, -119, - 87, 19, -119, 40, 9, -119, -119, -119, 69, -119, - -119, 83, -19, 40, -119, 90, 71, -119, -119, -119, - -119, 85, -119, -119, 88, 94, 96, 95, 163, -119, - 99, -119, -119, -119, -119, -119, -119, 40, -119, -119 -}; - /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { @@ -882,11 +1087,21 @@ static const yytype_int16 yypgoto[] = -119, -119, -119, -119, -119, -119, 22, -119, -119 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -11 +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_uint8 yydefgoto[] = +{ + 0, 2, 18, 24, 30, 37, 40, 41, 42, 31, + 45, 46, 43, 47, 76, 77, 78, 105, 79, 131, + 132, 80, 133, 81, 82, 83, 84, 110, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 120, 167, 168, + 169, 170, 94, 95, 117, 123, 48, 96, 97, 127, + 128, 129, 173, 174, 4, 141, 9, 10, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 163, 113, 5, 32, 208, 111, 108, 178, 114, 121, @@ -937,8 +1152,8 @@ static const yytype_int16 yycheck[] = 99, 196, 180, 96 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 86, 99, 94, 152, 153, 0, 86, 89, 154, @@ -965,95 +1180,81 @@ static const yytype_uint8 yystos[] = 89, 151, 93, 93, 93, 93, 95, 12, 93, 156 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_uint8 yyr1[] = +{ + 0, 98, 99, 100, 100, 100, 100, 101, 101, 102, + 102, 103, 103, 104, 104, 105, 105, 106, 107, 107, + 107, 108, 108, 109, 109, 110, 110, 111, 112, 112, + 112, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 114, 115, 115, 115, 115, + 116, 116, 116, 117, 117, 117, 118, 119, 120, 121, + 121, 122, 123, 124, 125, 125, 126, 126, 127, 128, + 128, 129, 130, 131, 131, 132, 133, 133, 134, 135, + 136, 137, 137, 138, 138, 138, 139, 140, 141, 142, + 142, 142, 142, 143, 143, 143, 144, 145, 146, 146, + 146, 146, 146, 146, 146, 146, 147, 147, 147, 148, + 149, 149, 149, 150, 150, 151, 152, 152, 153, 154, + 154, 155, 155, 155, 156, 156, 157, 157, 157, 157, + 157, 158, 159, 160, 161, 162, 162, 163, 164, 165, + 166 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 9, 2, 2, 2, 0, 2, 0, 3, + 0, 3, 0, 1, 0, 1, 2, 4, 3, 2, + 0, 1, 2, 1, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 5, 5, 5, 3, + 1, 2, 4, 1, 3, 3, 4, 4, 1, 2, + 5, 2, 3, 1, 0, 2, 4, 3, 4, 4, + 3, 3, 4, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 2, 3, 5, 4, 3, 4, 0, + 1, 1, 1, 0, 1, 1, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, + 1, 2, 3, 1, 3, 4, 1, 0, 3, 0, + 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab -#define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -1063,80 +1264,58 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { + FILE *yyoutput = yyo; + YY_USE (yyoutput); if (!yyvaluep) return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -1144,80 +1323,68 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -1232,478 +1399,219 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); - + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* Lookahead token kind. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; + /*----------. | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { - - int yystate; + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; + + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + int yyn; + /* The return value of yyparse. */ int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; + yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1718,30 +1626,26 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1756,14 +1660,14 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -1776,241 +1680,267 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: + case 2: /* ModuleDefinition: IDENTIFIER objid_opt kw_DEFINITIONS TagDefault ExtensionDefault EEQUAL kw_BEGIN ModuleBody kw_END */ #line 242 "asn1parse.y" - { + { checkundefined(); } +#line 1687 "asn1parse.c" break; - case 3: + case 3: /* TagDefault: kw_EXPLICIT kw_TAGS */ #line 248 "asn1parse.y" - { default_tag_env = TE_EXPLICIT; } + { default_tag_env = TE_EXPLICIT; } +#line 1693 "asn1parse.c" break; - case 4: + case 4: /* TagDefault: kw_IMPLICIT kw_TAGS */ #line 250 "asn1parse.y" - { default_tag_env = TE_IMPLICIT; } + { default_tag_env = TE_IMPLICIT; } +#line 1699 "asn1parse.c" break; - case 5: + case 5: /* TagDefault: kw_AUTOMATIC kw_TAGS */ #line 252 "asn1parse.y" - { lex_error_message("automatic tagging is not supported"); } + { lex_error_message("automatic tagging is not supported"); } +#line 1705 "asn1parse.c" break; - case 7: + case 7: /* ExtensionDefault: kw_EXTENSIBILITY kw_IMPLIED */ #line 257 "asn1parse.y" - { lex_error_message("no extensibility options supported"); } + { lex_error_message("no extensibility options supported"); } +#line 1711 "asn1parse.c" break; - case 17: + case 17: /* SymbolsFromModule: referencenames kw_FROM IDENTIFIER objid_opt */ #line 278 "asn1parse.y" - { + { struct string_list *sl; - for(sl = (yyvsp[(1) - (4)].sl); sl != NULL; sl = sl->next) { + for(sl = (yyvsp[-3].sl); sl != NULL; sl = sl->next) { Symbol *s = addsym(sl->string); s->stype = Stype; gen_template_import(s); } - add_import((yyvsp[(3) - (4)].name)); + add_import((yyvsp[-1].name)); } +#line 1725 "asn1parse.c" break; - case 18: + case 18: /* Exports: kw_EXPORTS referencenames ';' */ #line 290 "asn1parse.y" - { + { struct string_list *sl; - for(sl = (yyvsp[(2) - (3)].sl); sl != NULL; sl = sl->next) + for(sl = (yyvsp[-1].sl); sl != NULL; sl = sl->next) add_export(sl->string); } +#line 1735 "asn1parse.c" break; - case 25: + case 25: /* referencenames: IDENTIFIER ',' referencenames */ #line 308 "asn1parse.y" - { + { (yyval.sl) = emalloc(sizeof(*(yyval.sl))); - (yyval.sl)->string = (yyvsp[(1) - (3)].name); - (yyval.sl)->next = (yyvsp[(3) - (3)].sl); + (yyval.sl)->string = (yyvsp[-2].name); + (yyval.sl)->next = (yyvsp[0].sl); } +#line 1745 "asn1parse.c" break; - case 26: + case 26: /* referencenames: IDENTIFIER */ #line 314 "asn1parse.y" - { + { (yyval.sl) = emalloc(sizeof(*(yyval.sl))); - (yyval.sl)->string = (yyvsp[(1) - (1)].name); + (yyval.sl)->string = (yyvsp[0].name); (yyval.sl)->next = NULL; } +#line 1755 "asn1parse.c" break; - case 27: + case 27: /* TypeAssignment: IDENTIFIER EEQUAL Type */ #line 322 "asn1parse.y" - { - Symbol *s = addsym ((yyvsp[(1) - (3)].name)); + { + Symbol *s = addsym ((yyvsp[-2].name)); s->stype = Stype; - s->type = (yyvsp[(3) - (3)].type); + s->type = (yyvsp[0].type); fix_labels(s); generate_type (s); } +#line 1767 "asn1parse.c" break; - case 45: + case 45: /* BooleanType: kw_BOOLEAN */ #line 353 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_Boolean, TE_EXPLICIT, new_type(TBoolean)); } +#line 1776 "asn1parse.c" break; - case 46: + case 46: /* range: '(' Value RANGE Value ')' */ #line 360 "asn1parse.y" - { - if((yyvsp[(2) - (5)].value)->type != integervalue) + { + if((yyvsp[-3].value)->type != integervalue) lex_error_message("Non-integer used in first part of range"); - if((yyvsp[(2) - (5)].value)->type != integervalue) + if((yyvsp[-3].value)->type != integervalue) lex_error_message("Non-integer in second part of range"); (yyval.range) = ecalloc(1, sizeof(*(yyval.range))); - (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue; - (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue; + (yyval.range)->min = (yyvsp[-3].value)->u.integervalue; + (yyval.range)->max = (yyvsp[-1].value)->u.integervalue; } +#line 1790 "asn1parse.c" break; - case 47: + case 47: /* range: '(' Value RANGE kw_MAX ')' */ #line 370 "asn1parse.y" - { - if((yyvsp[(2) - (5)].value)->type != integervalue) + { + if((yyvsp[-3].value)->type != integervalue) lex_error_message("Non-integer in first part of range"); (yyval.range) = ecalloc(1, sizeof(*(yyval.range))); - (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue; + (yyval.range)->min = (yyvsp[-3].value)->u.integervalue; (yyval.range)->max = INT_MAX; } +#line 1802 "asn1parse.c" break; - case 48: + case 48: /* range: '(' kw_MIN RANGE Value ')' */ #line 378 "asn1parse.y" - { - if((yyvsp[(4) - (5)].value)->type != integervalue) + { + if((yyvsp[-1].value)->type != integervalue) lex_error_message("Non-integer in second part of range"); (yyval.range) = ecalloc(1, sizeof(*(yyval.range))); (yyval.range)->min = INT_MIN; - (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue; + (yyval.range)->max = (yyvsp[-1].value)->u.integervalue; } +#line 1814 "asn1parse.c" break; - case 49: + case 49: /* range: '(' Value ')' */ #line 386 "asn1parse.y" - { - if((yyvsp[(2) - (3)].value)->type != integervalue) + { + if((yyvsp[-1].value)->type != integervalue) lex_error_message("Non-integer used in limit"); (yyval.range) = ecalloc(1, sizeof(*(yyval.range))); - (yyval.range)->min = (yyvsp[(2) - (3)].value)->u.integervalue; - (yyval.range)->max = (yyvsp[(2) - (3)].value)->u.integervalue; + (yyval.range)->min = (yyvsp[-1].value)->u.integervalue; + (yyval.range)->max = (yyvsp[-1].value)->u.integervalue; } +#line 1826 "asn1parse.c" break; - case 50: + case 50: /* IntegerType: kw_INTEGER */ #line 397 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, new_type(TInteger)); } +#line 1835 "asn1parse.c" break; - case 51: + case 51: /* IntegerType: kw_INTEGER range */ #line 402 "asn1parse.y" - { + { (yyval.type) = new_type(TInteger); - (yyval.type)->range = (yyvsp[(2) - (2)].range); + (yyval.type)->range = (yyvsp[0].range); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type)); } +#line 1845 "asn1parse.c" break; - case 52: + case 52: /* IntegerType: kw_INTEGER '{' NamedNumberList '}' */ #line 408 "asn1parse.y" - { + { (yyval.type) = new_type(TInteger); - (yyval.type)->members = (yyvsp[(3) - (4)].members); + (yyval.type)->members = (yyvsp[-1].members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type)); } +#line 1855 "asn1parse.c" break; - case 53: + case 53: /* NamedNumberList: NamedNumber */ #line 416 "asn1parse.y" - { + { (yyval.members) = emalloc(sizeof(*(yyval.members))); ASN1_TAILQ_INIT((yyval.members)); - ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members); + ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[0].member), members); } +#line 1865 "asn1parse.c" break; - case 54: + case 54: /* NamedNumberList: NamedNumberList ',' NamedNumber */ #line 422 "asn1parse.y" - { - ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members); - (yyval.members) = (yyvsp[(1) - (3)].members); + { + ASN1_TAILQ_INSERT_TAIL((yyvsp[-2].members), (yyvsp[0].member), members); + (yyval.members) = (yyvsp[-2].members); } +#line 1874 "asn1parse.c" break; - case 55: + case 55: /* NamedNumberList: NamedNumberList ',' ELLIPSIS */ #line 427 "asn1parse.y" - { (yyval.members) = (yyvsp[(1) - (3)].members); } + { (yyval.members) = (yyvsp[-2].members); } +#line 1880 "asn1parse.c" break; - case 56: + case 56: /* NamedNumber: IDENTIFIER '(' SignedNumber ')' */ #line 431 "asn1parse.y" - { + { (yyval.member) = emalloc(sizeof(*(yyval.member))); - (yyval.member)->name = (yyvsp[(1) - (4)].name); - (yyval.member)->gen_name = estrdup((yyvsp[(1) - (4)].name)); + (yyval.member)->name = (yyvsp[-3].name); + (yyval.member)->gen_name = estrdup((yyvsp[-3].name)); output_name ((yyval.member)->gen_name); - (yyval.member)->val = (yyvsp[(3) - (4)].constant); + (yyval.member)->val = (yyvsp[-1].constant); (yyval.member)->optional = 0; (yyval.member)->ellipsis = 0; (yyval.member)->type = NULL; } +#line 1895 "asn1parse.c" break; - case 57: + case 57: /* EnumeratedType: kw_ENUMERATED '{' Enumerations '}' */ #line 444 "asn1parse.y" - { + { (yyval.type) = new_type(TInteger); - (yyval.type)->members = (yyvsp[(3) - (4)].members); + (yyval.type)->members = (yyvsp[-1].members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Enumerated, TE_EXPLICIT, (yyval.type)); } +#line 1905 "asn1parse.c" break; - case 59: + case 59: /* BitStringType: kw_BIT kw_STRING */ #line 455 "asn1parse.y" - { + { (yyval.type) = new_type(TBitString); (yyval.type)->members = emalloc(sizeof(*(yyval.type)->members)); ASN1_TAILQ_INIT((yyval.type)->members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type)); } +#line 1916 "asn1parse.c" break; - case 60: + case 60: /* BitStringType: kw_BIT kw_STRING '{' NamedBitList '}' */ #line 462 "asn1parse.y" - { + { (yyval.type) = new_type(TBitString); - (yyval.type)->members = (yyvsp[(4) - (5)].members); + (yyval.type)->members = (yyvsp[-1].members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type)); } +#line 1926 "asn1parse.c" break; - case 61: + case 61: /* ObjectIdentifierType: kw_OBJECT kw_IDENTIFIER */ #line 470 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_OID, TE_EXPLICIT, new_type(TOID)); } +#line 1935 "asn1parse.c" break; - case 62: + case 62: /* OctetStringType: kw_OCTET kw_STRING size */ #line 476 "asn1parse.y" - { + { Type *t = new_type(TOctetString); - t->range = (yyvsp[(3) - (3)].range); + t->range = (yyvsp[0].range); if (t->range) { if (t->range->min < 0) lex_error_message("can't use a negative SIZE range " @@ -2019,126 +1949,140 @@ yyreduce: (yyval.type) = new_tag(ASN1_C_UNIV, UT_OctetString, TE_EXPLICIT, t); } +#line 1951 "asn1parse.c" break; - case 63: + case 63: /* NullType: kw_NULL */ #line 490 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_Null, TE_EXPLICIT, new_type(TNull)); } +#line 1960 "asn1parse.c" break; - case 64: + case 64: /* size: %empty */ #line 497 "asn1parse.y" - { (yyval.range) = NULL; } + { (yyval.range) = NULL; } +#line 1966 "asn1parse.c" break; - case 65: + case 65: /* size: kw_SIZE range */ #line 499 "asn1parse.y" - { (yyval.range) = (yyvsp[(2) - (2)].range); } + { (yyval.range) = (yyvsp[0].range); } +#line 1972 "asn1parse.c" break; - case 66: + case 66: /* SequenceType: kw_SEQUENCE '{' ComponentTypeList '}' */ #line 504 "asn1parse.y" - { + { (yyval.type) = new_type(TSequence); - (yyval.type)->members = (yyvsp[(3) - (4)].members); + (yyval.type)->members = (yyvsp[-1].members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, default_tag_env, (yyval.type)); } +#line 1982 "asn1parse.c" break; - case 67: + case 67: /* SequenceType: kw_SEQUENCE '{' '}' */ #line 510 "asn1parse.y" - { + { (yyval.type) = new_type(TSequence); (yyval.type)->members = NULL; (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, default_tag_env, (yyval.type)); } +#line 1992 "asn1parse.c" break; - case 68: + case 68: /* SequenceOfType: kw_SEQUENCE size kw_OF Type */ #line 518 "asn1parse.y" - { + { (yyval.type) = new_type(TSequenceOf); - (yyval.type)->range = (yyvsp[(2) - (4)].range); + (yyval.type)->range = (yyvsp[-2].range); if ((yyval.type)->range) { if ((yyval.type)->range->min < 0) lex_error_message("can't use a negative SIZE range " "length for SEQUENCE OF"); } - (yyval.type)->subtype = (yyvsp[(4) - (4)].type); + (yyval.type)->subtype = (yyvsp[0].type); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, default_tag_env, (yyval.type)); } +#line 2009 "asn1parse.c" break; - case 69: + case 69: /* SetType: kw_SET '{' ComponentTypeList '}' */ #line 533 "asn1parse.y" - { + { (yyval.type) = new_type(TSet); - (yyval.type)->members = (yyvsp[(3) - (4)].members); + (yyval.type)->members = (yyvsp[-1].members); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, default_tag_env, (yyval.type)); } +#line 2019 "asn1parse.c" break; - case 70: + case 70: /* SetType: kw_SET '{' '}' */ #line 539 "asn1parse.y" - { + { (yyval.type) = new_type(TSet); (yyval.type)->members = NULL; (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, default_tag_env, (yyval.type)); } +#line 2029 "asn1parse.c" break; - case 71: + case 71: /* SetOfType: kw_SET kw_OF Type */ #line 547 "asn1parse.y" - { + { (yyval.type) = new_type(TSetOf); - (yyval.type)->subtype = (yyvsp[(3) - (3)].type); + (yyval.type)->subtype = (yyvsp[0].type); (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, default_tag_env, (yyval.type)); } +#line 2039 "asn1parse.c" break; - case 72: + case 72: /* ChoiceType: kw_CHOICE '{' ComponentTypeList '}' */ #line 555 "asn1parse.y" - { + { (yyval.type) = new_type(TChoice); - (yyval.type)->members = (yyvsp[(3) - (4)].members); + (yyval.type)->members = (yyvsp[-1].members); } +#line 2048 "asn1parse.c" break; - case 75: + case 75: /* DefinedType: IDENTIFIER */ #line 566 "asn1parse.y" - { - Symbol *s = addsym((yyvsp[(1) - (1)].name)); + { + Symbol *s = addsym((yyvsp[0].name)); (yyval.type) = new_type(TType); if(s->stype != Stype && s->stype != SUndefined) - lex_error_message ("%s is not a type\n", (yyvsp[(1) - (1)].name)); + lex_error_message ("%s is not a type\n", (yyvsp[0].name)); else (yyval.type)->symbol = s; } +#line 2061 "asn1parse.c" break; - case 76: + case 76: /* UsefulType: kw_GeneralizedTime */ #line 577 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralizedTime, TE_EXPLICIT, new_type(TGeneralizedTime)); } +#line 2070 "asn1parse.c" break; - case 77: + case 77: /* UsefulType: kw_UTCTime */ #line 582 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTCTime, TE_EXPLICIT, new_type(TUTCTime)); } +#line 2079 "asn1parse.c" break; - case 78: + case 78: /* ConstrainedType: Type Constraint */ #line 589 "asn1parse.y" - { + { /* if (Constraint.type == contentConstrant) { assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too if (Constraint.u.constraint.type) { @@ -2150,347 +2094,386 @@ yyreduce: } */ } +#line 2096 "asn1parse.c" break; - case 79: + case 79: /* Constraint: '(' ConstraintSpec ')' */ #line 605 "asn1parse.y" - { - (yyval.constraint_spec) = (yyvsp[(2) - (3)].constraint_spec); + { + (yyval.constraint_spec) = (yyvsp[-1].constraint_spec); } +#line 2104 "asn1parse.c" break; - case 83: + case 83: /* ContentsConstraint: kw_CONTAINING Type */ #line 618 "asn1parse.y" - { + { (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS); - (yyval.constraint_spec)->u.content.type = (yyvsp[(2) - (2)].type); + (yyval.constraint_spec)->u.content.type = (yyvsp[0].type); (yyval.constraint_spec)->u.content.encoding = NULL; } +#line 2114 "asn1parse.c" break; - case 84: + case 84: /* ContentsConstraint: kw_ENCODED kw_BY Value */ #line 624 "asn1parse.y" - { - if ((yyvsp[(3) - (3)].value)->type != objectidentifiervalue) + { + if ((yyvsp[0].value)->type != objectidentifiervalue) lex_error_message("Non-OID used in ENCODED BY constraint"); (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS); (yyval.constraint_spec)->u.content.type = NULL; - (yyval.constraint_spec)->u.content.encoding = (yyvsp[(3) - (3)].value); + (yyval.constraint_spec)->u.content.encoding = (yyvsp[0].value); } +#line 2126 "asn1parse.c" break; - case 85: + case 85: /* ContentsConstraint: kw_CONTAINING Type kw_ENCODED kw_BY Value */ #line 632 "asn1parse.y" - { - if ((yyvsp[(5) - (5)].value)->type != objectidentifiervalue) + { + if ((yyvsp[0].value)->type != objectidentifiervalue) lex_error_message("Non-OID used in ENCODED BY constraint"); (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS); - (yyval.constraint_spec)->u.content.type = (yyvsp[(2) - (5)].type); - (yyval.constraint_spec)->u.content.encoding = (yyvsp[(5) - (5)].value); + (yyval.constraint_spec)->u.content.type = (yyvsp[-3].type); + (yyval.constraint_spec)->u.content.encoding = (yyvsp[0].value); } +#line 2138 "asn1parse.c" break; - case 86: + case 86: /* UserDefinedConstraint: kw_CONSTRAINED kw_BY '{' '}' */ #line 642 "asn1parse.y" - { + { (yyval.constraint_spec) = new_constraint_spec(CT_USER); } +#line 2146 "asn1parse.c" break; - case 87: + case 87: /* TaggedType: Tag tagenv Type */ #line 648 "asn1parse.y" - { + { (yyval.type) = new_type(TTag); - (yyval.type)->tag = (yyvsp[(1) - (3)].tag); - (yyval.type)->tag.tagenv = (yyvsp[(2) - (3)].constant); + (yyval.type)->tag = (yyvsp[-2].tag); + (yyval.type)->tag.tagenv = (yyvsp[-1].constant); if (template_flag) { - (yyval.type)->subtype = (yyvsp[(3) - (3)].type); + (yyval.type)->subtype = (yyvsp[0].type); } else { - if((yyvsp[(3) - (3)].type)->type == TTag && (yyvsp[(2) - (3)].constant) == TE_IMPLICIT) { - (yyval.type)->subtype = (yyvsp[(3) - (3)].type)->subtype; - free((yyvsp[(3) - (3)].type)); + if((yyvsp[0].type)->type == TTag && (yyvsp[-1].constant) == TE_IMPLICIT) { + (yyval.type)->subtype = (yyvsp[0].type)->subtype; + free((yyvsp[0].type)); } else { - (yyval.type)->subtype = (yyvsp[(3) - (3)].type); + (yyval.type)->subtype = (yyvsp[0].type); } } } +#line 2166 "asn1parse.c" break; - case 88: + case 88: /* Tag: '[' Class NUMBER ']' */ #line 666 "asn1parse.y" - { - (yyval.tag).tagclass = (yyvsp[(2) - (4)].constant); - (yyval.tag).tagvalue = (yyvsp[(3) - (4)].constant); + { + (yyval.tag).tagclass = (yyvsp[-2].constant); + (yyval.tag).tagvalue = (yyvsp[-1].constant); (yyval.tag).tagenv = default_tag_env; } +#line 2176 "asn1parse.c" break; - case 89: + case 89: /* Class: %empty */ #line 674 "asn1parse.y" - { + { (yyval.constant) = ASN1_C_CONTEXT; } +#line 2184 "asn1parse.c" break; - case 90: + case 90: /* Class: kw_UNIVERSAL */ #line 678 "asn1parse.y" - { + { (yyval.constant) = ASN1_C_UNIV; } +#line 2192 "asn1parse.c" break; - case 91: + case 91: /* Class: kw_APPLICATION */ #line 682 "asn1parse.y" - { + { (yyval.constant) = ASN1_C_APPL; } +#line 2200 "asn1parse.c" break; - case 92: + case 92: /* Class: kw_PRIVATE */ #line 686 "asn1parse.y" - { + { (yyval.constant) = ASN1_C_PRIVATE; } +#line 2208 "asn1parse.c" break; - case 93: + case 93: /* tagenv: %empty */ #line 692 "asn1parse.y" - { + { (yyval.constant) = default_tag_env; } +#line 2216 "asn1parse.c" break; - case 94: + case 94: /* tagenv: kw_EXPLICIT */ #line 696 "asn1parse.y" - { + { (yyval.constant) = default_tag_env; } +#line 2224 "asn1parse.c" break; - case 95: + case 95: /* tagenv: kw_IMPLICIT */ #line 700 "asn1parse.y" - { + { (yyval.constant) = TE_IMPLICIT; } +#line 2232 "asn1parse.c" break; - case 96: + case 96: /* ValueAssignment: IDENTIFIER Type EEQUAL Value */ #line 707 "asn1parse.y" - { + { Symbol *s; - s = addsym ((yyvsp[(1) - (4)].name)); + s = addsym ((yyvsp[-3].name)); s->stype = SValue; - s->value = (yyvsp[(4) - (4)].value); + s->value = (yyvsp[0].value); generate_constant (s); } +#line 2245 "asn1parse.c" break; - case 98: + case 98: /* RestrictedCharactedStringType: kw_GeneralString */ #line 721 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralString, TE_EXPLICIT, new_type(TGeneralString)); } +#line 2254 "asn1parse.c" break; - case 99: + case 99: /* RestrictedCharactedStringType: kw_TeletexString */ #line 726 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_TeletexString, TE_EXPLICIT, new_type(TTeletexString)); } +#line 2263 "asn1parse.c" break; - case 100: + case 100: /* RestrictedCharactedStringType: kw_UTF8String */ #line 731 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTF8String, TE_EXPLICIT, new_type(TUTF8String)); } +#line 2272 "asn1parse.c" break; - case 101: + case 101: /* RestrictedCharactedStringType: kw_PrintableString */ #line 736 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_PrintableString, TE_EXPLICIT, new_type(TPrintableString)); } +#line 2281 "asn1parse.c" break; - case 102: + case 102: /* RestrictedCharactedStringType: kw_VisibleString */ #line 741 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_VisibleString, TE_EXPLICIT, new_type(TVisibleString)); } +#line 2290 "asn1parse.c" break; - case 103: + case 103: /* RestrictedCharactedStringType: kw_IA5String */ #line 746 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_IA5String, TE_EXPLICIT, new_type(TIA5String)); } +#line 2299 "asn1parse.c" break; - case 104: + case 104: /* RestrictedCharactedStringType: kw_BMPString */ #line 751 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_BMPString, TE_EXPLICIT, new_type(TBMPString)); } +#line 2308 "asn1parse.c" break; - case 105: + case 105: /* RestrictedCharactedStringType: kw_UniversalString */ #line 756 "asn1parse.y" - { + { (yyval.type) = new_tag(ASN1_C_UNIV, UT_UniversalString, TE_EXPLICIT, new_type(TUniversalString)); } +#line 2317 "asn1parse.c" break; - case 106: + case 106: /* ComponentTypeList: ComponentType */ #line 764 "asn1parse.y" - { + { (yyval.members) = emalloc(sizeof(*(yyval.members))); ASN1_TAILQ_INIT((yyval.members)); - ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members); + ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[0].member), members); } +#line 2327 "asn1parse.c" break; - case 107: + case 107: /* ComponentTypeList: ComponentTypeList ',' ComponentType */ #line 770 "asn1parse.y" - { - ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members); - (yyval.members) = (yyvsp[(1) - (3)].members); + { + ASN1_TAILQ_INSERT_TAIL((yyvsp[-2].members), (yyvsp[0].member), members); + (yyval.members) = (yyvsp[-2].members); } +#line 2336 "asn1parse.c" break; - case 108: + case 108: /* ComponentTypeList: ComponentTypeList ',' ELLIPSIS */ #line 775 "asn1parse.y" - { + { struct member *m = ecalloc(1, sizeof(*m)); m->name = estrdup("..."); m->gen_name = estrdup("asn1_ellipsis"); m->ellipsis = 1; - ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), m, members); - (yyval.members) = (yyvsp[(1) - (3)].members); + ASN1_TAILQ_INSERT_TAIL((yyvsp[-2].members), m, members); + (yyval.members) = (yyvsp[-2].members); } +#line 2349 "asn1parse.c" break; - case 109: + case 109: /* NamedType: IDENTIFIER Type */ #line 786 "asn1parse.y" - { + { (yyval.member) = emalloc(sizeof(*(yyval.member))); - (yyval.member)->name = (yyvsp[(1) - (2)].name); - (yyval.member)->gen_name = estrdup((yyvsp[(1) - (2)].name)); + (yyval.member)->name = (yyvsp[-1].name); + (yyval.member)->gen_name = estrdup((yyvsp[-1].name)); output_name ((yyval.member)->gen_name); - (yyval.member)->type = (yyvsp[(2) - (2)].type); + (yyval.member)->type = (yyvsp[0].type); (yyval.member)->ellipsis = 0; } +#line 2362 "asn1parse.c" break; - case 110: + case 110: /* ComponentType: NamedType */ #line 797 "asn1parse.y" - { - (yyval.member) = (yyvsp[(1) - (1)].member); + { + (yyval.member) = (yyvsp[0].member); (yyval.member)->optional = 0; (yyval.member)->defval = NULL; } +#line 2372 "asn1parse.c" break; - case 111: + case 111: /* ComponentType: NamedType kw_OPTIONAL */ #line 803 "asn1parse.y" - { - (yyval.member) = (yyvsp[(1) - (2)].member); + { + (yyval.member) = (yyvsp[-1].member); (yyval.member)->optional = 1; (yyval.member)->defval = NULL; } +#line 2382 "asn1parse.c" break; - case 112: + case 112: /* ComponentType: NamedType kw_DEFAULT Value */ #line 809 "asn1parse.y" - { - (yyval.member) = (yyvsp[(1) - (3)].member); + { + (yyval.member) = (yyvsp[-2].member); (yyval.member)->optional = 0; - (yyval.member)->defval = (yyvsp[(3) - (3)].value); + (yyval.member)->defval = (yyvsp[0].value); } +#line 2392 "asn1parse.c" break; - case 113: + case 113: /* NamedBitList: NamedBit */ #line 817 "asn1parse.y" - { + { (yyval.members) = emalloc(sizeof(*(yyval.members))); ASN1_TAILQ_INIT((yyval.members)); - ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members); + ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[0].member), members); } +#line 2402 "asn1parse.c" break; - case 114: + case 114: /* NamedBitList: NamedBitList ',' NamedBit */ #line 823 "asn1parse.y" - { - ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members); - (yyval.members) = (yyvsp[(1) - (3)].members); + { + ASN1_TAILQ_INSERT_TAIL((yyvsp[-2].members), (yyvsp[0].member), members); + (yyval.members) = (yyvsp[-2].members); } +#line 2411 "asn1parse.c" break; - case 115: + case 115: /* NamedBit: IDENTIFIER '(' NUMBER ')' */ #line 830 "asn1parse.y" - { + { (yyval.member) = emalloc(sizeof(*(yyval.member))); - (yyval.member)->name = (yyvsp[(1) - (4)].name); - (yyval.member)->gen_name = estrdup((yyvsp[(1) - (4)].name)); + (yyval.member)->name = (yyvsp[-3].name); + (yyval.member)->gen_name = estrdup((yyvsp[-3].name)); output_name ((yyval.member)->gen_name); - (yyval.member)->val = (yyvsp[(3) - (4)].constant); + (yyval.member)->val = (yyvsp[-1].constant); (yyval.member)->optional = 0; (yyval.member)->ellipsis = 0; (yyval.member)->type = NULL; } +#line 2426 "asn1parse.c" break; - case 117: + case 117: /* objid_opt: %empty */ #line 843 "asn1parse.y" - { (yyval.objid) = NULL; } + { (yyval.objid) = NULL; } +#line 2432 "asn1parse.c" break; - case 118: + case 118: /* objid: '{' objid_list '}' */ #line 847 "asn1parse.y" - { - (yyval.objid) = (yyvsp[(2) - (3)].objid); + { + (yyval.objid) = (yyvsp[-1].objid); } +#line 2440 "asn1parse.c" break; - case 119: + case 119: /* objid_list: %empty */ #line 853 "asn1parse.y" - { + { (yyval.objid) = NULL; } +#line 2448 "asn1parse.c" break; - case 120: + case 120: /* objid_list: objid_element objid_list */ #line 857 "asn1parse.y" - { - if ((yyvsp[(2) - (2)].objid)) { - (yyval.objid) = (yyvsp[(2) - (2)].objid); - add_oid_to_tail((yyvsp[(2) - (2)].objid), (yyvsp[(1) - (2)].objid)); + { + if ((yyvsp[0].objid)) { + (yyval.objid) = (yyvsp[0].objid); + add_oid_to_tail((yyvsp[0].objid), (yyvsp[-1].objid)); } else { - (yyval.objid) = (yyvsp[(1) - (2)].objid); + (yyval.objid) = (yyvsp[-1].objid); } } +#line 2461 "asn1parse.c" break; - case 121: + case 121: /* objid_element: IDENTIFIER '(' NUMBER ')' */ #line 868 "asn1parse.y" - { - (yyval.objid) = new_objid((yyvsp[(1) - (4)].name), (yyvsp[(3) - (4)].constant)); + { + (yyval.objid) = new_objid((yyvsp[-3].name), (yyvsp[-1].constant)); } +#line 2469 "asn1parse.c" break; - case 122: + case 122: /* objid_element: IDENTIFIER */ #line 872 "asn1parse.y" - { - Symbol *s = addsym((yyvsp[(1) - (1)].name)); + { + Symbol *s = addsym((yyvsp[0].name)); if(s->stype != SValue || s->value->type != objectidentifiervalue) { lex_error_message("%s is not an object identifier\n", @@ -2499,174 +2482,158 @@ yyreduce: } (yyval.objid) = s->value->u.objectidentifiervalue; } +#line 2484 "asn1parse.c" break; - case 123: + case 123: /* objid_element: NUMBER */ #line 883 "asn1parse.y" - { - (yyval.objid) = new_objid(NULL, (yyvsp[(1) - (1)].constant)); + { + (yyval.objid) = new_objid(NULL, (yyvsp[0].constant)); } +#line 2492 "asn1parse.c" break; - case 133: + case 133: /* Valuereference: IDENTIFIER */ #line 906 "asn1parse.y" - { - Symbol *s = addsym((yyvsp[(1) - (1)].name)); + { + Symbol *s = addsym((yyvsp[0].name)); if(s->stype != SValue) lex_error_message ("%s is not a value\n", s->name); else (yyval.value) = s->value; } +#line 2505 "asn1parse.c" break; - case 134: + case 134: /* CharacterStringValue: STRING */ #line 917 "asn1parse.y" - { + { (yyval.value) = emalloc(sizeof(*(yyval.value))); (yyval.value)->type = stringvalue; - (yyval.value)->u.stringvalue = (yyvsp[(1) - (1)].name); + (yyval.value)->u.stringvalue = (yyvsp[0].name); } +#line 2515 "asn1parse.c" break; - case 135: + case 135: /* BooleanValue: kw_TRUE */ #line 925 "asn1parse.y" - { + { (yyval.value) = emalloc(sizeof(*(yyval.value))); (yyval.value)->type = booleanvalue; (yyval.value)->u.booleanvalue = 0; } +#line 2525 "asn1parse.c" break; - case 136: + case 136: /* BooleanValue: kw_FALSE */ #line 931 "asn1parse.y" - { + { (yyval.value) = emalloc(sizeof(*(yyval.value))); (yyval.value)->type = booleanvalue; (yyval.value)->u.booleanvalue = 0; } +#line 2535 "asn1parse.c" break; - case 137: + case 137: /* IntegerValue: SignedNumber */ #line 939 "asn1parse.y" - { + { (yyval.value) = emalloc(sizeof(*(yyval.value))); (yyval.value)->type = integervalue; - (yyval.value)->u.integervalue = (yyvsp[(1) - (1)].constant); + (yyval.value)->u.integervalue = (yyvsp[0].constant); } +#line 2545 "asn1parse.c" break; - case 139: + case 139: /* NullValue: kw_NULL */ #line 950 "asn1parse.y" - { + { } +#line 2552 "asn1parse.c" break; - case 140: + case 140: /* ObjectIdentifierValue: objid */ #line 955 "asn1parse.y" - { + { (yyval.value) = emalloc(sizeof(*(yyval.value))); (yyval.value)->type = objectidentifiervalue; - (yyval.value)->u.objectidentifiervalue = (yyvsp[(1) - (1)].objid); + (yyval.value)->u.objectidentifiervalue = (yyvsp[0].objid); } +#line 2562 "asn1parse.c" break; -/* Line 1267 of yacc.c. */ -#line 2575 "asn1parse.c" +#line 2566 "asn1parse.c" + default: break; } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif } - - if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2675,14 +2642,13 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -2695,42 +2661,42 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -2741,51 +2707,55 @@ yyerrlab1: `-------------------------------------*/ yyacceptlab: yyresult = 0; - goto yyreturn; + goto yyreturnlab; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; - goto yyreturn; + goto yyreturnlab; -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ -#endif + goto yyreturnlab; -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} + return yyresult; +} #line 962 "asn1parse.y" @@ -2885,4 +2855,3 @@ fix_labels(Symbol *s) fix_labels2(s->type, p); free(p); } - diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.h b/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.h index 085e5a184638..a012b2854225 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.h +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/asn1parse.h @@ -1,16 +1,16 @@ -/* $NetBSD: asn1parse.h,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: asn1parse.h,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -35,102 +33,124 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Tokens. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_YY_ASN_PARSE_H_INCLUDED +# define YY_YY_ASN_PARSE_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - kw_ABSENT = 258, - kw_ABSTRACT_SYNTAX = 259, - kw_ALL = 260, - kw_APPLICATION = 261, - kw_AUTOMATIC = 262, - kw_BEGIN = 263, - kw_BIT = 264, - kw_BMPString = 265, - kw_BOOLEAN = 266, - kw_BY = 267, - kw_CHARACTER = 268, - kw_CHOICE = 269, - kw_CLASS = 270, - kw_COMPONENT = 271, - kw_COMPONENTS = 272, - kw_CONSTRAINED = 273, - kw_CONTAINING = 274, - kw_DEFAULT = 275, - kw_DEFINITIONS = 276, - kw_EMBEDDED = 277, - kw_ENCODED = 278, - kw_END = 279, - kw_ENUMERATED = 280, - kw_EXCEPT = 281, - kw_EXPLICIT = 282, - kw_EXPORTS = 283, - kw_EXTENSIBILITY = 284, - kw_EXTERNAL = 285, - kw_FALSE = 286, - kw_FROM = 287, - kw_GeneralString = 288, - kw_GeneralizedTime = 289, - kw_GraphicString = 290, - kw_IA5String = 291, - kw_IDENTIFIER = 292, - kw_IMPLICIT = 293, - kw_IMPLIED = 294, - kw_IMPORTS = 295, - kw_INCLUDES = 296, - kw_INSTANCE = 297, - kw_INTEGER = 298, - kw_INTERSECTION = 299, - kw_ISO646String = 300, - kw_MAX = 301, - kw_MIN = 302, - kw_MINUS_INFINITY = 303, - kw_NULL = 304, - kw_NumericString = 305, - kw_OBJECT = 306, - kw_OCTET = 307, - kw_OF = 308, - kw_OPTIONAL = 309, - kw_ObjectDescriptor = 310, - kw_PATTERN = 311, - kw_PDV = 312, - kw_PLUS_INFINITY = 313, - kw_PRESENT = 314, - kw_PRIVATE = 315, - kw_PrintableString = 316, - kw_REAL = 317, - kw_RELATIVE_OID = 318, - kw_SEQUENCE = 319, - kw_SET = 320, - kw_SIZE = 321, - kw_STRING = 322, - kw_SYNTAX = 323, - kw_T61String = 324, - kw_TAGS = 325, - kw_TRUE = 326, - kw_TYPE_IDENTIFIER = 327, - kw_TeletexString = 328, - kw_UNION = 329, - kw_UNIQUE = 330, - kw_UNIVERSAL = 331, - kw_UTCTime = 332, - kw_UTF8String = 333, - kw_UniversalString = 334, - kw_VideotexString = 335, - kw_VisibleString = 336, - kw_WITH = 337, - RANGE = 338, - EEQUAL = 339, - ELLIPSIS = 340, - IDENTIFIER = 341, - referencename = 342, - STRING = 343, - NUMBER = 344 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + kw_ABSENT = 258, /* kw_ABSENT */ + kw_ABSTRACT_SYNTAX = 259, /* kw_ABSTRACT_SYNTAX */ + kw_ALL = 260, /* kw_ALL */ + kw_APPLICATION = 261, /* kw_APPLICATION */ + kw_AUTOMATIC = 262, /* kw_AUTOMATIC */ + kw_BEGIN = 263, /* kw_BEGIN */ + kw_BIT = 264, /* kw_BIT */ + kw_BMPString = 265, /* kw_BMPString */ + kw_BOOLEAN = 266, /* kw_BOOLEAN */ + kw_BY = 267, /* kw_BY */ + kw_CHARACTER = 268, /* kw_CHARACTER */ + kw_CHOICE = 269, /* kw_CHOICE */ + kw_CLASS = 270, /* kw_CLASS */ + kw_COMPONENT = 271, /* kw_COMPONENT */ + kw_COMPONENTS = 272, /* kw_COMPONENTS */ + kw_CONSTRAINED = 273, /* kw_CONSTRAINED */ + kw_CONTAINING = 274, /* kw_CONTAINING */ + kw_DEFAULT = 275, /* kw_DEFAULT */ + kw_DEFINITIONS = 276, /* kw_DEFINITIONS */ + kw_EMBEDDED = 277, /* kw_EMBEDDED */ + kw_ENCODED = 278, /* kw_ENCODED */ + kw_END = 279, /* kw_END */ + kw_ENUMERATED = 280, /* kw_ENUMERATED */ + kw_EXCEPT = 281, /* kw_EXCEPT */ + kw_EXPLICIT = 282, /* kw_EXPLICIT */ + kw_EXPORTS = 283, /* kw_EXPORTS */ + kw_EXTENSIBILITY = 284, /* kw_EXTENSIBILITY */ + kw_EXTERNAL = 285, /* kw_EXTERNAL */ + kw_FALSE = 286, /* kw_FALSE */ + kw_FROM = 287, /* kw_FROM */ + kw_GeneralString = 288, /* kw_GeneralString */ + kw_GeneralizedTime = 289, /* kw_GeneralizedTime */ + kw_GraphicString = 290, /* kw_GraphicString */ + kw_IA5String = 291, /* kw_IA5String */ + kw_IDENTIFIER = 292, /* kw_IDENTIFIER */ + kw_IMPLICIT = 293, /* kw_IMPLICIT */ + kw_IMPLIED = 294, /* kw_IMPLIED */ + kw_IMPORTS = 295, /* kw_IMPORTS */ + kw_INCLUDES = 296, /* kw_INCLUDES */ + kw_INSTANCE = 297, /* kw_INSTANCE */ + kw_INTEGER = 298, /* kw_INTEGER */ + kw_INTERSECTION = 299, /* kw_INTERSECTION */ + kw_ISO646String = 300, /* kw_ISO646String */ + kw_MAX = 301, /* kw_MAX */ + kw_MIN = 302, /* kw_MIN */ + kw_MINUS_INFINITY = 303, /* kw_MINUS_INFINITY */ + kw_NULL = 304, /* kw_NULL */ + kw_NumericString = 305, /* kw_NumericString */ + kw_OBJECT = 306, /* kw_OBJECT */ + kw_OCTET = 307, /* kw_OCTET */ + kw_OF = 308, /* kw_OF */ + kw_OPTIONAL = 309, /* kw_OPTIONAL */ + kw_ObjectDescriptor = 310, /* kw_ObjectDescriptor */ + kw_PATTERN = 311, /* kw_PATTERN */ + kw_PDV = 312, /* kw_PDV */ + kw_PLUS_INFINITY = 313, /* kw_PLUS_INFINITY */ + kw_PRESENT = 314, /* kw_PRESENT */ + kw_PRIVATE = 315, /* kw_PRIVATE */ + kw_PrintableString = 316, /* kw_PrintableString */ + kw_REAL = 317, /* kw_REAL */ + kw_RELATIVE_OID = 318, /* kw_RELATIVE_OID */ + kw_SEQUENCE = 319, /* kw_SEQUENCE */ + kw_SET = 320, /* kw_SET */ + kw_SIZE = 321, /* kw_SIZE */ + kw_STRING = 322, /* kw_STRING */ + kw_SYNTAX = 323, /* kw_SYNTAX */ + kw_T61String = 324, /* kw_T61String */ + kw_TAGS = 325, /* kw_TAGS */ + kw_TRUE = 326, /* kw_TRUE */ + kw_TYPE_IDENTIFIER = 327, /* kw_TYPE_IDENTIFIER */ + kw_TeletexString = 328, /* kw_TeletexString */ + kw_UNION = 329, /* kw_UNION */ + kw_UNIQUE = 330, /* kw_UNIQUE */ + kw_UNIVERSAL = 331, /* kw_UNIVERSAL */ + kw_UTCTime = 332, /* kw_UTCTime */ + kw_UTF8String = 333, /* kw_UTF8String */ + kw_UniversalString = 334, /* kw_UniversalString */ + kw_VideotexString = 335, /* kw_VideotexString */ + kw_VisibleString = 336, /* kw_VisibleString */ + kw_WITH = 337, /* kw_WITH */ + RANGE = 338, /* RANGE */ + EEQUAL = 339, /* EEQUAL */ + ELLIPSIS = 340, /* ELLIPSIS */ + IDENTIFIER = 341, /* IDENTIFIER */ + referencename = 342, /* referencename */ + STRING = 343, /* STRING */ + NUMBER = 344 /* NUMBER */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define kw_ABSENT 258 #define kw_ABSTRACT_SYNTAX 259 #define kw_ALL 260 @@ -219,13 +239,12 @@ #define STRING 343 #define NUMBER 344 - - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 72 "asn1parse.y" +union YYSTYPE { +#line 72 "asn1parse.y" + int64_t constant; struct value *value; struct range *range; @@ -238,14 +257,20 @@ typedef union YYSTYPE struct tagtype tag; struct memhead *members; struct constraint_spec *constraint_spec; -} -/* Line 1529 of yacc.c. */ -#line 242 "asn1parse.h" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 260 "asn1parse.h" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; + +int yyparse (void); + + +#endif /* !YY_YY_ASN_PARSE_H_INCLUDED */ diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.c b/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.c index bb56e06f0690..50689bb5e123 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.c @@ -1,4 +1,4 @@ -/* $NetBSD: check-common.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: check-common.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1999 - 2006 Kungliga Tekniska Högskolan @@ -194,12 +194,12 @@ int generic_test (const struct test_case *tests, unsigned ntests, size_t data_size, - int (ASN1CALL *encode)(unsigned char *, size_t, void *, size_t *), - int (ASN1CALL *length)(void *), - int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *), - int (ASN1CALL *free_data)(void *), + generic_encode encode, + generic_length length, + generic_decode decode, + generic_free free_data, int (*cmp)(void *a, void *b), - int (ASN1CALL *copy)(const void *from, void *to)) + generic_copy copy) { unsigned char *buf, *buf2; int i; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.h b/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.h index 0f112bc66793..d01795ee35cf 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.h +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/check-common.h @@ -1,4 +1,4 @@ -/* $NetBSD: check-common.h,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: check-common.h,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan @@ -36,7 +36,8 @@ */ #define IF_OPT_COMPARE(ac,bc,e) \ - if (((ac)->e == NULL && (bc)->e != NULL) || (((ac)->e != NULL && (bc)->e == NULL))) return 1; if ((ac)->e) + if (((ac)->e == NULL && (bc)->e != NULL) || (((ac)->e != NULL && (bc)->e == NULL))) return 1; \ + if ((ac)->e) #define COMPARE_OPT_STRING(ac,bc,e) \ do { if (strcmp(*(ac)->e, *(bc)->e) != 0) return 1; } while(0) #define COMPARE_OPT_OCTET_STRING(ac,bc,e) \ @@ -60,21 +61,21 @@ struct test_case { }; typedef int (ASN1CALL *generic_encode)(unsigned char *, size_t, void *, size_t *); -typedef int (ASN1CALL *generic_length)(void *); +typedef size_t (ASN1CALL *generic_length)(void *); typedef int (ASN1CALL *generic_decode)(unsigned char *, size_t, void *, size_t *); -typedef int (ASN1CALL *generic_free)(void *); +typedef void (ASN1CALL *generic_free)(void *); typedef int (ASN1CALL *generic_copy)(const void *, void *); int -generic_test (const struct test_case *tests, - unsigned ntests, - size_t data_size, - int (ASN1CALL *encode)(unsigned char *, size_t, void *, size_t *), - int (ASN1CALL *length)(void *), - int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *), - int (ASN1CALL *free_data)(void *), - int (*cmp)(void *a, void *b), - int (ASN1CALL *copy)(const void *a, void *b)); +generic_test (const struct test_case *, + unsigned, + size_t, + generic_encode, + generic_length, + generic_decode, + generic_free, + int (*)(void *a, void *b), + generic_copy); int generic_decode_fail(const struct test_case *tests, diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/check-der.c b/crypto/external/bsd/heimdal/dist/lib/asn1/check-der.c index 5ee8b563ef00..20f8cc421694 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/check-der.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/check-der.c @@ -1,4 +1,4 @@ -/* $NetBSD: check-der.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: check-der.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1999 - 2007 Kungliga Tekniska Högskolan @@ -45,7 +45,7 @@ #include "check-common.h" -__RCSID("$NetBSD: check-der.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: check-der.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); static int cmp_integer (void *a, void *b) @@ -69,11 +69,12 @@ test_integer (void) {NULL, 1, "\xff", NULL }, {NULL, 2, "\xff\x01", NULL }, {NULL, 2, "\x00\xff", NULL }, + {NULL, 2, "\xfe\x01", NULL }, {NULL, 4, "\x7f\xff\xff\xff", NULL } }; int values[] = {0, 127, 128, 256, -128, -129, -1, -255, 255, - 0x7fffffff}; + -511, 0x7fffffff}; int i, ret; int ntests = sizeof(tests) / sizeof(*tests); @@ -155,16 +156,16 @@ test_one_int(int val) static int test_integer_more (void) { - int i, n1, n2, n3, n4, n5, n6; + int64_t i, n1, n2, n3, n4, n5, n6; n2 = 0; for (i = 0; i < (sizeof(int) * 8); i++) { - n1 = 0x01 << i; + n1 = 0x01LL << i; n2 = n2 | n1; n3 = ~n1; n4 = ~n2; - n5 = (-1) & ~(0x3f << i); - n6 = (-1) & ~(0x7f << i); + n5 = (-1LL) & ~(0x3fLL << i); + n6 = (-1LL) & ~(0x7fLL << i); test_one_int(n1); test_one_int(n2); @@ -524,23 +525,27 @@ static int test_heim_integer (void) { struct test_case tests[] = { + {NULL, 1, "\xff", NULL }, + {NULL, 2, "\xff\x01", NULL }, {NULL, 2, "\xfe\x01", NULL }, {NULL, 2, "\xef\x01", NULL }, {NULL, 3, "\xff\x00\xff", NULL }, {NULL, 3, "\xff\x01\x00", NULL }, {NULL, 1, "\x00", NULL }, {NULL, 1, "\x01", NULL }, - {NULL, 2, "\x00\x80", NULL } + {NULL, 2, "\x00\x80", NULL }, }; heim_integer values[] = { + { 1, "\x01", 1 }, + { 1, "\xff", 1 }, { 2, "\x01\xff", 1 }, { 2, "\x10\xff", 1 }, { 2, "\xff\x01", 1 }, { 2, "\xff\x00", 1 }, { 0, "", 0 }, { 1, "\x01", 0 }, - { 1, "\x80", 0 } + { 1, "\x80", 0 }, }; int i, ret; int ntests = sizeof(tests) / sizeof(tests[0]); diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/check-gen.c b/crypto/external/bsd/heimdal/dist/lib/asn1/check-gen.c index 8dddaa74483f..fc004f7d7767 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/check-gen.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/check-gen.c @@ -1,4 +1,4 @@ -/* $NetBSD: check-gen.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: check-gen.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan @@ -1358,7 +1358,7 @@ static int check_seq(void) { TESTSeqOf seq; - TESTInteger i; + TESTInteger i = 0; int ret; seq.val = NULL; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/check-template.c b/crypto/external/bsd/heimdal/dist/lib/asn1/check-template.c index 5a239b0b763b..1cf6a650c4b6 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/check-template.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/check-template.c @@ -1,4 +1,4 @@ -/* $NetBSD: check-template.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: check-template.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan @@ -374,7 +374,7 @@ test_seqof4(void) b2val[3].u2 = -1LL; b2val[3].s3.data = "\x00\x01\x02\x03"; b2val[3].s3.length = 4; - b2val[3].u3 = 1LL<<63; + b2val[3].u3 = 1ULL<<63; b3val[3].s1.data = ""; b3val[3].s1.length = 0; @@ -384,7 +384,7 @@ test_seqof4(void) b3val[3].u2 = -1LL; b3val[3].s3.data = "\x00\x01\x02\x03"; b3val[3].s3.length = 4; - b3val[3].u3 = 1LL<<63; + b3val[3].u3 = 1ULL<<63; b3val[3].s4.data = "\x00"; b3val[3].s4.length = 1; b3val[3].u4 = 1LL<<32; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/der_cmp.c b/crypto/external/bsd/heimdal/dist/lib/asn1/der_cmp.c index 906cffbe0f80..48555a70ba57 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/der_cmp.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/der_cmp.c @@ -1,4 +1,4 @@ -/* $NetBSD: der_cmp.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: der_cmp.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2003-2005 Kungliga Tekniska Högskolan @@ -76,8 +76,11 @@ der_heim_bit_string_cmp(const heim_bit_string *p, size_t i; if (p->length != q->length) return (int)(p->length - q->length); - i = memcmp(p->data, q->data, p->length / 8); - if (i) + if (q->length) + i = memcmp(p->data, q->data, p->length / 8); + else + i = 0; + if (i != 0) return (int)i; if ((p->length % 8) == 0) return 0; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/der_copy.c b/crypto/external/bsd/heimdal/dist/lib/asn1/der_copy.c index aaa6f1861ebe..2117073d5295 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/der_copy.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/der_copy.c @@ -1,4 +1,4 @@ -/* $NetBSD: der_copy.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: der_copy.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -37,7 +37,7 @@ #include "der_locl.h" -__RCSID("$NetBSD: der_copy.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: der_copy.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); int der_copy_general_string (const heim_general_string *from, @@ -151,8 +151,12 @@ int der_copy_octet_string (const heim_octet_string *from, heim_octet_string *to) { to->length = from->length; - to->data = malloc(to->length); - if(to->length != 0 && to->data == NULL) + if (from->data == NULL) { + to->data = NULL; + return 0; + } + to->data = malloc(to->length); + if (to->length != 0 && to->data == NULL) return ENOMEM; memcpy(to->data, from->data, to->length); return 0; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/der_get.c b/crypto/external/bsd/heimdal/dist/lib/asn1/der_get.c index 259fbb34cba6..0efb97fb27f2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/der_get.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/der_get.c @@ -1,4 +1,4 @@ -/* $NetBSD: der_get.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: der_get.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan @@ -88,9 +88,12 @@ der_get_integer (const unsigned char *p, size_t len, int val = 0; size_t oldlen = len; - if (len > sizeof(val)) + if (len == sizeof(val) + 1 && (p[0] == 0 || p[0] == 0xff)) + ; + else if (len > sizeof(val)) return ASN1_OVERRUN; + /* We assume we're on a twos-complement platform */ if (len > 0) { val = (signed char)*p++; while (--len) @@ -111,6 +114,7 @@ der_get_integer64 (const unsigned char *p, size_t len, if (len > sizeof(val)) return ASN1_OVERRUN; + /* We assume we're on a twos-complement platform */ if (len > 0) { val = (signed char)*p++; while (--len) @@ -418,13 +422,45 @@ der_get_heim_integer (const unsigned char *p, size_t len, if (p[0] & 0x80) { unsigned char *q; int carry = 1; - data->negative = 1; + + /* + * A negative number. It's going to be a twos complement byte array. + * We're going to leave the positive value in `data->data', but set the + * `data->negative' flag. That means we need to negate the + * twos-complement integer received. + */ + data->negative = 1; data->length = len; if (p[0] == 0xff) { + if (data->length == 1) { + /* One byte of all ones == -1 */ + q = data->data = malloc(1); + *q = 1; + data->length = 1; + if (size) + *size = 1; + return 0; + } + p++; data->length--; + + /* + * We could check if the next byte's high bit is set, which would + * be an error ("illegal padding" in OpenSSL). However, this would + * mean failing to accept certificates made by certain CAs that + * would read 8 bytes of RNG into a buffer, slap on length 8, then + * slap on the tag [UNIVERSAL INTEGER], and make that the + * serialNumber field's encoding, which then fails to parse in + * around 1 in 256 certificates. + * + * So let's not. + * + * if (p[0] & 0x80) + * return ASN1_PARSE_ERROR; // or a new error code + */ } data->data = malloc(data->length); if (data->data == NULL) { @@ -433,9 +469,17 @@ der_get_heim_integer (const unsigned char *p, size_t len, *size = 0; return ENOMEM; } + + /* + * Note that if `data->length' were zero, this would be UB because we + * underflow if data->length is zero even though we wouldn't actually + * dereference the byte before data->data. Thus we check above for + * that. + */ q = &((unsigned char*)data->data)[data->length - 1]; p += data->length - 1; while (q >= (unsigned char*)data->data) { + /* *p XOR 0xff -> ~*p; we're dealing with twos complement */ *q = *p ^ 0xff; if (carry) carry = !++*q; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/der_length.c b/crypto/external/bsd/heimdal/dist/lib/asn1/der_length.c index 1a2d09728919..a825aa41ab46 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/der_length.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/der_length.c @@ -1,4 +1,4 @@ -/* $NetBSD: der_length.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: der_length.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -37,7 +37,7 @@ #include "der_locl.h" -__RCSID("$NetBSD: der_length.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: der_length.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); size_t _heim_len_unsigned (unsigned val) @@ -258,7 +258,9 @@ der_length_heim_integer (const heim_integer *k) { if (k->length == 0) return 1; - if (k->negative) + if (k->negative && k->length == 1 && ((unsigned char *)k->data)[0] == 1) + return 1; + else if (k->negative) return k->length + (((~(((unsigned char *)k->data)[0])) & 0x80) ? 0 : 1); else return k->length + ((((unsigned char *)k->data)[0] & 0x80) ? 1 : 0); diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/der_put.c b/crypto/external/bsd/heimdal/dist/lib/asn1/der_put.c index e85434b919da..060115c3b369 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/der_put.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/der_put.c @@ -1,4 +1,4 @@ -/* $NetBSD: der_put.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: der_put.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "der_locl.h" -__RCSID("$NetBSD: der_put.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: der_put.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); /* * All encoding functions take a pointer `p' to first position in @@ -315,7 +315,8 @@ der_put_octet_string (unsigned char *p, size_t len, if (len < data->length) return ASN1_OVERFLOW; p -= data->length; - memcpy (p+1, data->data, data->length); + if (data->length) + memcpy(p+1, data->data, data->length); *size = data->length; return 0; } @@ -343,19 +344,30 @@ der_put_heim_integer (unsigned char *p, size_t len, if (data->negative) { ssize_t i; int carry; - for (i = data->length - 1, carry = 1; i >= 0; i--) { - *p = buf[i] ^ 0xff; - if (carry) - carry = !++*p; - p--; - } - if (p[1] < 128) { - if (len < 1) - return ASN1_OVERFLOW; - *p-- = 0xff; - len--; - hibitset = 1; - } + + /* + * We represent the parsed integer as a positive value with a + * negativity flag. But we need to put it on the wire as the shortest + * twos-complement byte sequence possible. So we're going to negate + * the number as go. + */ + if (data->length == 1 && *(unsigned char *)data->data == 1) { + *(p--) = 0xff; + } else { + for (i = data->length - 1, carry = 1; i >= 0; i--) { + *p = buf[i] ^ 0xff; + if (carry) + carry = !++*p; + p--; + } + if (p[1] < 128) { + if (len < 1) + return ASN1_OVERFLOW; + *p-- = 0xff; + len--; + hibitset = 1; + } + } } else { p -= data->length; memcpy(p + 1, buf, data->length); diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/gen.c b/crypto/external/bsd/heimdal/dist/lib/asn1/gen.c index b16aaa49fa30..e4ffec21824c 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/gen.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/gen.c @@ -1,4 +1,4 @@ -/* $NetBSD: gen.c,v 1.5 2017/01/29 01:46:37 christos Exp $ */ +/* $NetBSD: gen.c,v 1.6 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan @@ -38,7 +38,7 @@ #include "gen_locl.h" #include -__RCSID("$NetBSD: gen.c,v 1.5 2017/01/29 01:46:37 christos Exp $"); +__RCSID("$NetBSD: gen.c,v 1.6 2023/06/19 21:41:42 christos Exp $"); FILE *privheaderfile, *headerfile, *codefile, *logfile, *templatefile; diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_copy.c b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_copy.c index 8562e03629ca..5fb2f45a62e1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_copy.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_copy.c @@ -1,4 +1,4 @@ -/* $NetBSD: gen_copy.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: gen_copy.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "gen_locl.h" -__RCSID("$NetBSD: gen_copy.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: gen_copy.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); static int used_fail; @@ -64,6 +64,7 @@ copy_type (const char *from, const char *to, const Type *t, int preserve) copy_primitive ("heim_integer", from, to); break; } + /* fallthrough */ case TBoolean: case TEnumerated : fprintf(codefile, "*(%s) = *(%s);\n", to, from); diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_decode.c b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_decode.c index 32415b361dae..23fdbfbd69d2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_decode.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_decode.c @@ -1,4 +1,4 @@ -/* $NetBSD: gen_decode.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: gen_decode.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -36,7 +36,7 @@ #include "gen_locl.h" #include "lex.h" -__RCSID("$NetBSD: gen_decode.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: gen_decode.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); static void decode_primitive (const char *typename, const char *name, const char *forwstr) @@ -596,14 +596,14 @@ decode_type (const char *name, const Type *t, int optional, classname(cl), ty ? "CONS" : "PRIM", valuename(cl, tag)); + fprintf(codefile, + "(%s)->element = %s;\n", + name, m->label); if (asprintf (&s, "%s(%s)->u.%s", m->optional ? "" : "&", name, m->gen_name) < 0 || s == NULL) errx(1, "malloc"); decode_type (s, m->type, m->optional, forwstr, m->gen_name, NULL, depth + 1); - fprintf(codefile, - "(%s)->element = %s;\n", - name, m->label); free(s); fprintf(codefile, "}\n"); @@ -612,23 +612,23 @@ decode_type (const char *name, const Type *t, int optional, if (have_ellipsis) { fprintf(codefile, "else {\n" + "(%s)->element = %s;\n" "(%s)->u.%s.data = calloc(1, len);\n" "if ((%s)->u.%s.data == NULL) {\n" "e = ENOMEM; %s;\n" "}\n" "(%s)->u.%s.length = len;\n" "memcpy((%s)->u.%s.data, p, len);\n" - "(%s)->element = %s;\n" "p += len;\n" "ret += len;\n" "len = 0;\n" "}\n", + name, have_ellipsis->label, name, have_ellipsis->gen_name, name, have_ellipsis->gen_name, forwstr, name, have_ellipsis->gen_name, - name, have_ellipsis->gen_name, - name, have_ellipsis->label); + name, have_ellipsis->gen_name); } else { fprintf(codefile, "else {\n" diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_free.c b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_free.c index e6e10786ab5a..91f411ae8a73 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_free.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_free.c @@ -1,4 +1,4 @@ -/* $NetBSD: gen_free.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: gen_free.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "gen_locl.h" -__RCSID("$NetBSD: gen_free.c,v 1.2 2017/01/28 21:31:45 christos Exp $"); +__RCSID("$NetBSD: gen_free.c,v 1.3 2023/06/19 21:41:42 christos Exp $"); static void free_primitive (const char *typename, const char *name) @@ -58,11 +58,19 @@ free_type (const char *name, const Type *t, int preserve) free_primitive ("heim_integer", name); break; } + /* fallthrough */ case TBoolean: case TEnumerated : case TNull: case TGeneralizedTime: case TUTCTime: + /* + * This doesn't do much, but it leaves zeros where garbage might + * otherwise have been found. Gets us closer to having the equivalent + * of a memset()-to-zero data structure after calling the free + * functions. + */ + fprintf(codefile, "*%s = 0;\n", name); break; case TBitString: if (ASN1_TAILQ_EMPTY(t->members)) diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_locl.h b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_locl.h index c509b6c943db..3a617d0a7446 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/gen_locl.h +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/gen_locl.h @@ -1,4 +1,4 @@ -/* $NetBSD: gen_locl.h,v 1.3 2017/01/29 19:23:28 christos Exp $ */ +/* $NetBSD: gen_locl.h,v 1.4 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/lex.c b/crypto/external/bsd/heimdal/dist/lib/asn1/lex.c index 2e4b61c0964a..ecae32515bc2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/lex.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/lex.c @@ -1,7 +1,7 @@ -/* $NetBSD: lex.c,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: lex.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -#line 3 "lex.c" +#line 2 "lex.c" #define YY_INT_ALIGNED short int @@ -9,8 +9,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -48,7 +48,6 @@ typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; @@ -56,7 +55,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -87,63 +85,61 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ -#ifdef __cplusplus +/* begin standard C++ headers. */ -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -160,15 +156,16 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -183,7 +180,6 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -198,12 +194,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -226,7 +222,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -254,7 +250,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -265,7 +261,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -273,11 +268,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -286,82 +281,78 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - yyleng = (yy_size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 95 #define YY_END_OF_BUFFER 96 /* This struct is not used in this scanner, @@ -371,7 +362,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[568] = +static const flex_int16_t yy_accept[568] = { 0, 0, 0, 96, 94, 90, 91, 87, 81, 81, 94, 94, 88, 88, 94, 89, 89, 89, 89, 89, 89, @@ -437,7 +428,7 @@ static yyconst flex_int16_t yy_accept[568] = 32, 89, 59, 70, 77, 53, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -469,7 +460,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[70] = +static const YY_CHAR yy_meta[70] = { 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, @@ -480,7 +471,7 @@ static yyconst flex_int32_t yy_meta[70] = 2, 2, 2, 2, 2, 2, 2, 2, 2 } ; -static yyconst flex_int16_t yy_base[570] = +static const flex_int16_t yy_base[570] = { 0, 0, 0, 636, 637, 637, 637, 637, 637, 63, 627, 628, 70, 77, 616, 74, 72, 76, 609, 65, 81, @@ -546,7 +537,7 @@ static yyconst flex_int16_t yy_base[570] = 0, 101, 0, 0, 0, 0, 637, 223, 69 } ; -static yyconst flex_int16_t yy_def[570] = +static const flex_int16_t yy_def[570] = { 0, 567, 1, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, @@ -612,7 +603,7 @@ static yyconst flex_int16_t yy_def[570] = 568, 568, 568, 568, 568, 568, 0, 567, 567 } ; -static yyconst flex_int16_t yy_nxt[707] = +static const flex_int16_t yy_nxt[707] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 11, 12, 13, 13, 13, 13, 13, 13, 14, 4, 15, 16, @@ -694,7 +685,7 @@ static yyconst flex_int16_t yy_nxt[707] = 567, 567, 567, 567, 567, 567 } ; -static yyconst flex_int16_t yy_chk[707] = +static const flex_int16_t yy_chk[707] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -850,8 +841,9 @@ static unsigned lineno = 1; static void unterminated(const char *, unsigned); +#line 842 "lex.c" /* This is for broken old lexes (solaris 10 and hpux) */ -#line 853 "lex.c" +#line 844 "lex.c" #define INITIAL 0 @@ -867,36 +859,36 @@ static void unterminated(const char *, unsigned); #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -904,35 +896,43 @@ void yyset_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif - static void yyunput (int c,char *buf_ptr ); +#ifndef YY_NO_UNPUT + static void yyunput ( int c, char *buf_ptr ); + +#endif + #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -940,7 +940,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -951,7 +951,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - yy_size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -964,7 +964,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1019,7 +1019,7 @@ extern int yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -1029,14 +1029,10 @@ extern int yylex (void); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 69 "lex.l" - -#line 1037 "lex.c" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1057,13 +1053,18 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 69 "lex.l" + +#line 1063 "lex.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -1079,7 +1080,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1089,9 +1090,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 568 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 637 ); @@ -1782,7 +1783,7 @@ case YY_STATE_EOF(INITIAL): { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -1835,6 +1836,7 @@ case YY_STATE_EOF(INITIAL): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer @@ -1846,9 +1848,9 @@ case YY_STATE_EOF(INITIAL): */ static int yy_get_next_buffer (void) { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1877,7 +1879,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1890,21 +1892,21 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1913,11 +1915,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1945,7 +1948,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -1959,12 +1962,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1980,14 +1986,14 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1997,9 +2003,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 568 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -2012,10 +2018,10 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -2025,17 +2031,19 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 568 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 567); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } - static void yyunput (int c, register char * yy_bp ) +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp ) { - register char *yy_cp; + char *yy_cp; yy_cp = (yy_c_buf_p); @@ -2045,10 +2053,10 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + int number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -2057,7 +2065,7 @@ static int yy_get_next_buffer (void) yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -2070,6 +2078,8 @@ static int yy_get_next_buffer (void) (yy_c_buf_p) = yy_cp; } +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -2094,7 +2104,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -2111,13 +2121,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -2155,11 +2165,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -2187,7 +2197,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -2215,7 +2225,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -2224,13 +2234,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } @@ -2249,15 +2259,11 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -2267,7 +2273,7 @@ extern int isatty (int ); { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -2310,7 +2316,7 @@ extern int isatty (int ); b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -2341,7 +2347,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -2360,7 +2366,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -2378,15 +2384,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2395,7 +2401,7 @@ static void yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc @@ -2415,7 +2421,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -2425,23 +2431,23 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -2454,28 +2460,29 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n, i; + yy_size_t n; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -2484,7 +2491,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -2500,9 +2507,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -2530,7 +2537,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -2553,7 +2560,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -2568,29 +2575,29 @@ char *yyget_text (void) } /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void yyset_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - yylineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ -void yyset_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - yyin = in_str ; + yyin = _in_str ; } -void yyset_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - yyout = out_str ; + yyout = _out_str ; } int yyget_debug (void) @@ -2598,9 +2605,9 @@ int yyget_debug (void) return yy_flex_debug; } -void yyset_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) @@ -2609,10 +2616,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -2621,8 +2628,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -2637,7 +2644,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -2658,18 +2665,19 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2679,11 +2687,12 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2691,12 +2700,12 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) { - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -2704,7 +2713,6 @@ void yyfree (void * ptr ) #line 275 "lex.l" - int yywrap () { diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/lex.h b/crypto/external/bsd/heimdal/dist/lib/asn1/lex.h index 39cf0db1fd2c..dd683fefcbb7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/lex.h +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/lex.h @@ -1,4 +1,4 @@ -/* $NetBSD: lex.h,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: lex.h,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/asn1/main.c b/crypto/external/bsd/heimdal/dist/lib/asn1/main.c index 06f79dae0caa..c6ee8e7698b0 100644 --- a/crypto/external/bsd/heimdal/dist/lib/asn1/main.c +++ b/crypto/external/bsd/heimdal/dist/lib/asn1/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.3 2017/01/29 19:23:28 christos Exp $ */ +/* $NetBSD: main.c,v 1.4 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/base/bsearch.c b/crypto/external/bsd/heimdal/dist/lib/base/bsearch.c index 412267860ba9..8d81e8c75ca3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/base/bsearch.c +++ b/crypto/external/bsd/heimdal/dist/lib/base/bsearch.c @@ -1,4 +1,4 @@ -/* $NetBSD: bsearch.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: bsearch.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2011, Secure Endpoints Inc. @@ -277,11 +277,12 @@ bsearch_common(const char *buf, size_t sz, const char *key, ret = 0; if (val_len && value) { /* Avoid strndup() so we don't need libroken here yet */ - *value = malloc(val_len + 1); - if (!*value) - ret = errno; - (void) memcpy(*value, &buf[val_start], val_len); - (*value)[val_len] = '\0'; + if ((*value = malloc(val_len + 1))) { + (void) memcpy(*value, &buf[val_start], val_len); + (*value)[val_len] = '\0'; + } else { + ret = errno; + } } break; } @@ -710,6 +711,10 @@ _bsearch_file(bsearch_file_handle bfh, const char *key, if (reads) *reads = 0; + if (value) + *value = NULL; + if (loops) + *loops = 0; /* If whole file is in memory then search that and we're done */ if (bfh->file_sz == bfh->cache_sz) @@ -717,11 +722,6 @@ _bsearch_file(bsearch_file_handle bfh, const char *key, /* Else block-wise binary search */ - if (value) - *value = NULL; - if (loops) - *loops = 0; - l = 0; r = (bfh->file_sz / bfh->page_sz) + 1; for (level = 0, page = r >> 1; page >= l && page < r ; level++) { @@ -853,7 +853,7 @@ stdb_copy_value(void *db, heim_string_t table, heim_data_t key, { bsearch_file_handle bfh = db; const char *k; - char *v; + char *v = NULL; heim_data_t value; int ret; @@ -871,6 +871,8 @@ stdb_copy_value(void *db, heim_string_t table, heim_data_t key, else k = (const char *)heim_data_get_ptr(key); ret = _bsearch_file(bfh, k, &v, NULL, NULL, NULL); + if (ret == 0 && v == NULL) + ret = -1; /* Quiet lint */ if (ret != 0) { if (ret > 0 && error) *error = heim_error_create(ret, "%s", strerror(ret)); diff --git a/crypto/external/bsd/heimdal/dist/lib/base/dll.c b/crypto/external/bsd/heimdal/dist/lib/base/dll.c index aa7045e1d6fa..7dc30e9d803b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/base/dll.c +++ b/crypto/external/bsd/heimdal/dist/lib/base/dll.c @@ -1,4 +1,4 @@ -/* $NetBSD: dll.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: dll.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /*********************************************************************** * Copyright (c) 2016 Kungliga Tekniska Högskolan @@ -85,7 +85,8 @@ struct tls_values { static HEIMDAL_THREAD_LOCAL struct tls_values values; -#define DEAD_KEY ((void *)8) +static char dead_key[1]; +static void no_dtor(void *d) { (void)d; } void heim_w32_service_thread_detach(void *unused) @@ -113,7 +114,7 @@ heim_w32_service_thread_detach(void *unused) assert(i < key_defs->keys_start_idx + key_defs->keys_num); } dtor = key_defs->keys_dtors[i - key_defs->keys_start_idx]; - if (values.values[i] != NULL && dtor != NULL && dtor != DEAD_KEY) + if (values.values[i] != NULL && dtor != NULL && dtor != no_dtor) dtor(values.values[i]); values.values[i] = NULL; } @@ -152,7 +153,7 @@ heim_w32_key_create(HEIM_PRIV_thread_key *key, void (*dtor)(void *)) #if !defined(WIN32) (void) pthread_once(&pt_once, create_pt_key); - (void) pthread_setspecific(pt_key, DEAD_KEY); + (void) pthread_setspecific(pt_key, dead_key); #endif HEIMDAL_MUTEX_lock(&tls_key_defs_lock); @@ -268,7 +269,7 @@ heim_w32_delete_key(HEIM_PRIV_thread_key key) key_lookup(key, &key_defs, &dtor_idx, NULL); if (key_defs == NULL) return EINVAL; - key_defs->keys_dtors[dtor_idx] = DEAD_KEY; + key_defs->keys_dtors[dtor_idx] = no_dtor; return 0; } @@ -281,7 +282,7 @@ heim_w32_setspecific(HEIM_PRIV_thread_key key, void *value) size_t i; #if !defined(WIN32) - (void) pthread_setspecific(pt_key, DEAD_KEY); + (void) pthread_setspecific(pt_key, dead_key); #endif key_lookup(key, NULL, NULL, &dtor); @@ -306,7 +307,7 @@ heim_w32_setspecific(HEIM_PRIV_thread_key key, void *value) assert(key < values.values_num); - if (values.values[key] != NULL && dtor != NULL && dtor != DEAD_KEY) + if (values.values[key] != NULL && dtor != NULL && dtor != no_dtor) dtor(values.values[key]); values.values[key] = value; diff --git a/crypto/external/bsd/heimdal/dist/lib/base/error.c b/crypto/external/bsd/heimdal/dist/lib/base/error.c index 5ae442a73fda..ca4ecb84f07e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/base/error.c +++ b/crypto/external/bsd/heimdal/dist/lib/base/error.c @@ -1,4 +1,4 @@ -/* $NetBSD: error.c,v 1.3 2019/10/28 18:12:54 joerg Exp $ */ +/* $NetBSD: error.c,v 1.4 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2010 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/base/heimbase.c b/crypto/external/bsd/heimdal/dist/lib/base/heimbase.c index e8798e54c71c..9bed92f8479b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/base/heimbase.c +++ b/crypto/external/bsd/heimdal/dist/lib/base/heimbase.c @@ -1,4 +1,4 @@ -/* $NetBSD: heimbase.c,v 1.2 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: heimbase.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2010 Kungliga Tekniska Högskolan @@ -88,11 +88,12 @@ struct heim_auto_release { void * heim_retain(void *ptr) { - struct heim_base *p = PTR2BASE(ptr); + struct heim_base *p; if (ptr == NULL || heim_base_is_tagged(ptr)) return ptr; + p = PTR2BASE(ptr); if (p->ref_cnt == heim_base_atomic_max) return ptr; @@ -111,11 +112,12 @@ void heim_release(void *ptr) { heim_base_atomic_type old; - struct heim_base *p = PTR2BASE(ptr); + struct heim_base *p; if (ptr == NULL || heim_base_is_tagged(ptr)) return; + p = PTR2BASE(ptr); if (p->ref_cnt == heim_base_atomic_max) return; @@ -258,9 +260,12 @@ heim_cmp(heim_object_t a, heim_object_t b) static void memory_dealloc(void *ptr) { - struct heim_base_mem *p = (struct heim_base_mem *)PTR2BASE(ptr); - if (p->dealloc) - p->dealloc(ptr); + if (ptr) { + struct heim_base_mem *p = (struct heim_base_mem *)PTR2BASE(ptr); + + if (p->dealloc) + p->dealloc(ptr); + } } struct heim_type_data memory_object = { @@ -668,13 +673,16 @@ heim_auto_release_create(void) heim_object_t heim_auto_release(heim_object_t ptr) { - struct heim_base *p = PTR2BASE(ptr); - struct ar_tls *tls = autorel_tls(); + struct heim_base *p; + struct ar_tls *tls; heim_auto_release_t ar; if (ptr == NULL || heim_base_is_tagged(ptr)) return ptr; + p = PTR2BASE(ptr); + tls = autorel_tls(); + /* drop from old pool */ if ((ar = p->autorelpool) != NULL) { HEIMDAL_MUTEX_lock(&ar->pool_mutex); diff --git a/crypto/external/bsd/heimdal/dist/lib/com_err/com_err.3 b/crypto/external/bsd/heimdal/dist/lib/com_err/com_err.3 index dd6b908f4f7a..ec37221afc9e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/com_err/com_err.3 +++ b/crypto/external/bsd/heimdal/dist/lib/com_err/com_err.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: com_err.3,v 1.4 2017/01/28 21:31:45 christos Exp $ +.\" $NetBSD: com_err.3,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/com_err/compile_et.c b/crypto/external/bsd/heimdal/dist/lib/com_err/compile_et.c index 2524f6578eb3..b6a5040a386f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/com_err/compile_et.c +++ b/crypto/external/bsd/heimdal/dist/lib/com_err/compile_et.c @@ -1,4 +1,4 @@ -/* $NetBSD: compile_et.c,v 1.4 2017/01/28 21:31:45 christos Exp $ */ +/* $NetBSD: compile_et.c,v 1.5 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 1998-2002 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/com_err/lex.c b/crypto/external/bsd/heimdal/dist/lib/com_err/lex.c index 19bad10b0fda..1892bcc86a46 100644 --- a/crypto/external/bsd/heimdal/dist/lib/com_err/lex.c +++ b/crypto/external/bsd/heimdal/dist/lib/com_err/lex.c @@ -1,7 +1,7 @@ -/* $NetBSD: lex.c,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: lex.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -#line 3 "lex.c" +#line 2 "lex.c" #define YY_INT_ALIGNED short int @@ -9,8 +9,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -48,7 +48,6 @@ typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; @@ -56,7 +55,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -87,63 +85,61 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ -#ifdef __cplusplus +/* begin standard C++ headers. */ -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -160,15 +156,16 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -183,7 +180,6 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -198,12 +194,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -226,7 +222,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -254,7 +250,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -265,7 +261,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -273,11 +268,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -286,82 +281,78 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - yyleng = (yy_size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 16 #define YY_END_OF_BUFFER 17 /* This struct is not used in this scanner, @@ -371,7 +362,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[46] = +static const flex_int16_t yy_accept[46] = { 0, 0, 0, 17, 15, 11, 12, 13, 10, 9, 14, 14, 14, 14, 10, 9, 14, 3, 14, 14, 1, @@ -380,7 +371,7 @@ static yyconst flex_int16_t yy_accept[46] = 14, 4, 14, 2, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -412,14 +403,14 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[23] = +static const YY_CHAR yy_meta[23] = { 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 } ; -static yyconst flex_int16_t yy_base[48] = +static const flex_int16_t yy_base[48] = { 0, 0, 0, 56, 57, 57, 57, 57, 0, 49, 0, 12, 13, 34, 0, 47, 0, 0, 40, 31, 0, @@ -428,7 +419,7 @@ static yyconst flex_int16_t yy_base[48] = 12, 0, 14, 0, 57, 34, 23 } ; -static yyconst flex_int16_t yy_def[48] = +static const flex_int16_t yy_def[48] = { 0, 45, 1, 45, 45, 45, 45, 45, 46, 47, 47, 47, 47, 47, 46, 47, 47, 47, 47, 47, 47, @@ -437,7 +428,7 @@ static yyconst flex_int16_t yy_def[48] = 47, 47, 47, 47, 0, 45, 45 } ; -static yyconst flex_int16_t yy_nxt[80] = +static const flex_int16_t yy_nxt[80] = { 0, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 10, 10, 11, 10, 12, 10, 10, 10, 13, 10, @@ -449,7 +440,7 @@ static yyconst flex_int16_t yy_nxt[80] = 45, 45, 45, 45, 45, 45, 45, 45, 45 } ; -static yyconst flex_int16_t yy_chk[80] = +static const flex_int16_t yy_chk[80] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -529,7 +520,8 @@ static int getstring(void); #undef ECHO -#line 531 "lex.c" +#line 521 "lex.c" +#line 522 "lex.c" #define INITIAL 0 @@ -545,36 +537,36 @@ static int getstring(void); #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -582,33 +574,41 @@ void yyset_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif +#ifndef YY_NO_UNPUT + +#endif + #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -616,7 +616,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -627,7 +627,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - yy_size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -640,7 +640,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -695,7 +695,7 @@ extern int yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -705,14 +705,10 @@ extern int yylex (void); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 58 "lex.l" - -#line 713 "lex.c" - if ( !(yy_init) ) { (yy_init) = 1; @@ -733,13 +729,18 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 58 "lex.l" + +#line 739 "lex.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -755,7 +756,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -765,9 +766,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 46 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 57 ); @@ -953,7 +954,7 @@ case YY_STATE_EOF(INITIAL): { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -1006,6 +1007,7 @@ case YY_STATE_EOF(INITIAL): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer @@ -1017,9 +1019,9 @@ case YY_STATE_EOF(INITIAL): */ static int yy_get_next_buffer (void) { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1048,7 +1050,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1061,21 +1063,21 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1084,11 +1086,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1116,7 +1119,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -1130,12 +1133,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1151,14 +1157,14 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1168,9 +1174,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 46 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1183,10 +1189,10 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1196,14 +1202,18 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 46 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 45); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT + +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -1228,7 +1238,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1245,13 +1255,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -1289,11 +1299,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -1321,7 +1331,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -1349,7 +1359,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1358,13 +1368,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } @@ -1383,15 +1393,11 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -1401,7 +1407,7 @@ extern int isatty (int ); { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -1444,7 +1450,7 @@ extern int isatty (int ); b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -1475,7 +1481,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -1494,7 +1500,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -1512,15 +1518,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1529,7 +1535,7 @@ static void yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc @@ -1549,7 +1555,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -1559,23 +1565,23 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -1588,28 +1594,29 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n, i; + yy_size_t n; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -1618,7 +1625,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -1634,9 +1641,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -1664,7 +1671,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -1687,7 +1694,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -1702,29 +1709,29 @@ char *yyget_text (void) } /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void yyset_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - yylineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ -void yyset_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - yyin = in_str ; + yyin = _in_str ; } -void yyset_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - yyout = out_str ; + yyout = _out_str ; } int yyget_debug (void) @@ -1732,9 +1739,9 @@ int yyget_debug (void) return yy_flex_debug; } -void yyset_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) @@ -1743,10 +1750,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -1755,8 +1762,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -1771,7 +1778,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -1792,18 +1799,19 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1813,11 +1821,12 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1825,12 +1834,12 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) { - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1838,7 +1847,6 @@ void yyfree (void * ptr ) #line 74 "lex.l" - int yywrap () { diff --git a/crypto/external/bsd/heimdal/dist/lib/com_err/parse.c b/crypto/external/bsd/heimdal/dist/lib/com_err/parse.c index bce20d213d43..8185d0ea226b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/com_err/parse.c +++ b/crypto/external/bsd/heimdal/dist/lib/com_err/parse.c @@ -1,16 +1,16 @@ -/* $NetBSD: parse.c,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: parse.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -38,6 +36,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -45,11 +47,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 -/* Bison version. */ -#define YYBISON_VERSION "2.3" +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -57,41 +59,16 @@ /* Pure parsers. */ #define YYPURE 0 -/* Using locations. */ -#define YYLSP_NEEDED 0 +/* Push parsers. */ +#define YYPUSH 0 - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ET = 258, - INDEX = 259, - PREFIX = 260, - EC = 261, - ID = 262, - END = 263, - STRING = 264, - NUMBER = 265 - }; -#endif -/* Tokens. */ -#define ET 258 -#define INDEX 259 -#define PREFIX 260 -#define EC 261 -#define ID 262 -#define END 263 -#define STRING 264 -#define NUMBER 265 +/* Pull parsers. */ +#define YYPULL 1 -/* Copy the first part of user declarations. */ +/* First part of user prologue. */ #line 1 "parse.y" /* @@ -145,77 +122,214 @@ extern char *yytext; #define YYFREE free +#line 124 "parse.c" -/* Enabling traces. */ +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_PARSE_H_INCLUDED +# define YY_YY_PARSE_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 +#if YYDEBUG +extern int yydebug; #endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + ET = 258, /* ET */ + INDEX = 259, /* INDEX */ + PREFIX = 260, /* PREFIX */ + EC = 261, /* EC */ + ID = 262, /* ID */ + END = 263, /* END */ + STRING = 264, /* STRING */ + NUMBER = 265 /* NUMBER */ + }; + typedef enum yytokentype yytoken_kind_t; #endif +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define ET 258 +#define INDEX 259 +#define PREFIX 260 +#define EC 261 +#define ID 262 +#define END 263 +#define STRING 264 +#define NUMBER 265 +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 54 "parse.y" +union YYSTYPE { +#line 54 "parse.y" + char *string; int number; -} -/* Line 193 of yacc.c. */ -#line 174 "parse.c" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 202 "parse.c" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif - -/* Copy the second part of user declarations. */ +extern YYSTYPE yylval; + + +int yyparse (void); + + +#endif /* !YY_YY_PARSE_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_ET = 3, /* ET */ + YYSYMBOL_INDEX = 4, /* INDEX */ + YYSYMBOL_PREFIX = 5, /* PREFIX */ + YYSYMBOL_EC = 6, /* EC */ + YYSYMBOL_ID = 7, /* ID */ + YYSYMBOL_END = 8, /* END */ + YYSYMBOL_STRING = 9, /* STRING */ + YYSYMBOL_NUMBER = 10, /* NUMBER */ + YYSYMBOL_11_ = 11, /* ',' */ + YYSYMBOL_YYACCEPT = 12, /* $accept */ + YYSYMBOL_file = 13, /* file */ + YYSYMBOL_header = 14, /* header */ + YYSYMBOL_id = 15, /* id */ + YYSYMBOL_et = 16, /* et */ + YYSYMBOL_statements = 17, /* statements */ + YYSYMBOL_statement = 18 /* statement */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + -/* Line 216 of yacc.c. */ -#line 187 "parse.c" #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else typedef signed char yytype_int8; -#else -typedef short int yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short int yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -223,55 +337,106 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YY_USE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return i; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if ! defined yyoverflow || YYERROR_VERBOSE +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -288,11 +453,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -300,8 +465,8 @@ YYID (i) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -315,88 +480,89 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 9 /* YYLAST -- Last index in YYTABLE. */ @@ -408,18 +574,23 @@ union yyalloc #define YYNNTS 7 /* YYNRULES -- Number of rules. */ #define YYNRULES 15 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 24 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 265 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -451,25 +622,7 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint8 yyprhs[] = -{ - 0, 0, 3, 4, 7, 10, 12, 15, 18, 22, - 24, 27, 30, 33, 35, 40 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 13, 0, -1, -1, 14, 17, -1, 15, 16, -1, - 16, -1, 7, 9, -1, 3, 9, -1, 3, 9, - 9, -1, 18, -1, 17, 18, -1, 4, 10, -1, - 5, 9, -1, 5, -1, 6, 9, 11, 9, -1, - 8, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 65, 65, 66, 69, 70, 73, 79, 85, 94, @@ -477,60 +630,42 @@ static const yytype_uint8 yyrline[] = }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "ET", "INDEX", "PREFIX", "EC", "ID", - "END", "STRING", "NUMBER", "','", "$accept", "file", "header", "id", - "et", "statements", "statement", 0 + "\"end of file\"", "error", "\"invalid token\"", "ET", "INDEX", + "PREFIX", "EC", "ID", "END", "STRING", "NUMBER", "','", "$accept", + "file", "header", "id", "et", "statements", "statement", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 44 -}; -# endif +#define YYPACT_NINF (-5) -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 12, 13, 13, 14, 14, 15, 16, 16, 17, - 17, 18, 18, 18, 18, 18 -}; +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 2, 2, 1, 2, 2, 3, 1, - 2, 2, 2, 1, 4, 1 -}; +#define YYTABLE_NINF (-1) -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 2, 0, 0, 0, 0, 0, 5, 7, 6, 1, - 0, 13, 0, 15, 3, 9, 4, 8, 11, 12, - 0, 10, 0, 14 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - -1, 3, 4, 5, 6, 14, 15 -}; +#define yytable_value_is_error(Yyn) \ + 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -5 static const yytype_int8 yypact[] = { 0, -3, -1, 5, -4, 6, -5, 1, -5, -5, @@ -538,18 +673,32 @@ static const yytype_int8 yypact[] = 3, -5, 8, -5 }; +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int8 yydefact[] = +{ + 2, 0, 0, 0, 0, 0, 5, 7, 6, 1, + 0, 13, 0, 15, 3, 9, 4, 8, 11, 12, + 0, 10, 0, 14 +}; + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -5, -5, -5, -5, 10, -5, 9 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint8 yytable[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + 0, 3, 4, 5, 6, 14, 15 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int8 yytable[] = { 10, 11, 12, 1, 13, 9, 7, 2, 8, 1, 17, 0, 18, 19, 22, 16, 20, 23, 0, 0, @@ -563,104 +712,64 @@ static const yytype_int8 yycheck[] = -1, -1, -1, 14 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ +static const yytype_int8 yystos[] = { 0, 3, 7, 13, 14, 15, 16, 9, 9, 0, 4, 5, 6, 8, 17, 18, 16, 9, 10, 9, 9, 18, 11, 9 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr1[] = +{ + 0, 12, 13, 13, 14, 14, 15, 16, 16, 17, + 17, 18, 18, 18, 18, 18 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 0, 2, 2, 1, 2, 2, 3, 1, + 2, 2, 2, 1, 4, 1 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab -#define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -670,80 +779,58 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { + FILE *yyoutput = yyo; + YY_USE (yyoutput); if (!yyvaluep) return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -751,80 +838,68 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -839,478 +914,219 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); - + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* Lookahead token kind. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; + /*----------. | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { - - int yystate; + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; + + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + int yyn; + /* The return value of yyparse. */ int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; + yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1325,30 +1141,26 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1363,14 +1175,14 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -1383,63 +1195,69 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 6: + case 6: /* id: ID STRING */ #line 74 "parse.y" - { - id_str = (yyvsp[(2) - (2)].string); + { + id_str = (yyvsp[0].string); } +#line 1202 "parse.c" break; - case 7: + case 7: /* et: ET STRING */ #line 80 "parse.y" - { - base_id = name2number((yyvsp[(2) - (2)].string)); - strlcpy(name, (yyvsp[(2) - (2)].string), sizeof(name)); - free((yyvsp[(2) - (2)].string)); + { + base_id = name2number((yyvsp[0].string)); + strlcpy(name, (yyvsp[0].string), sizeof(name)); + free((yyvsp[0].string)); } +#line 1212 "parse.c" break; - case 8: + case 8: /* et: ET STRING STRING */ #line 86 "parse.y" - { - base_id = name2number((yyvsp[(2) - (3)].string)); - strlcpy(name, (yyvsp[(3) - (3)].string), sizeof(name)); - free((yyvsp[(2) - (3)].string)); - free((yyvsp[(3) - (3)].string)); + { + base_id = name2number((yyvsp[-1].string)); + strlcpy(name, (yyvsp[0].string), sizeof(name)); + free((yyvsp[-1].string)); + free((yyvsp[0].string)); } +#line 1223 "parse.c" break; - case 11: + case 11: /* statement: INDEX NUMBER */ #line 99 "parse.y" - { - number = (yyvsp[(2) - (2)].number); + { + number = (yyvsp[0].number); } +#line 1231 "parse.c" break; - case 12: + case 12: /* statement: PREFIX STRING */ #line 103 "parse.y" - { + { free(prefix); - asprintf (&prefix, "%s_", (yyvsp[(2) - (2)].string)); + asprintf (&prefix, "%s_", (yyvsp[0].string)); if (prefix == NULL) errx(1, "malloc"); - free((yyvsp[(2) - (2)].string)); + free((yyvsp[0].string)); } +#line 1243 "parse.c" break; - case 13: + case 13: /* statement: PREFIX */ #line 111 "parse.y" - { + { prefix = realloc(prefix, 1); if (prefix == NULL) errx(1, "malloc"); *prefix = '\0'; } +#line 1254 "parse.c" break; - case 14: + case 14: /* statement: EC STRING ',' STRING */ #line 118 "parse.y" - { + { struct error_code *ec = malloc(sizeof(*ec)); if (ec == NULL) @@ -1448,121 +1266,98 @@ yyreduce: ec->next = NULL; ec->number = number; if(prefix && *prefix != '\0') { - asprintf (&ec->name, "%s%s", prefix, (yyvsp[(2) - (4)].string)); + asprintf (&ec->name, "%s%s", prefix, (yyvsp[-2].string)); if (ec->name == NULL) errx(1, "malloc"); - free((yyvsp[(2) - (4)].string)); + free((yyvsp[-2].string)); } else - ec->name = (yyvsp[(2) - (4)].string); - ec->string = (yyvsp[(4) - (4)].string); + ec->name = (yyvsp[-2].string); + ec->string = (yyvsp[0].string); APPEND(codes, ec); number++; } +#line 1278 "parse.c" break; - case 15: + case 15: /* statement: END */ #line 138 "parse.y" - { + { YYACCEPT; } +#line 1286 "parse.c" break; -/* Line 1267 of yacc.c. */ -#line 1471 "parse.c" +#line 1290 "parse.c" + default: break; } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif } - - if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -1571,14 +1366,13 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -1591,42 +1385,42 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1637,51 +1431,55 @@ yyerrlab1: `-------------------------------------*/ yyacceptlab: yyresult = 0; - goto yyreturn; + goto yyreturnlab; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; - goto yyreturn; + goto yyreturnlab; -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ -#endif + goto yyreturnlab; -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} + return yyresult; +} #line 143 "parse.y" @@ -1716,4 +1514,3 @@ yyerror (char *s) { _lex_error_message ("%s\n", s); } - diff --git a/crypto/external/bsd/heimdal/dist/lib/com_err/parse.h b/crypto/external/bsd/heimdal/dist/lib/com_err/parse.h index 05774908b9e8..29f9d5629e32 100644 --- a/crypto/external/bsd/heimdal/dist/lib/com_err/parse.h +++ b/crypto/external/bsd/heimdal/dist/lib/com_err/parse.h @@ -1,16 +1,16 @@ -/* $NetBSD: parse.h,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: parse.h,v 1.3 2023/06/19 21:41:42 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -35,23 +33,45 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Tokens. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_YY_PARSE_H_INCLUDED +# define YY_YY_PARSE_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ET = 258, - INDEX = 259, - PREFIX = 260, - EC = 261, - ID = 262, - END = 263, - STRING = 264, - NUMBER = 265 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + ET = 258, /* ET */ + INDEX = 259, /* INDEX */ + PREFIX = 260, /* PREFIX */ + EC = 261, /* EC */ + ID = 262, /* ID */ + END = 263, /* END */ + STRING = 264, /* STRING */ + NUMBER = 265 /* NUMBER */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define ET 258 #define INDEX 259 #define PREFIX 260 @@ -61,23 +81,28 @@ #define STRING 264 #define NUMBER 265 - - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 54 "parse.y" +union YYSTYPE { +#line 54 "parse.y" + char *string; int number; -} -/* Line 1529 of yacc.c. */ -#line 74 "parse.h" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 92 "parse.h" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; + +int yyparse (void); + + +#endif /* !YY_YY_PARSE_H_INCLUDED */ diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/gss_acquire_cred.3 b/crypto/external/bsd/heimdal/dist/lib/gssapi/gss_acquire_cred.3 index ae60a6c183d4..60b5641f1918 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/gss_acquire_cred.3 +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/gss_acquire_cred.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gss_acquire_cred.3,v 1.4 2017/01/28 21:31:46 christos Exp $ +.\" $NetBSD: gss_acquire_cred.3,v 1.5 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2003 - 2007 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/gssapi.3 b/crypto/external/bsd/heimdal/dist/lib/gssapi/gssapi.3 index 0b02c2fc60e8..d3b0bc6a270f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/gssapi.3 +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/gssapi.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: gssapi.3,v 1.5 2017/01/28 21:31:46 christos Exp $ +.\" $NetBSD: gssapi.3,v 1.6 2023/06/19 21:41:42 christos Exp $ .\" .\" Copyright (c) 2003 - 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/accept_sec_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/accept_sec_context.c index 9e3778f4900b..e5befbedb0cd 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/accept_sec_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/accept_sec_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: accept_sec_context.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: accept_sec_context.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -445,6 +445,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status, * lets only send the error token on clock skew, that * limit when send error token for non-MUTUAL. */ + free_Authenticator(ctx->auth_context->authenticator); return send_error_token(minor_status, context, kret, server, &indata, output_token); } else if (kret) { diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/acquire_cred.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/acquire_cred.c index fa418df8a3b1..c1846c54cf06 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/acquire_cred.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/acquire_cred.c @@ -1,4 +1,4 @@ -/* $NetBSD: acquire_cred.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: acquire_cred.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan @@ -102,6 +102,7 @@ acquire_cred_with_password(OM_uint32 *minor_status, krb5_error_code kret; time_t now; OM_uint32 left; + const char *realm; if (cred_usage == GSS_C_ACCEPT) { /* @@ -128,6 +129,10 @@ acquire_cred_with_password(OM_uint32 *minor_status, if (kret) goto end; + realm = krb5_principal_get_realm(context, handle->principal); + + krb5_get_init_creds_opt_set_default_flags(context, "gss_krb5", realm, opt); + /* * Get the current time before the AS exchange so we don't * accidentally end up returning a value that puts advertised diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/arcfour.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/arcfour.c index 802208e0ee06..8635c0752534 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/arcfour.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/arcfour.c @@ -1,4 +1,4 @@ -/* $NetBSD: arcfour.c,v 1.5 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: arcfour.c,v 1.6 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2003 - 2006 Kungliga Tekniska Högskolan @@ -179,7 +179,7 @@ arcfour_mic_cksum_iov(krb5_context context, memcpy(ptr + ofs, padding->buffer.value, padding->buffer.length); - ofs += padding->buffer.length; + /* ofs += padding->buffer.length; */ } ret = krb5_crypto_init(context, key, 0, &crypto); @@ -381,7 +381,7 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status, return GSS_S_FAILURE; } - cmp = ct_memcmp(cksum_data, p + 8, 8); + cmp = (ct_memcmp(cksum_data, p + 8, 8) == 0); if (cmp) { *minor_status = 0; return GSS_S_BAD_MIC; @@ -415,9 +415,9 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status, _gsskrb5_decode_be_om_uint32(SND_SEQ, &seq_number); if (context_handle->more_flags & LOCAL) - cmp = memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4); + cmp = (ct_memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4) != 0); else - cmp = memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4); + cmp = (ct_memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4) != 0); memset_s(SND_SEQ, sizeof(SND_SEQ), 0, sizeof(SND_SEQ)); if (cmp != 0) { @@ -726,9 +726,9 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status, _gsskrb5_decode_be_om_uint32(SND_SEQ, &seq_number); if (context_handle->more_flags & LOCAL) - cmp = memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4); + cmp = (ct_memcmp(&SND_SEQ[4], "\xff\xff\xff\xff", 4) != 0); else - cmp = memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4); + cmp = (ct_memcmp(&SND_SEQ[4], "\x00\x00\x00\x00", 4) != 0); if (cmp != 0) { *minor_status = 0; @@ -812,7 +812,7 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status, return GSS_S_FAILURE; } - cmp = ct_memcmp(cksum_data, p0 + 16, 8); /* SGN_CKSUM */ + cmp = (ct_memcmp(cksum_data, p0 + 16, 8) == 0); /* SGN_CKSUM */ if (cmp) { _gsskrb5_release_buffer(minor_status, output_message_buffer); *minor_status = 0; @@ -962,7 +962,13 @@ _gssapi_wrap_iov_length_arcfour(OM_uint32 *minor_status, } } - major_status = _gk_verify_buffers(minor_status, ctx, header, padding, trailer); + if (header == NULL) { + *minor_status = EINVAL; + return GSS_S_FAILURE; + } + + major_status = _gk_verify_buffers(minor_status, ctx, header, + padding, trailer, FALSE); if (major_status != GSS_S_COMPLETE) { return major_status; } @@ -1019,7 +1025,8 @@ _gssapi_wrap_iov_arcfour(OM_uint32 *minor_status, padding = _gk_find_buffer(iov, iov_count, GSS_IOV_BUFFER_TYPE_PADDING); trailer = _gk_find_buffer(iov, iov_count, GSS_IOV_BUFFER_TYPE_TRAILER); - major_status = _gk_verify_buffers(minor_status, ctx, header, padding, trailer); + major_status = _gk_verify_buffers(minor_status, ctx, header, + padding, trailer, FALSE); if (major_status != GSS_S_COMPLETE) { return major_status; } @@ -1056,7 +1063,7 @@ _gssapi_wrap_iov_arcfour(OM_uint32 *minor_status, header_len -= data_len; } - if (GSS_IOV_BUFFER_FLAGS(header->type) & GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE) { + if (GSS_IOV_BUFFER_FLAGS(header->type) & GSS_IOV_BUFFER_FLAG_ALLOCATE) { major_status = _gk_allocate_buffer(minor_status, header, header_len); if (major_status != GSS_S_COMPLETE) @@ -1070,7 +1077,7 @@ _gssapi_wrap_iov_arcfour(OM_uint32 *minor_status, } if (padding) { - if (GSS_IOV_BUFFER_FLAGS(padding->type) & GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE) { + if (GSS_IOV_BUFFER_FLAGS(padding->type) & GSS_IOV_BUFFER_FLAG_ALLOCATE) { major_status = _gk_allocate_buffer(minor_status, padding, 1); if (major_status != GSS_S_COMPLETE) goto failure; @@ -1287,10 +1294,11 @@ _gssapi_unwrap_iov_arcfour(OM_uint32 *minor_status, /* Check if the packet is correct */ major_status = _gk_verify_buffers(minor_status, - ctx, - header, - padding, - trailer); + ctx, + header, + padding, + trailer, + FALSE); /* behaves as stream cipher */ if (major_status != GSS_S_COMPLETE) { return major_status; } @@ -1300,15 +1308,19 @@ _gssapi_unwrap_iov_arcfour(OM_uint32 *minor_status, return GSS_S_FAILURE; } - if (IS_DCE_STYLE(context)) { - verify_len = GSS_ARCFOUR_WRAP_TOKEN_SIZE + - GSS_ARCFOUR_WRAP_TOKEN_DCE_DER_HEADER_SIZE; - if (header->buffer.length > verify_len) { - return GSS_S_BAD_MECH; + verify_len = header->buffer.length; + + if (!IS_DCE_STYLE(context)) { + for (i = 0; i < iov_count; i++) { + /* length in header also includes data and padding */ + if (GSS_IOV_BUFFER_TYPE(iov[i].type) == GSS_IOV_BUFFER_TYPE_DATA) + verify_len += iov[i].buffer.length; } - } else { - verify_len = header->buffer.length; + + if (padding) + verify_len += padding->buffer.length; } + _p = header->buffer.value; ret = _gssapi_verify_mech_header(&_p, @@ -1387,19 +1399,9 @@ _gssapi_unwrap_iov_arcfour(OM_uint32 *minor_status, _gsskrb5_decode_be_om_uint32(snd_seq, &seq_number); if (ctx->more_flags & LOCAL) { - cmp = memcmp(&snd_seq[4], "\xff\xff\xff\xff", 4); + cmp = (ct_memcmp(&snd_seq[4], "\xff\xff\xff\xff", 4) != 0); } else { - cmp = memcmp(&snd_seq[4], "\x00\x00\x00\x00", 4); - } - if (cmp != 0) { - *minor_status = 0; - return GSS_S_BAD_MIC; - } - - if (ctx->more_flags & LOCAL) { - cmp = memcmp(&snd_seq[4], "\xff\xff\xff\xff", 4); - } else { - cmp = memcmp(&snd_seq[4], "\x00\x00\x00\x00", 4); + cmp = (ct_memcmp(&snd_seq[4], "\x00\x00\x00\x00", 4) != 0); } if (cmp != 0) { *minor_status = 0; diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/cfx.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/cfx.c index 56b8c3308c6f..c3f2236a7b17 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/cfx.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/cfx.c @@ -1,4 +1,4 @@ -/* $NetBSD: cfx.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: cfx.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2003, PADL Software Pty Ltd. @@ -208,11 +208,36 @@ gss_iov_buffer_desc * _gk_find_buffer(gss_iov_buffer_desc *iov, int iov_count, OM_uint32 type) { int i; + gss_iov_buffer_t iovp = GSS_C_NO_IOV_BUFFER; - for (i = 0; i < iov_count; i++) - if (type == GSS_IOV_BUFFER_TYPE(iov[i].type)) - return &iov[i]; - return NULL; + if (iov == GSS_C_NO_IOV_BUFFER) + return GSS_C_NO_IOV_BUFFER; + + /* + * This function is used to find header, padding or trailer buffers + * which are singletons; return NULL if multiple instances are found. + */ + for (i = 0; i < iov_count; i++) { + if (type == GSS_IOV_BUFFER_TYPE(iov[i].type)) { + if (iovp == GSS_C_NO_IOV_BUFFER) + iovp = &iov[i]; + else + return GSS_C_NO_IOV_BUFFER; + } + } + + /* + * For compatibility with SSPI, an empty padding buffer is treated + * equivalent to an absent padding buffer (unless the caller is + * requesting that a padding buffer be allocated). + */ + if (iovp && + iovp->buffer.length == 0 && + type == GSS_IOV_BUFFER_TYPE_PADDING && + (GSS_IOV_BUFFER_FLAGS(iovp->type) & GSS_IOV_BUFFER_FLAG_ALLOCATE) == 0) + iovp = NULL; + + return iovp; } OM_uint32 @@ -241,7 +266,8 @@ _gk_verify_buffers(OM_uint32 *minor_status, const gsskrb5_ctx ctx, const gss_iov_buffer_desc *header, const gss_iov_buffer_desc *padding, - const gss_iov_buffer_desc *trailer) + const gss_iov_buffer_desc *trailer, + int block_cipher) { if (header == NULL) { *minor_status = EINVAL; @@ -262,9 +288,12 @@ _gk_verify_buffers(OM_uint32 *minor_status, } } else { /* - * In non-DCE style mode we require having a padding buffer + * In non-DCE style mode we require having a padding buffer for + * encryption types that do not behave as stream ciphers. This + * check is superfluous for now, as only RC4 and RFC4121 enctypes + * are presently implemented for the IOV APIs; be defensive. */ - if (padding == NULL) { + if (block_cipher && padding == NULL) { *minor_status = EINVAL; return GSS_S_FAILURE; } @@ -308,7 +337,8 @@ _gssapi_wrap_cfx_iov(OM_uint32 *minor_status, trailer = _gk_find_buffer(iov, iov_count, GSS_IOV_BUFFER_TYPE_TRAILER); - major_status = _gk_verify_buffers(minor_status, ctx, header, padding, trailer); + major_status = _gk_verify_buffers(minor_status, ctx, header, + padding, trailer, FALSE); if (major_status != GSS_S_COMPLETE) { return major_status; } @@ -749,7 +779,8 @@ _gssapi_unwrap_cfx_iov(OM_uint32 *minor_status, trailer = _gk_find_buffer(iov, iov_count, GSS_IOV_BUFFER_TYPE_TRAILER); - major_status = _gk_verify_buffers(minor_status, ctx, header, padding, trailer); + major_status = _gk_verify_buffers(minor_status, ctx, header, + padding, trailer, FALSE); if (major_status != GSS_S_COMPLETE) { return major_status; } @@ -1071,7 +1102,8 @@ _gssapi_wrap_iov_length_cfx(OM_uint32 *minor_status, } } - major_status = _gk_verify_buffers(minor_status, ctx, header, padding, trailer); + major_status = _gk_verify_buffers(minor_status, ctx, header, + padding, trailer, FALSE); if (major_status != GSS_S_COMPLETE) { return major_status; } diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/decapsulate.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/decapsulate.c index e2ea4503fd28..df1c11b2fe63 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/decapsulate.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/decapsulate.c @@ -1,4 +1,4 @@ -/* $NetBSD: decapsulate.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: decapsulate.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan @@ -56,6 +56,8 @@ _gsskrb5_get_mech (const u_char *ptr, e = der_get_length (p, total_len - 1, &len, &len_len); if (e || 1 + len_len + len != total_len) return -1; + if (total_len < 1 + len_len + 1) + return -1; p += len_len; if (*p++ != 0x06) return -1; @@ -82,6 +84,10 @@ _gssapi_verify_mech_header(u_char **str, if (mech_len != mech->length) return GSS_S_BAD_MECH; + if (mech_len > total_len) + return GSS_S_BAD_MECH; + if (p - *str > total_len - mech_len) + return GSS_S_BAD_MECH; if (ct_memcmp(p, mech->elements, mech->length) != 0) @@ -195,13 +201,13 @@ _gssapi_verify_pad(gss_buffer_t wrapped_token, if (wrapped_token->length < 1) return GSS_S_BAD_MECH; - pad = (u_char *)wrapped_token->value + wrapped_token->length - 1; - padlength = *pad; + pad = (u_char *)wrapped_token->value + wrapped_token->length; + padlength = pad[-1]; if (padlength > datalen) return GSS_S_BAD_MECH; - for (i = padlength; i > 0 && *pad == padlength; i--, pad--) + for (i = padlength; i > 0 && *--pad == padlength; i--) ; if (i != 0) return GSS_S_BAD_MIC; diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/delete_sec_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/delete_sec_context.c index 1a8313bf56ec..59ea1cb97be1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/delete_sec_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/delete_sec_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: delete_sec_context.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: delete_sec_context.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan @@ -77,6 +77,8 @@ _gsskrb5_delete_sec_context(OM_uint32 * minor_status, krb5_data_free(&ctx->fwd_data); if (ctx->crypto) krb5_crypto_destroy(context, ctx->crypto); + if (ctx->ccache && (ctx->more_flags & CLOSE_CCACHE)) + krb5_cc_close(context, ctx->ccache); HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); HEIMDAL_MUTEX_destroy(&ctx->ctx_id_mutex); diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/display_status.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/display_status.c index 4b7526501f40..ff76074fc84b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/display_status.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/display_status.c @@ -1,4 +1,4 @@ -/* $NetBSD: display_status.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: display_status.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1998 - 2006 Kungliga Tekniska Högskolan @@ -66,8 +66,7 @@ routine_error(OM_uint32 v) "Incorrect channel bindings were supplied", "An invalid status code was supplied", "A token had an invalid MIC", - "No credentials were supplied, " - "or the credentials were unavailable or inaccessible.", + "No credentials were supplied, or the credentials were unavailable or inaccessible.", "No context has been established", "A token was invalid", "A credential was invalid", diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/get_mic.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/get_mic.c index e7370e054569..7d8f5535daf6 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/get_mic.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/get_mic.c @@ -1,4 +1,4 @@ -/* $NetBSD: get_mic.c,v 1.5 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: get_mic.c,v 1.6 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/gsskrb5-private.h b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/gsskrb5-private.h index 62144d5e548a..94b414e122c4 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/gsskrb5-private.h +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/gsskrb5-private.h @@ -1,4 +1,4 @@ -/* $NetBSD: gsskrb5-private.h,v 1.2 2019/12/15 22:50:47 christos Exp $ */ +/* $NetBSD: gsskrb5-private.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* This is a generated file */ #ifndef __gsskrb5_private_h__ @@ -44,7 +44,8 @@ _gk_verify_buffers ( const gsskrb5_ctx /*ctx*/, const gss_iov_buffer_desc */*header*/, const gss_iov_buffer_desc */*padding*/, - const gss_iov_buffer_desc */*trailer*/); + const gss_iov_buffer_desc */*trailer*/, + int /*block_cipher*/); OM_uint32 GSSAPI_CALLCONV _gk_wrap_iov ( diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/init_sec_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/init_sec_context.c index 346211951398..e44204d11db3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/init_sec_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/init_sec_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: init_sec_context.c,v 1.4 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: init_sec_context.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -602,7 +602,19 @@ init_auth_restart if (ret == 0) { if (timedata.length == 4) { const u_char *p = timedata.data; - offset = (p[0] <<24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + if (p[0] < 128) { + offset = (p[0] <<24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + } else { + /* + * (p[0] << 24), if p[0] > 127 -> offset is negative, but *p is + * positive, so this is overflow -- overflow we want, but UBSAN + * flags it. + * + * NOTE: We assume the platform is a twos-complement platform. + */ + offset = INT32_MIN; + offset |= ((p[0] & 0x7f) <<24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + } } krb5_data_free(&timedata); } @@ -923,7 +935,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_init_sec_context time_rec); if (ret != GSS_S_COMPLETE) break; - /* FALL THOUGH */ + /* FALLTHROUGH */ case INITIATOR_RESTART: ret = init_auth_restart(minor_status, cred, diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/unwrap.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/unwrap.c index 264da380e5c0..d426aa890e9e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/unwrap.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/unwrap.c @@ -1,4 +1,4 @@ -/* $NetBSD: unwrap.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: unwrap.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan @@ -66,6 +66,8 @@ unwrap_des if (IS_DCE_STYLE(context_handle)) { token_len = 22 + 8 + 15; /* 45 */ + if (input_message_buffer->length < token_len) + return GSS_S_BAD_MECH; } else { token_len = input_message_buffer->length; } @@ -78,6 +80,11 @@ unwrap_des if (ret) return ret; + len = (p - (u_char *)input_message_buffer->value) + + 22 + 8; + if (input_message_buffer->length < len) + return GSS_S_BAD_MECH; + if (memcmp (p, "\x00\x00", 2) != 0) return GSS_S_BAD_SIG; p += 2; @@ -132,7 +139,7 @@ unwrap_des } else { /* check pad */ ret = _gssapi_verify_pad(input_message_buffer, - input_message_buffer->length - len, + input_message_buffer->length - len - 8, &padlength); if (ret) return ret; @@ -209,9 +216,10 @@ unwrap_des output_message_buffer->value = malloc(output_message_buffer->length); if(output_message_buffer->length != 0 && output_message_buffer->value == NULL) return GSS_S_FAILURE; - memcpy (output_message_buffer->value, - p + 24, - output_message_buffer->length); + if (output_message_buffer->value != NULL) + memcpy (output_message_buffer->value, + p + 24, + output_message_buffer->length); return GSS_S_COMPLETE; } #endif @@ -244,6 +252,8 @@ unwrap_des3 if (IS_DCE_STYLE(context_handle)) { token_len = 34 + 8 + 15; /* 57 */ + if (input_message_buffer->length < token_len) + return GSS_S_BAD_MECH; } else { token_len = input_message_buffer->length; } @@ -256,7 +266,12 @@ unwrap_des3 if (ret) return ret; - if (memcmp (p, "\x04\x00", 2) != 0) /* HMAC SHA1 DES3_KD */ + len = (p - (u_char *)input_message_buffer->value) + + 34 + 8; + if (input_message_buffer->length < len) + return GSS_S_BAD_MECH; + + if (ct_memcmp (p, "\x04\x00", 2) != 0) /* HMAC SHA1 DES3_KD */ return GSS_S_BAD_SIG; p += 2; if (ct_memcmp (p, "\x02\x00", 2) == 0) { @@ -303,7 +318,7 @@ unwrap_des3 } else { /* check pad */ ret = _gssapi_verify_pad(input_message_buffer, - input_message_buffer->length - len, + input_message_buffer->length - len - 8, &padlength); if (ret) return ret; @@ -403,9 +418,10 @@ unwrap_des3 output_message_buffer->value = malloc(output_message_buffer->length); if(output_message_buffer->length != 0 && output_message_buffer->value == NULL) return GSS_S_FAILURE; - memcpy (output_message_buffer->value, - p + 36, - output_message_buffer->length); + if (output_message_buffer->value != NULL) + memcpy (output_message_buffer->value, + p + 36, + output_message_buffer->length); return GSS_S_COMPLETE; } diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/verify_mic.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/verify_mic.c index d56467138d24..2d283cc72f8c 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/verify_mic.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/verify_mic.c @@ -1,4 +1,4 @@ -/* $NetBSD: verify_mic.c,v 1.6 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: verify_mic.c,v 1.7 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/wrap.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/wrap.c index f208ce0f3cb2..037ed2ee9ec1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/wrap.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/wrap.c @@ -1,4 +1,4 @@ -/* $NetBSD: wrap.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: wrap.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_display_status.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_display_status.c index ae95b6993076..27175e561d88 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_display_status.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_display_status.c @@ -1,4 +1,4 @@ -/* $NetBSD: gss_display_status.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: gss_display_status.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /*- * Copyright (c) 2005 Doug Rabson @@ -93,8 +93,7 @@ routine_error(OM_uint32 v) "Incorrect channel bindings were supplied", "An invalid status code was supplied", "A token had an invalid MIC", - "No credentials were supplied, " - "or the credentials were unavailable or inaccessible.", + "No credentials were supplied, or the credentials were unavailable or inaccessible.", "No context has been established", "A token was invalid", "A credential was invalid", diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_import_name.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_import_name.c index 21f4847174e0..fc99325c0df3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_import_name.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_import_name.c @@ -1,4 +1,4 @@ -/* $NetBSD: gss_import_name.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: gss_import_name.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /*- * Copyright (c) 2005 Doug Rabson @@ -115,7 +115,7 @@ _gss_import_export_name(OM_uint32 *minor_status, len -= t; t = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; - p += 4; + /* p += 4; */ len -= 4; if (!composite && len != t) diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_mech_switch.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_mech_switch.c index 49bd6ad2ae1b..9b18de54291b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_mech_switch.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_mech_switch.c @@ -1,4 +1,4 @@ -/* $NetBSD: gss_mech_switch.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: gss_mech_switch.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /*- * Copyright (c) 2005 Doug Rabson @@ -139,6 +139,8 @@ _gss_string_to_oid(const char* s, gss_OID oid) } } } + if (byte_count == 0) + return EINVAL; if (!res) { res = malloc(byte_count); if (!res) diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_pname_to_uid.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_pname_to_uid.c index 2105f127d996..3b2bac188d31 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_pname_to_uid.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/gss_pname_to_uid.c @@ -1,4 +1,4 @@ -/* $NetBSD: gss_pname_to_uid.c,v 1.3 2017/09/08 14:57:44 christos Exp $ */ +/* $NetBSD: gss_pname_to_uid.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2011, PADL Software Pty Ltd. @@ -156,6 +156,10 @@ gss_pname_to_uid(OM_uint32 *minor_status, major = gss_localname(minor_status, pname, mech_type, &localname); if (GSS_ERROR(major)) return major; + if (localname.length == 0) { + *minor_status = KRB5_NO_LOCALNAME; + return GSS_S_FAILURE; + } szLocalname = malloc(localname.length + 1); if (szLocalname == NULL) { diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech.5 b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech.5 index 1527eaee1d94..c6f75d447387 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech.5 +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech.5 @@ -1,4 +1,4 @@ -.\" $NetBSD: mech.5,v 1.6 2019/12/15 22:50:47 christos Exp $ +.\" $NetBSD: mech.5,v 1.7 2023/06/19 21:41:43 christos Exp $ .\" .\" Copyright (c) 2005 Doug Rabson .\" All rights reserved. diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech_locl.h b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech_locl.h index 2fc40760f757..7baf55dfa1d7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech_locl.h +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/mech/mech_locl.h @@ -1,4 +1,4 @@ -/* $NetBSD: mech_locl.h,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: mech_locl.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -53,6 +53,7 @@ #include +#include #include #include #include diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/creds.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/creds.c index dd33e9034f01..c4042414eacc 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/creds.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/creds.c @@ -1,4 +1,4 @@ -/* $NetBSD: creds.c,v 1.4 2019/12/15 22:50:48 christos Exp $ */ +/* $NetBSD: creds.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/crypto.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/crypto.c index 2948172b26c3..7161bcb2bf9f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/crypto.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/crypto.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto.c,v 1.3 2018/02/05 16:00:52 christos Exp $ */ +/* $NetBSD: crypto.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006-2016 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/init_sec_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/init_sec_context.c index 68e381a11a47..9f515306a609 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/init_sec_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/ntlm/init_sec_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: init_sec_context.c,v 1.3 2019/12/15 22:50:48 christos Exp $ */ +/* $NetBSD: init_sec_context.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 - 2008 Kungliga Tekniska Högskolan @@ -58,6 +58,8 @@ from_file(const char *fn, const char *target_domain, d = strtok_r(buf, ":", &str); free(*domainp); *domainp = NULL; + if (!d) + continue; if (d && target_domain != NULL && strcasecmp(target_domain, d) != 0) continue; *domainp = strdup(d); diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/spnego/accept_sec_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/spnego/accept_sec_context.c index 2a1a35a0c8ac..bf846240a202 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/spnego/accept_sec_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/spnego/accept_sec_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: accept_sec_context.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: accept_sec_context.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -621,13 +621,15 @@ acceptor_start if (ret == 0) break; } - if (preferred_mech_type == GSS_C_NO_OID) { - HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); - free_NegotiationToken(&nt); - return ret; - } + } - ctx->preferred_mech_type = preferred_mech_type; + ctx->preferred_mech_type = preferred_mech_type; + + if (preferred_mech_type == GSS_C_NO_OID) { + send_reject(minor_status, output_token); + HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); + free_NegotiationToken(&nt); + return ret; } /* diff --git a/crypto/external/bsd/heimdal/dist/lib/gssapi/test_context.c b/crypto/external/bsd/heimdal/dist/lib/gssapi/test_context.c index ce96e1cd1eef..764b17e38ae4 100644 --- a/crypto/external/bsd/heimdal/dist/lib/gssapi/test_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/gssapi/test_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_context.c,v 1.2 2017/01/28 21:31:46 christos Exp $ */ +/* $NetBSD: test_context.c,v 1.3 2023/06/19 21:41:42 christos Exp $ */ /* * Copyright (c) 2006 - 2008 Kungliga Tekniska Högskolan @@ -351,7 +351,7 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid) memset(iov, 0, sizeof(iov)); - iov[0].type = GSS_IOV_BUFFER_TYPE_HEADER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE; + iov[0].type = GSS_IOV_BUFFER_TYPE_HEADER | GSS_IOV_BUFFER_FLAG_ALLOCATE; if (header.length != 0) { iov[1].type = GSS_IOV_BUFFER_TYPE_SIGN_ONLY; @@ -377,7 +377,7 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid) if (dce_style_flag) { iov[4].type = GSS_IOV_BUFFER_TYPE_EMPTY; } else { - iov[4].type = GSS_IOV_BUFFER_TYPE_PADDING | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE; + iov[4].type = GSS_IOV_BUFFER_TYPE_PADDING | GSS_IOV_BUFFER_FLAG_ALLOCATE; } iov[4].buffer.length = 0; iov[4].buffer.value = 0; @@ -386,7 +386,7 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid) } else if (flags & USE_HEADER_ONLY) { iov[5].type = GSS_IOV_BUFFER_TYPE_EMPTY; } else { - iov[5].type = GSS_IOV_BUFFER_TYPE_TRAILER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE; + iov[5].type = GSS_IOV_BUFFER_TYPE_TRAILER | GSS_IOV_BUFFER_FLAG_ALLOCATE; } iov[5].buffer.length = 0; iov[5].buffer.value = 0; @@ -406,17 +406,29 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid) token.data = emalloc(token.length); p = token.data; - memcpy(p, iov[0].buffer.value, iov[0].buffer.length); + + if (iov[0].buffer.length) + memcpy(p, iov[0].buffer.value, iov[0].buffer.length); p += iov[0].buffer.length; - memcpy(p, iov[1].buffer.value, iov[1].buffer.length); + + if (iov[1].buffer.length) + memcpy(p, iov[1].buffer.value, iov[1].buffer.length); p += iov[1].buffer.length; - memcpy(p, iov[2].buffer.value, iov[2].buffer.length); + + if (iov[2].buffer.length) + memcpy(p, iov[2].buffer.value, iov[2].buffer.length); p += iov[2].buffer.length; - memcpy(p, iov[3].buffer.value, iov[3].buffer.length); + + if (iov[3].buffer.length) + memcpy(p, iov[3].buffer.value, iov[3].buffer.length); p += iov[3].buffer.length; - memcpy(p, iov[4].buffer.value, iov[4].buffer.length); + + if (iov[4].buffer.length) + memcpy(p, iov[4].buffer.value, iov[4].buffer.length); p += iov[4].buffer.length; - memcpy(p, iov[5].buffer.value, iov[5].buffer.length); + + if (iov[5].buffer.length) + memcpy(p, iov[5].buffer.value, iov[5].buffer.length); p += iov[5].buffer.length; assert(p - ((unsigned char *)token.data) == token.length); @@ -933,7 +945,7 @@ main(int argc, char **argv) if (out1.length != out2.length) errx(1, "prf len mismatch"); - if (memcmp(out1.value, out2.value, out1.length) != 0) + if (out1.length && memcmp(out1.value, out2.value, out1.length) != 0) errx(1, "prf data mismatch"); gss_release_buffer(&min_stat, &out1); @@ -943,7 +955,7 @@ main(int argc, char **argv) if (out1.length != out2.length) errx(1, "prf len mismatch"); - if (memcmp(out1.value, out2.value, out1.length) != 0) + if (out1.length && memcmp(out1.value, out2.value, out1.length) != 0) errx(1, "prf data mismatch"); gss_release_buffer(&min_stat, &out1); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/bn.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/bn.c index d978c8e9c746..63a9a38128c3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/bn.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/bn.c @@ -1,4 +1,4 @@ -/* $NetBSD: bn.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: bn.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -144,7 +144,8 @@ BN_bin2bn(const void *s, int len, BIGNUM *bn) return NULL; } hi->length = len; - memcpy(hi->data, s, len); + if (len) + memcpy(hi->data, s, len); return (BIGNUM *)hi; } @@ -239,7 +240,7 @@ BN_is_bit_set(const BIGNUM *bn, int bit) heim_integer *hi = (heim_integer *)bn; unsigned char *p = hi->data; - if ((bit / 8) > hi->length || hi->length == 0) + if ((bit / 8) >= hi->length || hi->length == 0) return 0; return p[hi->length - 1 - (bit / 8)] & is_set[bit % 8]; @@ -252,7 +253,7 @@ BN_set_bit(BIGNUM *bn, int bit) unsigned char *p; if ((bit / 8) > hi->length || hi->length == 0) { - size_t len = (bit + 7) / 8; + size_t len = bit == 0 ? 1 : (bit + 7) / 8; void *d = realloc(hi->data, len); if (d == NULL) return 0; diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/des.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/des.c index 523282526e7d..65363f37aa35 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/des.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/des.c @@ -1,4 +1,4 @@ -/* $NetBSD: des.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: des.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2005 Kungliga Tekniska Högskolan @@ -227,8 +227,8 @@ DES_set_key_unchecked(DES_cblock *key, DES_key_schedule *ks) uint32_t *k = &ks->ks[0]; int i; - t1 = (*key)[0] << 24 | (*key)[1] << 16 | (*key)[2] << 8 | (*key)[3]; - t2 = (*key)[4] << 24 | (*key)[5] << 16 | (*key)[6] << 8 | (*key)[7]; + t1 = (uint32_t)(*key)[0] << 24 | (*key)[1] << 16 | (*key)[2] << 8 | (*key)[3]; + t2 = (uint32_t)(*key)[4] << 24 | (*key)[5] << 16 | (*key)[6] << 8 | (*key)[7]; c = (pc1_c_3[(t1 >> (5 )) & 0x7] << 3) | (pc1_c_3[(t1 >> (5 + 8 )) & 0x7] << 2) @@ -327,27 +327,27 @@ DES_key_sched(DES_cblock *key, DES_key_schedule *ks) static void load(const unsigned char *b, uint32_t v[2]) { - v[0] = b[0] << 24; - v[0] |= b[1] << 16; - v[0] |= b[2] << 8; - v[0] |= b[3] << 0; - v[1] = b[4] << 24; - v[1] |= b[5] << 16; - v[1] |= b[6] << 8; - v[1] |= b[7] << 0; + v[0] = (uint32_t)b[0] << 24U; + v[0] |= b[1] << 16U; + v[0] |= b[2] << 8U; + v[0] |= b[3] << 0U; + v[1] = (uint32_t)b[4] << 24U; + v[1] |= b[5] << 16U; + v[1] |= b[6] << 8U; + v[1] |= b[7] << 0U; } static void store(const uint32_t v[2], unsigned char *b) { - b[0] = (v[0] >> 24) & 0xff; - b[1] = (v[0] >> 16) & 0xff; - b[2] = (v[0] >> 8) & 0xff; - b[3] = (v[0] >> 0) & 0xff; - b[4] = (v[1] >> 24) & 0xff; - b[5] = (v[1] >> 16) & 0xff; - b[6] = (v[1] >> 8) & 0xff; - b[7] = (v[1] >> 0) & 0xff; + b[0] = (v[0] >> 24) & 0xffU; + b[1] = (v[0] >> 16) & 0xffU; + b[2] = (v[0] >> 8) & 0xffU; + b[3] = (v[0] >> 0) & 0xffU; + b[4] = (v[1] >> 24) & 0xffU; + b[5] = (v[1] >> 16) & 0xffU; + b[6] = (v[1] >> 8) & 0xffU; + b[7] = (v[1] >> 0) & 0xffU; } /** diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/dh.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/dh.c index 683eb58e60f6..06af4c507633 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/dh.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/dh.c @@ -1,4 +1,4 @@ -/* $NetBSD: dh.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: dh.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan @@ -307,7 +307,7 @@ DH_check_pubkey(const DH *dh, const BIGNUM *pub_key, int *codes) unsigned i, n = BN_num_bits(pub_key); unsigned bits = 0; - for (i = 0; i <= n; i++) + for (i = 0; i < n; i++) if (BN_is_bit_set(pub_key, i)) bits++; diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.c index 2336cd7b1b67..170f65337ac2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.c @@ -1,4 +1,4 @@ -/* $NetBSD: engine.c,v 1.4 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: engine.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.h index 13e627b05f98..24aedcd6fb8d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/engine.h @@ -1,4 +1,4 @@ -/* $NetBSD: engine.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: engine.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006-2016 Kungliga Tekniska Högskolan @@ -72,7 +72,7 @@ typedef struct hc_engine ENGINE; -#define NID_md2 0 +/*#define NID_md2 0 */ #define NID_md4 1 #define NID_md5 2 #define NID_sha1 4 diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.c index cb2e56ff7ef6..7fb7e9edbee4 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-cc.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-cc.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan @@ -607,32 +607,6 @@ EVP_cc_rc2_64_cbc(void) #endif } -/** - * The CommonCrypto md2 provider - * - * @ingroup hcrypto_evp - */ - -const EVP_MD * -EVP_cc_md2(void) -{ -#ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H - static const struct hc_evp_md md2 = { - CC_MD2_DIGEST_LENGTH, - CC_MD2_BLOCK_BYTES, - sizeof(CC_MD2_CTX), - (hc_evp_md_init)CC_MD2_Init, - (hc_evp_md_update)CC_MD2_Update, - (hc_evp_md_final)CC_MD2_Final, - (hc_evp_md_cleanup)NULL - }; - return &md2; -#elif HCRYPTO_FALLBACK - return EVP_hcrypto_md2(); -#else - return NULL; -#endif -} /** * The CommonCrypto md4 provider diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.h index d62b2b1a9b12..dddec86f6579 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-cc.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-cc.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-cc.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2009 Kungliga Tekniska Högskolan @@ -39,7 +39,6 @@ #define HEIM_EVP_CC_H 1 /* symbol renaming */ -#define EVP_cc_md2 hc_EVP_cc_md2 #define EVP_cc_md4 hc_EVP_cc_md4 #define EVP_cc_md5 hc_EVP_cc_md5 #define EVP_cc_sha1 hc_EVP_cc_sha1 @@ -69,7 +68,6 @@ HC_CPP_BEGIN -const EVP_MD * EVP_cc_md2(void); const EVP_MD * EVP_cc_md4(void); const EVP_MD * EVP_cc_md5(void); const EVP_MD * EVP_cc_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.c index 004f812ac0a1..605631f00d86 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-hcrypto.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-hcrypto.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 - 2008 Kungliga Tekniska Högskolan @@ -53,7 +53,6 @@ #include #include -#include #include #include @@ -403,28 +402,6 @@ EVP_hcrypto_md4(void) return &md4; } -/** - * The message digest MD2 - hcrypto - * - * @return the message digest type. - * - * @ingroup hcrypto_evp - */ - -const EVP_MD * -EVP_hcrypto_md2(void) -{ - static const struct hc_evp_md md2 = { - 16, - 16, - sizeof(MD2_CTX), - (hc_evp_md_init)MD2_Init, - (hc_evp_md_update)MD2_Update, - (hc_evp_md_final)MD2_Final, - NULL - }; - return &md2; -} /* * diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.h index 5f744eabd74f..4396c2b04f72 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-hcrypto.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-hcrypto.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-hcrypto.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2009 Kungliga Tekniska Högskolan @@ -39,7 +39,6 @@ #define HEIM_EVP_HCRYPTO_H 1 /* symbol renaming */ -#define EVP_hcrypto_md2 hc_EVP_hcrypto_md2 #define EVP_hcrypto_md4 hc_EVP_hcrypto_md4 #define EVP_hcrypto_md5 hc_EVP_hcrypto_md5 #define EVP_hcrypto_sha1 hc_EVP_hcrypto_sha1 @@ -69,7 +68,6 @@ HC_CPP_BEGIN -const EVP_MD * EVP_hcrypto_md2(void); const EVP_MD * EVP_hcrypto_md4(void); const EVP_MD * EVP_hcrypto_md5(void); const EVP_MD * EVP_hcrypto_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.c index 179937af186d..f149766c38d1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-openssl.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-openssl.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2016, Kungliga Tekniska Högskolan @@ -582,15 +582,6 @@ OSSL_CIPHER_ALGORITHM(rc4_40, hc_EVP_CIPH_STREAM_CIPHER | hc_EVP_CIPH_VARIABLE_LENGTH) -/** - * The MD2 hash algorithm (OpenSSL provider) - * - * @return the MD2 EVP_MD pointer. - * - * @ingroup hcrypto_evp - */ -OSSL_MD_ALGORITHM(md2) - /** * The MD4 hash algorithm (OpenSSL provider) * diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.h index 7794f6078a43..71a7d4e18478 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-openssl.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-openssl.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-openssl.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2009-2016 Kungliga Tekniska Högskolan @@ -39,7 +39,6 @@ #define HEIM_EVP_OSSL_H 1 /* symbol renaming */ -#define EVP_ossl_md2 hc_EVP_ossl_md2 #define EVP_ossl_md4 hc_EVP_ossl_md4 #define EVP_ossl_md5 hc_EVP_ossl_md5 #define EVP_ossl_sha1 hc_EVP_ossl_sha1 @@ -69,7 +68,6 @@ HC_CPP_BEGIN -const hc_EVP_MD * hc_EVP_ossl_md2(void); const hc_EVP_MD * hc_EVP_ossl_md4(void); const hc_EVP_MD * hc_EVP_ossl_md5(void); const hc_EVP_MD * hc_EVP_ossl_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.c index 6a6c4c1aa6a0..6b13ce65a24a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-pkcs11.c,v 1.3 2019/12/15 22:50:48 christos Exp $ */ +/* $NetBSD: evp-pkcs11.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015-2016, Secure Endpoints Inc. @@ -836,7 +836,6 @@ PKCS11_CIPHER_ALGORITHM(rc4_40, 0, EVP_CIPH_STREAM_CIPHER | EVP_CIPH_VARIABLE_LENGTH) -PKCS11_MD_ALGORITHM(md2, CKM_MD2, 16, 16) #ifdef CKM_MD4 /* non-standard extension */ PKCS11_MD_ALGORITHM(md4, CKM_MD4, 16, 64) #else diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.h index e8f8e9faf030..f96666250777 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-pkcs11.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-pkcs11.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-pkcs11.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. @@ -37,7 +37,6 @@ /* symbol renaming */ -#define EVP_pkcs11_md2() hc_EVP_pkcs11_md2() #define EVP_pkcs11_md4() hc_EVP_pkcs11_md4() #define EVP_pkcs11_md5() hc_EVP_pkcs11_md5() #define EVP_pkcs11_sha1() hc_EVP_pkcs11_sha1() @@ -61,7 +60,6 @@ #define EVP_pkcs11_camellia_192_cbc() hc_EVP_pkcs11_camellia_192_cbc() #define EVP_pkcs11_camellia_256_cbc() hc_EVP_pkcs11_camellia_256_cbc() -#define EVP_pkcs11_hcrypto_md2() hc_EVP_pkcs11_hcrypto_md2() #define EVP_pkcs11_hcrypto_md4() hc_EVP_pkcs11_hcrypto_md4() #define EVP_pkcs11_hcrypto_md5() hc_EVP_pkcs11_hcrypto_md5() #define EVP_pkcs11_hcrypto_sha1() hc_EVP_pkcs11_hcrypto_sha1() @@ -91,7 +89,6 @@ HC_CPP_BEGIN * Strict PKCS#11 implementations (these will return NULL if the underlying * PKCS#11 implementation does not implement the cipher or hash). */ -const EVP_MD * hc_EVP_pkcs11_md2(void); const EVP_MD * hc_EVP_pkcs11_md4(void); const EVP_MD * hc_EVP_pkcs11_md5(void); const EVP_MD * hc_EVP_pkcs11_sha1(void); @@ -124,7 +121,6 @@ const EVP_CIPHER * hc_EVP_pkcs11_camellia_256_cbc(void); /* * PKCS#11 implementations with fallback to hcrypto. */ -const EVP_MD * hc_EVP_pkcs11_hcrypto_md2(void); const EVP_MD * hc_EVP_pkcs11_hcrypto_md4(void); const EVP_MD * hc_EVP_pkcs11_hcrypto_md5(void); const EVP_MD * hc_EVP_pkcs11_hcrypto_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.c index 89d90c228e46..bb9f2711b09c 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-w32.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-w32.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. @@ -111,7 +111,6 @@ _hc_w32crypto_DllMain(HINSTANCE hinstDLL, return hc_EVP_hcrypto_ ##name (); \ } -EVP_W32CRYPTO_PROVIDER(EVP_MD, md2) EVP_W32CRYPTO_PROVIDER(EVP_MD, md4) EVP_W32CRYPTO_PROVIDER(EVP_MD, md5) EVP_W32CRYPTO_PROVIDER(EVP_MD, sha1) diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.h index 92318dc7c56d..77583063b965 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-w32.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-w32.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-w32.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. @@ -36,7 +36,6 @@ #define HEIM_EVP_W32_H 1 /* symbol renaming */ -#define EVP_w32crypto_md2() hc_EVP_w32crypto_md2() #define EVP_w32crypto_md4() hc_EVP_w32crypto_md4() #define EVP_w32crypto_md5() hc_EVP_w32crypto_md5() #define EVP_w32crypto_sha1() hc_EVP_w32crypto_sha1() @@ -67,7 +66,6 @@ HC_CPP_BEGIN -const EVP_MD * hc_EVP_w32crypto_md2(void); const EVP_MD * hc_EVP_w32crypto_md4(void); const EVP_MD * hc_EVP_w32crypto_md5(void); const EVP_MD * hc_EVP_w32crypto_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.c index ecd53bf45f8e..8a571bc7d92e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp-wincng.c,v 1.3 2019/12/15 22:50:48 christos Exp $ */ +/* $NetBSD: evp-wincng.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. @@ -690,7 +690,6 @@ wincng_md_cleanup(EVP_MD_CTX *ctx) } \ } while (0) -WINCNG_MD_ALGORITHM(md2, BCRYPT_MD2_ALGORITHM); WINCNG_MD_ALGORITHM(md4, BCRYPT_MD4_ALGORITHM); WINCNG_MD_ALGORITHM(md5, BCRYPT_MD5_ALGORITHM); WINCNG_MD_ALGORITHM(sha1, BCRYPT_SHA1_ALGORITHM); @@ -701,7 +700,6 @@ WINCNG_MD_ALGORITHM(sha512, BCRYPT_SHA512_ALGORITHM); static void wincng_md_algorithm_cleanup(void) { - WINCNG_MD_ALGORITHM_CLEANUP(md2); WINCNG_MD_ALGORITHM_CLEANUP(md4); WINCNG_MD_ALGORITHM_CLEANUP(md5); WINCNG_MD_ALGORITHM_CLEANUP(sha1); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.h index cea1b5e96ea9..d176e1865c7d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp-wincng.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp-wincng.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp-wincng.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. @@ -36,7 +36,6 @@ #define HEIM_EVP_WINCNG_H 1 /* symbol renaming */ -#define EVP_wincng_md2() EVP_wincng_md2() #define EVP_wincng_md4() EVP_wincng_md4() #define EVP_wincng_md5() EVP_wincng_md5() #define EVP_wincng_sha1() EVP_wincng_sha1() @@ -66,7 +65,6 @@ HC_CPP_BEGIN -const EVP_MD * hc_EVP_wincng_md2(void); const EVP_MD * hc_EVP_wincng_md4(void); const EVP_MD * hc_EVP_wincng_md5(void); const EVP_MD * hc_EVP_wincng_sha1(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.c index 98c18830d940..c1454ab4a7f3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.c @@ -1,4 +1,4 @@ -/* $NetBSD: evp.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: evp.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 - 2016 Kungliga Tekniska Högskolan @@ -468,36 +468,24 @@ EVP_md4(void) HC_DEPRECATED_CRYPTO return EVP_DEF_OP(HCRYPTO_DEF_PROVIDER, md4); } -/** - * The message digest MD2 - * - * @return the message digest type. - * - * @ingroup hcrypto_evp - */ - -const EVP_MD * -EVP_md2(void) HC_DEPRECATED_CRYPTO -{ - hcrypto_validate(); - return EVP_DEF_OP(HCRYPTO_DEF_PROVIDER, md2); -} - /* * */ -static void +static int null_Init (void *m) { + return -1; } -static void +static int null_Update (void *m, const void * data, size_t size) { + return -1; } -static void +static int null_Final(void *res, void *m) { + return -1; } /** diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.h index 18477d022930..1cd430700736 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/evp.h @@ -1,4 +1,4 @@ -/* $NetBSD: evp.h,v 1.3 2019/12/15 22:50:48 christos Exp $ */ +/* $NetBSD: evp.h,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2005 - 2016 Kungliga Tekniska Högskolan @@ -83,7 +83,6 @@ #define EVP_des_cbc hc_EVP_des_cbc #define EVP_des_ede3_cbc hc_EVP_des_ede3_cbc #define EVP_enc_null hc_EVP_enc_null -#define EVP_md2 hc_EVP_md2 #define EVP_md4 hc_EVP_md4 #define EVP_md5 hc_EVP_md5 #define EVP_md_null hc_EVP_md_null @@ -252,7 +251,6 @@ HC_CPP_BEGIN */ const EVP_MD *EVP_md_null(void); -HC_DEPRECATED_CRYPTO const EVP_MD *EVP_md2(void); HC_DEPRECATED_CRYPTO const EVP_MD *EVP_md4(void); HC_DEPRECATED_CRYPTO const EVP_MD *EVP_md5(void); const EVP_MD *EVP_sha(void); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/example_evp_cipher.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/example_evp_cipher.c index d8e5b5c016c3..75748346bf77 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/example_evp_cipher.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/example_evp_cipher.c @@ -1,4 +1,4 @@ -/* $NetBSD: example_evp_cipher.c,v 1.3 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: example_evp_cipher.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.c deleted file mode 100644 index accfcfe29bfc..000000000000 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.c +++ /dev/null @@ -1,140 +0,0 @@ -/* $NetBSD: md2.c,v 1.4 2019/12/15 22:50:48 christos Exp $ */ - -/* - * Copyright (c) 2006 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden). - * All rights reserved. - * - * 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 Institute 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 INSTITUTE 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 INSTITUTE 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. - */ - -#include -#include - -#include "hash.h" -#include "md2.h" - -static const unsigned char subst[256] = { - 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, - 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, - 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, - 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, - 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, - 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, - 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, - 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, - 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, - 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, - 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, - 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, - 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, - 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, - 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, - 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, - 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, - 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 -}; - -int -MD2_Init (struct md2 *m) -{ - memset(m, 0, sizeof(*m)); - return 1; -} - -static void -calc(struct md2 *m, const void *v) -{ - unsigned char x[48], L; - const unsigned char *p = v; - int i, j, t; - - L = m->checksum[15]; - for (i = 0; i < 16; i++) - L = m->checksum[i] ^= subst[p[i] ^ L]; - - for (i = 0; i < 16; i++) { - x[i] = m->state[i]; - x[i + 16] = p[i]; - x[i + 32] = x[i] ^ p[i]; - } - - t = 0; - for (i = 0; i < 18; i++) { - for (j = 0; j < 48; j++) - t = x[j] ^= subst[t]; - t = (t + i) & 0xff; - } - - memcpy(m->state, x, 16); - memset_s(x, sizeof(x), 0, sizeof(x)); -} - -int -MD2_Update (struct md2 *m, const void *v, size_t len) -{ - size_t idx = m->len & 0xf; - const unsigned char *p = v; - - m->len += len; - if (len + idx >= 16) { - if (idx) { - memcpy(m->data + idx, p, 16 - idx); - calc(m, m->data); - p += 16; - len -= 16 - idx; - } - while (len >= 16) { - calc(m, p); - p += 16; - len -= 16; - } - idx = 0; - } - - memcpy(m->data + idx, p, len); - return 1; -} - -int -MD2_Final (void *res, struct md2 *m) -{ - unsigned char pad[16]; - size_t padlen; - - padlen = 16 - (m->len % 16); - memset(pad, padlen, padlen); - - MD2_Update(m, pad, padlen); - memcpy(pad, m->checksum, 16); - MD2_Update(m, pad, 16); - - memcpy(res, m->state, MD2_DIGEST_LENGTH); - memset(m, 0, sizeof(*m)); - return 1; -} diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.h deleted file mode 100644 index 77c8699170b1..000000000000 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/md2.h +++ /dev/null @@ -1,65 +0,0 @@ -/* $NetBSD: md2.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ - -/* - * Copyright (c) 2006 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden). - * All rights reserved. - * - * 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 Institute 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 INSTITUTE 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 INSTITUTE 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. - */ - -/* Id */ - -#ifndef HEIM_MD2_H -#define HEIM_MD2_H 1 - -/* symbol renaming */ -#define MD2_Init hc_MD2_Init -#define MD2_Update hc_MD2_Update -#define MD2_Final hc_MD2_Final - -/* - * - */ - -#define MD2_DIGEST_LENGTH 16 - -struct md2 { - size_t len; - unsigned char data[16]; /* stored unalligned data between Update's */ - unsigned char checksum[16]; - unsigned char state[16]; /* lower 16 bytes of X */ -}; - -typedef struct md2 MD2_CTX; - -int MD2_Init (struct md2 *m); -int MD2_Update (struct md2 *m, const void *p, size_t len); -int MD2_Final (void *res, struct md2 *m); - -#endif /* HEIM_MD2_H */ diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/mdtest.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/mdtest.c index 351196014f4a..d2421791e4a6 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/mdtest.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/mdtest.c @@ -1,4 +1,4 @@ -/* $NetBSD: mdtest.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: mdtest.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1995 - 2016 Kungliga Tekniska Högskolan @@ -41,7 +41,6 @@ #ifdef KRB5 #include #endif -#include #include #include #include @@ -53,68 +52,60 @@ struct hash_foo { const char *name; size_t psize; size_t hsize; - void (*init)(void*); - void (*update)(void*, const void*, size_t); - void (*final)(void*, void*); + int (*init)(void*); + int (*update)(void*, const void*, size_t); + int (*final)(void*, void*); const EVP_MD * (*evp)(void); -} md2 = { - "MD2", - sizeof(MD2_CTX), - 16, - (void (*)(void*))MD2_Init, - (void (*)(void*,const void*, size_t))MD2_Update, - (void (*)(void*, void*))MD2_Final, - EVP_md2 -}, md4 = { +} md4 = { "MD4", sizeof(MD4_CTX), 16, - (void (*)(void*))MD4_Init, - (void (*)(void*,const void*, size_t))MD4_Update, - (void (*)(void*, void*))MD4_Final, + (int (*)(void*))MD4_Init, + (int (*)(void*,const void*, size_t))MD4_Update, + (int (*)(void*, void*))MD4_Final, EVP_md4 }, md5 = { "MD5", sizeof(MD5_CTX), 16, - (void (*)(void*))MD5_Init, - (void (*)(void*,const void*, size_t))MD5_Update, - (void (*)(void*, void*))MD5_Final, + (int (*)(void*))MD5_Init, + (int (*)(void*,const void*, size_t))MD5_Update, + (int (*)(void*, void*))MD5_Final, EVP_md5 }, sha1 = { "SHA-1", sizeof(struct sha), 20, - (void (*)(void*))SHA1_Init, - (void (*)(void*,const void*, size_t))SHA1_Update, - (void (*)(void*, void*))SHA1_Final, + (int (*)(void*))SHA1_Init, + (int (*)(void*,const void*, size_t))SHA1_Update, + (int (*)(void*, void*))SHA1_Final, EVP_sha1 }; struct hash_foo sha256 = { "SHA-256", sizeof(SHA256_CTX), 32, - (void (*)(void*))SHA256_Init, - (void (*)(void*,const void*, size_t))SHA256_Update, - (void (*)(void*, void*))SHA256_Final, + (int (*)(void*))SHA256_Init, + (int (*)(void*,const void*, size_t))SHA256_Update, + (int (*)(void*, void*))SHA256_Final, EVP_sha256 }; struct hash_foo sha384 = { "SHA-384", sizeof(SHA384_CTX), 48, - (void (*)(void*))SHA384_Init, - (void (*)(void*,const void*, size_t))SHA384_Update, - (void (*)(void*, void*))SHA384_Final, + (int (*)(void*))SHA384_Init, + (int (*)(void*,const void*, size_t))SHA384_Update, + (int (*)(void*, void*))SHA384_Final, EVP_sha384 }; struct hash_foo sha512 = { "SHA-512", sizeof(SHA512_CTX), 64, - (void (*)(void*))SHA512_Init, - (void (*)(void*,const void*, size_t))SHA512_Update, - (void (*)(void*, void*))SHA512_Final, + (int (*)(void*))SHA512_Init, + (int (*)(void*,const void*, size_t))SHA512_Update, + (int (*)(void*, void*))SHA512_Final, EVP_sha512 }; @@ -123,24 +114,6 @@ struct test { unsigned char hash[64]; }; -struct test md2_tests[] = { - {"", - "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69\x27\x73" }, - {"a", - "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0\xb5\xd1" }, - {"abc", - "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde\xd6\xbb" }, - {"message digest", - "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe\x06\xb0" }, - {"abcdefghijklmnopqrstuvwxyz", - "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47\x94\x0b" }, - {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03\x38\xcd" }, - {"12345678901234567890123456789012345678901234567890123456789012345678901234567890", - "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3\xef\xd8" }, - {NULL, { 0 } } -}; - struct test md4_tests[] = { {"", {0x31, 0xd6, 0xcf, 0xe0, 0xd1, 0x6a, 0xe9, 0x31, 0xb7, 0x3c, 0x59, @@ -340,7 +313,6 @@ int main (void) { return - hash_test(&md2, md2_tests) + hash_test(&md4, md4_tests) + hash_test(&md5, md5_tests) + hash_test(&sha1, sha1_tests) + diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/pkcs5.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/pkcs5.c index 2ad78dfdb6b3..d7dc04d7b363 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/pkcs5.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/pkcs5.c @@ -1,4 +1,4 @@ -/* $NetBSD: pkcs5.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: pkcs5.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -87,7 +87,8 @@ PKCS5_PBKDF2_HMAC(const void * password, size_t password_len, data = &tmpcksum[checksumsize]; - memcpy(data, salt, salt_len); + if (salt_len) + memcpy(data, salt, salt_len); keypart = 1; leftofkey = keylen; diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_bulk.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_bulk.c index a7e565ed687f..b126fce42bf7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_bulk.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_bulk.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_bulk.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: test_bulk.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -203,7 +203,6 @@ test_bulk_provider_hcrypto(void) test_bulk_cipher("hcrypto_aes_256_cfb8", EVP_hcrypto_aes_256_cfb8()); #endif test_bulk_cipher("hcrypto_rc4", EVP_hcrypto_rc4()); - test_bulk_digest("hcrypto_md2", EVP_hcrypto_md2()); test_bulk_digest("hcrypto_md4", EVP_hcrypto_md4()); test_bulk_digest("hcrypto_md5", EVP_hcrypto_md5()); test_bulk_digest("hcrypto_sha1", EVP_hcrypto_sha1()); @@ -221,7 +220,6 @@ test_bulk_provider_cc(void) test_bulk_cipher("cc_aes_256_cfb8", EVP_cc_aes_256_cfb8()); #endif test_bulk_cipher("cc_rc4", EVP_cc_rc4()); - test_bulk_digest("cc_md2", EVP_cc_md2()); test_bulk_digest("cc_md4", EVP_cc_md4()); test_bulk_digest("cc_md5", EVP_cc_md5()); test_bulk_digest("cc_sha1", EVP_cc_sha1()); @@ -240,7 +238,6 @@ test_bulk_provider_w32crypto(void) test_bulk_cipher("w32crypto_aes_256_cfb8", EVP_w32crypto_aes_256_cfb8()); #endif test_bulk_cipher("w32crypto_rc4", EVP_w32crypto_rc4()); - test_bulk_digest("w32crypto_md2", EVP_w32crypto_md2()); test_bulk_digest("w32crypto_md4", EVP_w32crypto_md4()); test_bulk_digest("w32crypto_md5", EVP_w32crypto_md5()); test_bulk_digest("w32crypto_sha1", EVP_w32crypto_sha1()); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_cipher.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_cipher.c index 87c82f2c19d5..8e31913c44d2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_cipher.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/test_cipher.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_cipher.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: test_cipher.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2006-2016 Kungliga Tekniska Högskolan @@ -297,8 +297,10 @@ test_cipher(int i, const EVP_CIPHER *c, struct tests *t) hex_encode(d, t->datasize, &s); errx(1, "%s: %d decrypt not the same: %s", t->name, i, s); } - if (t->outiv) - /* XXXX check */; + if (t->outiv) { + /* XXXX check */ + ; + } EVP_CIPHER_CTX_cleanup(&ectx); EVP_CIPHER_CTX_cleanup(&dctx); diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.c b/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.c index cb957a44a39a..c5e6cdc2e91d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.c +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.c @@ -1,4 +1,4 @@ -/* $NetBSD: ui.c,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: ui.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2000, 2005 Kungliga Tekniska Högskolan @@ -196,7 +196,7 @@ UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, int verify) if (ret) return ret; - if (verify) { + if (verify & UI_UTIL_FLAG_VERIFY) { char *buf2; buf2 = malloc(length); if (buf2 == NULL) @@ -207,8 +207,13 @@ UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, int verify) free(buf2); return ret; } - if (strcmp(buf2, buf) != 0) + if (strcmp(buf2, buf) != 0) { + if (!(verify & UI_UTIL_FLAG_VERIFY_SILENT)) { + fprintf(stderr, "Verify failure\n"); + fflush(stderr); + } ret = 1; + } free(buf2); } return ret; diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.h index f985cc3e9cf0..5d4e60a451c6 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/ui.h @@ -1,4 +1,4 @@ -/* $NetBSD: ui.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: ui.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2005 Kungliga Tekniska Högskolan @@ -41,6 +41,10 @@ /* symbol renaming */ #define UI_UTIL_read_pw_string hc_UI_UTIL_read_pw_string +/* OpenSSL API extensions */ +#define UI_UTIL_FLAG_VERIFY 0x1 /* ask to verify password */ +#define UI_UTIL_FLAG_VERIFY_SILENT 0x2 /* silence on verify failure */ + int UI_UTIL_read_pw_string(char *, int, const char *, int); /* XXX */ #endif /* _HEIM_UI_H */ diff --git a/crypto/external/bsd/heimdal/dist/lib/hcrypto/undef.h b/crypto/external/bsd/heimdal/dist/lib/hcrypto/undef.h index 46aea7244051..3a95b39c808a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hcrypto/undef.h +++ b/crypto/external/bsd/heimdal/dist/lib/hcrypto/undef.h @@ -1,4 +1,4 @@ -/* $NetBSD: undef.h,v 1.2 2017/01/28 21:31:47 christos Exp $ */ +/* $NetBSD: undef.h,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 2016 Kungliga Tekniska Högskolan @@ -118,7 +118,6 @@ #undef EVP_des_cbc #undef EVP_des_ede3_cbc #undef EVP_enc_null -#undef EVP_md2 #undef EVP_md4 #undef EVP_md5 #undef EVP_md_null @@ -160,7 +159,6 @@ #undef EVP_CIPH_ALWAYS_CALL_INIT #undef EVP_CIPH_RAND_KEY #undef EVP_CTRL_RAND_KEY -#undef NID_md2 #undef NID_md4 #undef NID_md5 #undef NID_sha1 diff --git a/crypto/external/bsd/heimdal/dist/lib/hdb/hdb-mitdb.c b/crypto/external/bsd/heimdal/dist/lib/hdb/hdb-mitdb.c index 007ff7edb4a9..3a5b51d79d2c 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hdb/hdb-mitdb.c +++ b/crypto/external/bsd/heimdal/dist/lib/hdb/hdb-mitdb.c @@ -1,4 +1,4 @@ -/* $NetBSD: hdb-mitdb.c,v 1.3 2019/12/15 22:50:49 christos Exp $ */ +/* $NetBSD: hdb-mitdb.c,v 1.4 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan @@ -1040,6 +1040,9 @@ mdb_remove(krb5_context context, HDB *db, krb5_data key; krb5_data value = { 0, 0 }; + code = mdb_principal2key(context, principal, &key); + if (code) + return code; if ((flags & HDB_F_PRECHECK)) { code = db->hdb__get(context, db, key, &value); krb5_data_free(&key); @@ -1050,7 +1053,6 @@ mdb_remove(krb5_context context, HDB *db, return code; } - mdb_principal2key(context, principal, &key); code = db->hdb__del(context, db, key); krb5_data_free(&key); return code; diff --git a/crypto/external/bsd/heimdal/dist/lib/hdb/hdb.c b/crypto/external/bsd/heimdal/dist/lib/hdb/hdb.c index 7aa9811de06a..07f337b67aad 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hdb/hdb.c +++ b/crypto/external/bsd/heimdal/dist/lib/hdb/hdb.c @@ -1,4 +1,4 @@ -/* $NetBSD: hdb.c,v 1.4 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: hdb.c,v 1.5 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hdb/keys.c b/crypto/external/bsd/heimdal/dist/lib/hdb/keys.c index aab28fe4c529..2a23f8927b81 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hdb/keys.c +++ b/crypto/external/bsd/heimdal/dist/lib/hdb/keys.c @@ -1,4 +1,4 @@ -/* $NetBSD: keys.c,v 1.5 2019/12/15 22:50:49 christos Exp $ */ +/* $NetBSD: keys.c,v 1.6 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1997 - 2011 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hdb/keytab.c b/crypto/external/bsd/heimdal/dist/lib/hdb/keytab.c index 9790932ab343..51cd239a42a1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hdb/keytab.c +++ b/crypto/external/bsd/heimdal/dist/lib/hdb/keytab.c @@ -1,4 +1,4 @@ -/* $NetBSD: keytab.c,v 1.2 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: keytab.c,v 1.3 2023/06/19 21:41:43 christos Exp $ */ /* * Copyright (c) 1999 - 2002 Kungliga Tekniska Högskolan @@ -161,8 +161,12 @@ find_db (krb5_context context, } } hdb_free_dbinfo(context, &head); - if (*dbname == NULL) - *dbname = strdup(HDB_DEFAULT_DB); + if (*dbname == NULL && + (*dbname = strdup(HDB_DEFAULT_DB)) == NULL) { + free(*mkey); + *mkey = NULL; + return krb5_enomem(context); + } return 0; } diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/cert.c b/crypto/external/bsd/heimdal/dist/lib/hx509/cert.c index c25be3b86433..71276c06f811 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/cert.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/cert.c @@ -1,4 +1,4 @@ -/* $NetBSD: cert.c,v 1.5 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: cert.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2007 Kungliga Tekniska Högskolan @@ -2202,9 +2202,9 @@ hx509_verify_path(hx509_context context, * EE checking below. */ type = EE_CERT; - /* FALLTHOUGH */ } } + /* FALLTHROUGH */ case EE_CERT: /* * If there where any proxy certificates in the chain diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/cms.c b/crypto/external/bsd/heimdal/dist/lib/hx509/cms.c index 968f187fc777..c56d74e63bff 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/cms.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/cms.c @@ -1,4 +1,4 @@ -/* $NetBSD: cms.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: cms.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2003 - 2007 Kungliga Tekniska Högskolan @@ -184,7 +184,7 @@ fill_CMSIdentifier(const hx509_cert cert, &id->u.subjectKeyIdentifier); if (ret == 0) break; - /* FALL THOUGH */ + /* FALLTHROUGH */ case CMS_ID_NAME: { hx509_name name; diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/crypto.c b/crypto/external/bsd/heimdal/dist/lib/hx509/crypto.c index 69815af41070..ef17bcdef529 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/crypto.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/crypto.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto.c,v 1.3 2018/02/05 16:00:52 christos Exp $ */ +/* $NetBSD: crypto.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2016 Kungliga Tekniska Högskolan @@ -931,7 +931,7 @@ static const struct signature_alg sha512_alg = { static const struct signature_alg sha384_alg = { "sha-384", - ASN1_OID_ID_SHA512, + ASN1_OID_ID_SHA384, &_hx509_signature_sha384_data, NULL, NULL, diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/file.c b/crypto/external/bsd/heimdal/dist/lib/hx509/file.c index af6084de7f73..74674aace1e3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/file.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/file.c @@ -1,4 +1,4 @@ -/* $NetBSD: file.c,v 1.2 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: file.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2005 - 2006 Kungliga Tekniska Högskolan @@ -232,7 +232,7 @@ hx509_pem_read(hx509_context context, where = INDATA; goto indata; } - /* FALLTHOUGH */ + /* FALLTHROUGH */ case INHEADER: if (buf[0] == '\0') { where = INDATA; diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/hxtool.c b/crypto/external/bsd/heimdal/dist/lib/hx509/hxtool.c index 3a0cd28ce708..48b119c90328 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/hxtool.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/hxtool.c @@ -1,4 +1,4 @@ -/* $NetBSD: hxtool.c,v 1.3 2018/02/05 16:00:52 christos Exp $ */ +/* $NetBSD: hxtool.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2016 Kungliga Tekniska Högskolan @@ -1329,6 +1329,7 @@ request_create(struct request_create_options *opt, int argc, char **argv) const char *outfile = argv[0]; memset(&key, 0, sizeof(key)); + memset(&signer, 0, sizeof(signer)); get_key(opt->key_string, opt->generate_key_string, diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/ks_file.c b/crypto/external/bsd/heimdal/dist/lib/hx509/ks_file.c index cd9de708e12f..0d8646316a08 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/ks_file.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/ks_file.c @@ -1,4 +1,4 @@ -/* $NetBSD: ks_file.c,v 1.5 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: ks_file.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2005 - 2007 Kungliga Tekniska Högskolan @@ -550,7 +550,7 @@ store_func(hx509_context context, void *ctx, hx509_cert c) { struct store_ctx *sc = ctx; heim_octet_string data; - int ret; + int ret = 0; ret = hx509_cert_binary(context, c, &data); if (ret) @@ -571,14 +571,14 @@ store_func(hx509_context context, void *ctx, hx509_cert c) HX509_KEY_FORMAT_DER, &data); if (ret) break; - hx509_pem_write(context, _hx509_private_pem_name(key), NULL, sc->f, - data.data, data.length); + ret = hx509_pem_write(context, _hx509_private_pem_name(key), NULL, + sc->f, data.data, data.length); free(data.data); } break; } - return 0; + return ret; } static int diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/ks_p11.c b/crypto/external/bsd/heimdal/dist/lib/hx509/ks_p11.c index eedd8d3b778b..4a8f50dec502 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/ks_p11.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/ks_p11.c @@ -1,4 +1,4 @@ -/* $NetBSD: ks_p11.c,v 1.3 2018/02/05 16:00:52 christos Exp $ */ +/* $NetBSD: ks_p11.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/name.c b/crypto/external/bsd/heimdal/dist/lib/hx509/name.c index 40e1e4b726d1..118a56c755b1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/name.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/name.c @@ -1,4 +1,4 @@ -/* $NetBSD: name.c,v 1.2 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: name.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2009 Kungliga Tekniska Högskolan @@ -954,6 +954,7 @@ int hx509_general_name_unparse(GeneralName *name, char **str) { struct rk_strpool *strpool = NULL; + int ret = 0; *str = NULL; @@ -980,7 +981,6 @@ hx509_general_name_unparse(GeneralName *name, char **str) case choice_GeneralName_directoryName: { Name dir; char *s; - int ret; memset(&dir, 0, sizeof(dir)); dir.element = (enum Name_enum)name->u.directoryName.element; dir.u.rdnSequence = name->u.directoryName.u.rdnSequence; @@ -1033,10 +1033,9 @@ hx509_general_name_unparse(GeneralName *name, char **str) default: return EINVAL; } - if (strpool == NULL) + if (ret) + rk_strpoolfree(strpool); + else if (strpool == NULL || (*str = rk_strpoolcollect(strpool)) == NULL) return ENOMEM; - - *str = rk_strpoolcollect(strpool); - - return 0; + return ret; } diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/revoke.c b/crypto/external/bsd/heimdal/dist/lib/hx509/revoke.c index aa8f0934669e..9d81246644e0 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/revoke.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/revoke.c @@ -1,4 +1,4 @@ -/* $NetBSD: revoke.c,v 1.4 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: revoke.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/sel-gram.y b/crypto/external/bsd/heimdal/dist/lib/hx509/sel-gram.y index 8ca3a2dfa49c..96730e4c8ff0 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/sel-gram.y +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/sel-gram.y @@ -1,4 +1,4 @@ -/* $NetBSD: sel-gram.y,v 1.4 2021/06/20 12:01:07 christos Exp $ */ +/* $NetBSD: sel-gram.y,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2017 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/sel-lex.l b/crypto/external/bsd/heimdal/dist/lib/hx509/sel-lex.l index 8fbb18e5ba2e..b2240085cbc7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/sel-lex.l +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/sel-lex.l @@ -1,4 +1,4 @@ -/* $NetBSD: sel-lex.l,v 1.4 2021/06/20 12:01:07 christos Exp $ */ +/* $NetBSD: sel-lex.l,v 1.5 2023/06/19 21:41:44 christos Exp $ */ %{ /* diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/sel.c b/crypto/external/bsd/heimdal/dist/lib/hx509/sel.c index d7c59965324c..8ea53655ba0f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/sel.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/sel.c @@ -1,4 +1,4 @@ -/* $NetBSD: sel.c,v 1.3 2021/06/20 12:01:07 christos Exp $ */ +/* $NetBSD: sel.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/sel.h b/crypto/external/bsd/heimdal/dist/lib/hx509/sel.h index 5b61b8ba1d2f..8ddafdbc791d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/sel.h +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/sel.h @@ -1,4 +1,4 @@ -/* $NetBSD: sel.h,v 1.6 2021/06/20 12:01:07 christos Exp $ */ +/* $NetBSD: sel.h,v 1.7 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/hx509/softp11.c b/crypto/external/bsd/heimdal/dist/lib/hx509/softp11.c index 35628c407739..6cf7ac0d2275 100644 --- a/crypto/external/bsd/heimdal/dist/lib/hx509/softp11.c +++ b/crypto/external/bsd/heimdal/dist/lib/hx509/softp11.c @@ -1,4 +1,4 @@ -/* $NetBSD: softp11.c,v 1.4 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: softp11.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 - 2008 Kungliga Tekniska Högskolan @@ -344,6 +344,9 @@ add_object_attribute(struct st_object *o, struct st_attr *a; int i; + if (pValue == NULL && ulValueLen) + return CKR_ARGUMENTS_BAD; + i = o->num_attributes; a = realloc(o->attrs, (i + 1) * sizeof(o->attrs[0])); if (a == NULL) @@ -354,7 +357,8 @@ add_object_attribute(struct st_object *o, o->attrs[i].attribute.pValue = malloc(ulValueLen); if (o->attrs[i].attribute.pValue == NULL && ulValueLen != 0) return CKR_DEVICE_MEMORY; - memcpy(o->attrs[i].attribute.pValue, pValue, ulValueLen); + if (ulValueLen) + memcpy(o->attrs[i].attribute.pValue, pValue, ulValueLen); o->attrs[i].attribute.ulValueLen = ulValueLen; o->num_attributes++; diff --git a/crypto/external/bsd/heimdal/dist/lib/ipc/client.c b/crypto/external/bsd/heimdal/dist/lib/ipc/client.c index ddac83e49171..6d621c5f7d8f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/ipc/client.c +++ b/crypto/external/bsd/heimdal/dist/lib/ipc/client.c @@ -1,4 +1,4 @@ -/* $NetBSD: client.c,v 1.2 2017/01/28 21:31:48 christos Exp $ */ +/* $NetBSD: client.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2009 Kungliga Tekniska Högskolan @@ -334,10 +334,8 @@ connect_unix(struct path_ctx *s) return errno; rk_cloexec(s->fd); - if (connect(s->fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - close(s->fd); + if (connect(s->fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) return errno; - } return 0; } diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/ad.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/ad.c index 28903c2b758d..e097e2e32c23 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/ad.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/ad.c @@ -1,4 +1,4 @@ -/* $NetBSD: ad.c,v 1.5 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: ad.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -49,7 +49,7 @@ #include #endif -__RCSID("$NetBSD: ad.c,v 1.5 2019/12/15 22:50:50 christos Exp $"); +__RCSID("$NetBSD: ad.c,v 1.6 2023/06/19 21:41:44 christos Exp $"); #ifdef OPENLDAP diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/get_s.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/get_s.c index f528c4dd0d7e..e533bab27286 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/get_s.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/get_s.c @@ -1,4 +1,4 @@ -/* $NetBSD: get_s.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: get_s.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -37,7 +37,7 @@ #include "kadm5_locl.h" #include -__RCSID("$NetBSD: get_s.c,v 1.2 2017/01/28 21:31:49 christos Exp $"); +__RCSID("$NetBSD: get_s.c,v 1.3 2023/06/19 21:41:44 christos Exp $"); static kadm5_ret_t add_tl_data(kadm5_principal_ent_t ent, int16_t type, @@ -125,31 +125,26 @@ kadm5_s_get_principal(void *server_handle, kadm5_server_context *context = server_handle; kadm5_ret_t ret; hdb_entry_ex ent; - int hdb_is_rw = 1; memset(&ent, 0, sizeof(ent)); memset(out, 0, sizeof(*out)); if (!context->keep_open) { - ret = context->db->hdb_open(context->context, context->db, O_RDWR, 0); - if (ret == EPERM || ret == EACCES) { - ret = context->db->hdb_open(context->context, context->db, O_RDONLY, 0); - hdb_is_rw = 0; - } + ret = context->db->hdb_open(context->context, context->db, O_RDONLY, 0); if (ret) return ret; } /* - * Attempt to recover the log. This will generally fail on slaves, - * and we can't tell if we're on a slave here. + * We may want to attempt to recover the log on read operations, but we + * because the HDB/log lock order is reversed on slaves, in order to avoid + * lock contention from kadm5srv apps we need to make sure that the the HDB + * open for read-write is optimistic and attempts only a non-blocking lock, + * and if it doesn't get it then it should fallback to read-only. But we + * don't have that option in the hdb_open() interface at this time. * - * Perhaps we could set a flag in the kadm5_server_context to - * indicate whether a read has been done without recovering the log, - * in which case we could fail any subsequent writes. + * For now we won't attempt to recover the log. */ - if (hdb_is_rw && kadm5_log_init_nb(context) == 0) - (void) kadm5_log_end(context); ret = context->db->hdb_fetch_kvno(context->context, context->db, princ, HDB_F_DECRYPT|HDB_F_ALL_KVNOS| @@ -321,7 +316,7 @@ kadm5_s_get_principal(void *server_handle, ret = hdb_entry_get_password(context->context, context->db, &ent.entry, &pw); if (ret == 0) { - ret = add_tl_data(out, KRB5_TL_PASSWORD, pw, strlen(pw) + 1); + (void) add_tl_data(out, KRB5_TL_PASSWORD, pw, strlen(pw) + 1); free(pw); } krb5_clear_error_message(context->context); diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/init_c.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/init_c.c index d5652d2972ab..047024375455 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/init_c.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/init_c.c @@ -1,4 +1,4 @@ -/* $NetBSD: init_c.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: init_c.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan @@ -45,7 +45,7 @@ #include #endif -__RCSID("$NetBSD: init_c.c,v 1.2 2017/01/28 21:31:49 christos Exp $"); +__RCSID("$NetBSD: init_c.c,v 1.3 2023/06/19 21:41:44 christos Exp $"); static kadm5_ret_t kadm5_c_lock(void *server_handle) @@ -586,7 +586,7 @@ kadm5_c_init_with_context(krb5_context context, void **server_handle) { kadm5_ret_t ret; - kadm5_client_context *ctx; + kadm5_client_context *ctx = NULL; krb5_ccache cc; ret = _kadm5_c_init_context(&ctx, realm_params, context); diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop-log.8 b/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop-log.8 index da04c19f6ff5..be1ad9dfdca2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop-log.8 +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop-log.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: iprop-log.8,v 1.7 2019/12/15 22:50:50 christos Exp $ +.\" $NetBSD: iprop-log.8,v 1.8 2023/06/19 21:41:44 christos Exp $ .\" .\" Id .\" diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop.8 b/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop.8 index d454e8a2969a..bb58f94b168f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop.8 +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/iprop.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: iprop.8,v 1.6 2019/12/15 22:50:50 christos Exp $ +.\" $NetBSD: iprop.8,v 1.7 2023/06/19 21:41:44 christos Exp $ .\" .\" Id .\" diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_master.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_master.c index 5378f1ebdebd..93bd0fd58313 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_master.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_master.c @@ -1,4 +1,4 @@ -/* $NetBSD: ipropd_master.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: ipropd_master.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -123,6 +123,7 @@ make_listen_socket (krb5_context context, const char *port_str) return fd; } + struct slave { krb5_socket_t fd; struct sockaddr_in addr; @@ -130,10 +131,45 @@ struct slave { krb5_auth_context ac; uint32_t version; uint32_t version_tstamp; + uint32_t version_ack; time_t seen; unsigned long flags; #define SLAVE_F_DEAD 0x1 #define SLAVE_F_AYT 0x2 +#define SLAVE_F_READY 0x4 + /* + * We'll use non-blocking I/O so no slave can hold us back. + * + * We call the state left over from a partial write a "tail". + * + * The krb5_data holding an KRB-PRIV will be the write buffer. + */ + struct { + /* Every message we send is a KRB-PRIV with a 4-byte length prefixed */ + uint8_t header_buf[4]; + krb5_data header; + krb5_data packet; + size_t packet_off; + /* For send_complete() we need an sp as part of the tail */ + krb5_storage *dump; + uint32_t vno; + } tail; + struct { + uint8_t header_buf[4]; + krb5_data packet; + size_t offset; + int hlen; + } input; + /* + * Continuation for fair diff sending we send N entries at a time. + */ + struct { + off_t off_next_version; /* offset in log of next diff */ + uint32_t initial_version; /* at time of previous diff */ + uint32_t initial_tstamp; /* at time of previous diff */ + uint32_t last_version_sent; + int more; /* need to send more diffs */ + } next_diff; struct slave *next; }; @@ -222,6 +258,11 @@ remove_slave (krb5_context context, slave *s, slave **root) if (s->ac) krb5_auth_con_free (context, s->ac); + /* Free any pending input/output state */ + krb5_data_free(&s->input.packet); + krb5_data_free(&s->tail.packet); + krb5_storage_free(s->tail.dump); + for (p = root; *p; p = &(*p)->next) if (*p == s) { *p = s->next; @@ -241,13 +282,17 @@ add_slave (krb5_context context, krb5_keytab keytab, slave **root, krb5_ticket *ticket = NULL; char hostname[128]; - s = malloc(sizeof(*s)); + s = calloc(1, sizeof(*s)); if (s == NULL) { krb5_warnx (context, "add_slave: no memory"); return; } s->name = NULL; s->ac = NULL; + s->input.packet.data = NULL; + s->tail.header.data = NULL; + s->tail.packet.data = NULL; + s->tail.dump = NULL; addr_len = sizeof(s->addr); s->fd = accept (fd, (struct sockaddr *)&s->addr, &addr_len); @@ -255,6 +300,7 @@ add_slave (krb5_context context, krb5_keytab keytab, slave **root, krb5_warn (context, rk_SOCK_ERRNO, "accept"); goto error; } + if (master_hostname) strlcpy(hostname, master_hostname, sizeof(hostname)); else @@ -269,6 +315,35 @@ add_slave (krb5_context context, krb5_keytab keytab, slave **root, ret = krb5_recvauth (context, &s->ac, &s->fd, IPROP_VERSION, server, 0, keytab, &ticket); + + /* + * We'll be doing non-blocking I/O only after authentication. We don't + * want to get stuck talking to any one slave. + * + * If we get a partial write, we'll finish writing when the socket becomes + * writable. + * + * Partial reads will be treated as EOF, causing the slave to be marked + * dead. + * + * To do non-blocking I/O for authentication we'll have to implement our + * own krb5_recvauth(). + */ + socket_set_nonblocking(s->fd, 1); + + /* + * We write message lengths separately from the payload, and may do + * back-to-back small writes when flushing pending input and then a new + * update. Avoid Nagle delays. + */ +#if defined(IPPROTO_TCP) && defined(TCP_NODELAY) + { + int nodelay = 1; + (void) setsockopt(s->fd, IPPROTO_TCP, TCP_NODELAY, + (void *)&nodelay, sizeof(nodelay)); + } +#endif + krb5_free_principal (context, server); if (ret) { krb5_warn (context, ret, "krb5_recvauth"); @@ -306,6 +381,7 @@ add_slave (krb5_context context, krb5_keytab keytab, slave **root, krb5_warnx (context, "connection from %s", s->name); s->version = 0; + s->version_ack = 0; s->flags = 0; slave_seen(s); s->next = *root; @@ -374,6 +450,8 @@ write_dump (krb5_context context, krb5_storage *dump, */ ret = krb5_store_uint32(dump, 0); + if (ret) + return ret; ret = hdb_create (context, &db, database); if (ret) @@ -454,14 +532,146 @@ write_dump (krb5_context context, krb5_storage *dump, } static int -send_complete (krb5_context context, slave *s, const char *database, - uint32_t current_version, uint32_t oldest_version, - uint32_t initial_log_tstamp) +mk_priv_tail(krb5_context context, slave *s, krb5_data *data) +{ + uint32_t len; + int ret; + + ret = krb5_mk_priv(context, s->ac, data, &s->tail.packet, NULL); + if (ret) + return ret; + + len = s->tail.packet.length; + _krb5_put_int(s->tail.header_buf, len, sizeof(s->tail.header_buf)); + s->tail.header.length = sizeof(s->tail.header_buf); + s->tail.header.data = s->tail.header_buf; + return 0; +} + +static int +have_tail(slave *s) +{ + return s->tail.header.length || s->tail.packet.length || s->tail.dump; +} + +static int +more_diffs(slave *s) +{ + return s->next_diff.more; +} + +#define SEND_COMPLETE_MAX_RECORDS 50 +#define SEND_DIFFS_MAX_RECORDS 50 + +static int +send_tail(krb5_context context, slave *s) +{ + krb5_data data; + ssize_t bytes = 0; + size_t rem = 0; + size_t n; + int ret; + + if (! have_tail(s)) + return 0; + + /* + * For the case where we're continuing a send_complete() send up to + * SEND_COMPLETE_MAX_RECORDS records now, and the rest asynchronously + * later. This ensures that sending a complete dump to a slow-to-drain + * client does not prevent others from getting serviced. + */ + for (n = 0; n < SEND_COMPLETE_MAX_RECORDS; n++) { + if (! have_tail(s)) + return 0; + + if (s->tail.header.length) { + bytes = krb5_net_write(context, &s->fd, + s->tail.header.data, + s->tail.header.length); + if (bytes < 0) + goto err; + + s->tail.header.length -= bytes; + s->tail.header.data = (char *)s->tail.header.data + bytes; + rem = s->tail.header.length; + if (rem) + goto ewouldblock; + } + + if (s->tail.packet.length) { + bytes = krb5_net_write(context, &s->fd, + (char *)s->tail.packet.data + s->tail.packet_off, + s->tail.packet.length - s->tail.packet_off); + if (bytes < 0) + goto err; + s->tail.packet_off += bytes; + if (bytes) + slave_seen(s); + rem = s->tail.packet.length - s->tail.packet_off; + if (rem) + goto ewouldblock; + + krb5_data_free(&s->tail.packet); + s->tail.packet_off = 0; + } + + if (s->tail.dump == NULL) + return 0; + + /* + * We're in the middle of a send_complete() that was interrupted by + * EWOULDBLOCK. Continue the sending of the dump. + */ + ret = krb5_ret_data(s->tail.dump, &data); + if (ret == HEIM_ERR_EOF) { + krb5_storage_free(s->tail.dump); + s->tail.dump = NULL; + s->version = s->tail.vno; + return 0; + } + + if (ret) { + krb5_warn(context, ret, "failed to read entry from dump!"); + } else { + ret = mk_priv_tail(context, s, &data); + krb5_data_free(&data); + if (ret == 0) + continue; + krb5_warn(context, ret, "failed to make and send a KRB-PRIV to %s", + s->name); + } + + slave_dead(context, s); + return ret; + } + + if (ret == 0 && s->tail.dump != NULL) + return EWOULDBLOCK; + +err: + if (errno != EAGAIN && errno != EWOULDBLOCK) { + krb5_warn(context, ret = errno, + "error sending diffs to now-dead slave %s", s->name); + slave_dead(context, s); + return ret; + } + +ewouldblock: + if (verbose) + krb5_warnx(context, "would block writing %llu bytes to slave %s", + (unsigned long long)rem, s->name); + return EWOULDBLOCK; +} + +static int +send_complete(krb5_context context, slave *s, const char *database, + uint32_t current_version, uint32_t oldest_version, + uint32_t initial_log_tstamp) { krb5_error_code ret; krb5_storage *dump = NULL; uint32_t vno = 0; - krb5_data data; int fd = -1; struct stat st; char *dfn; @@ -519,7 +729,6 @@ send_complete (krb5_context context, slave *s, const char *database, * If the current dump has an appropriate version, then we can * break out of the loop and send the file below. */ - if (ret == 0 && vno != 0 && st.st_mtime > initial_log_tstamp && vno >= oldest_version && vno <= current_version) break; @@ -585,38 +794,18 @@ send_complete (krb5_context context, slave *s, const char *database, /* * Leaving the above loop, dump should have a ptr right after the initial * 4 byte DB version number and we should have a shared lock on the file - * (which we may have just created), so we are reading to simply blast + * (which we may have just created), so we are reading to start sending * the data down the wire. + * + * Note: (krb5_storage_from_fd() dup()'s the fd) */ - for (;;) { - ret = krb5_ret_data(dump, &data); - if (ret == HEIM_ERR_EOF) { - ret = 0; /* EOF is not an error, it's success */ - goto done; - } - - if (ret) { - krb5_warn(context, ret, "krb5_ret_data(dump, &data)"); - slave_dead(context, s); - goto done; - } - - ret = krb5_write_priv_message(context, s->ac, &s->fd, &data); - krb5_data_free(&data); - - if (ret) { - krb5_warn (context, ret, "krb5_write_priv_message"); - slave_dead(context, s); - goto done; - } - } + s->tail.dump = dump; + s->tail.vno = vno; + dump = NULL; + ret = send_tail(context, s); done: - if (!ret) { - s->version = vno; - slave_seen(s); - } if (fd != -1) close(fd); if (dump) @@ -635,6 +824,14 @@ send_are_you_there (krb5_context context, slave *s) if (s->flags & (SLAVE_F_DEAD|SLAVE_F_AYT)) return 0; + /* + * Write any remainder of previous write, if we can. If we'd block we'll + * return EWOULDBLOCK. + */ + ret = send_tail(context, s); + if (ret) + return ret; + krb5_warnx(context, "slave %s missing, sending AYT", s->name); s->flags |= SLAVE_F_AYT; @@ -646,232 +843,465 @@ send_are_you_there (krb5_context context, slave *s) if (sp == NULL) { krb5_warnx (context, "are_you_there: krb5_data_alloc"); slave_dead(context, s); - return 1; + return ENOMEM; } ret = krb5_store_uint32(sp, ARE_YOU_THERE); krb5_storage_free (sp); - if (ret == 0) { - ret = krb5_write_priv_message(context, s->ac, &s->fd, &data); + if (ret == 0) + ret = mk_priv_tail(context, s, &data); + if (ret == 0) + ret = send_tail(context, s); + if (ret && ret != EWOULDBLOCK) { + krb5_warn(context, ret, "are_you_there"); + slave_dead(context, s); + } + return ret; +} - if (ret) { - krb5_warn(context, ret, "are_you_there: krb5_write_priv_message"); - slave_dead(context, s); - return 1; - } +static int +diffready(krb5_context context, slave *s) +{ + /* + * Don't send any diffs until slave has sent an I_HAVE telling us the + * initial version number! + */ + if ((s->flags & SLAVE_F_READY) == 0) + return 0; + + if (s->flags & SLAVE_F_DEAD) { + if (verbose) + krb5_warnx(context, "not sending diffs to dead slave %s", s->name); + return 0; + } + + /* Write any remainder of previous write, if we can. */ + if (send_tail(context, s) != 0) + return 0; + + return 1; +} + +static int +nodiffs(krb5_context context, slave *s, uint32_t current_version) +{ + krb5_storage *sp; + krb5_data data; + int ret; + + if (s->version < current_version) + return 0; + + /* + * If we had sent a partial diff, and now they're caught up, then there's + * no more. + */ + s->next_diff.more = 0; + + if (verbose) + krb5_warnx(context, "slave %s version %ld already sent", s->name, + (long)s->version); + sp = krb5_storage_emem(); + if (sp == NULL) + krb5_errx(context, IPROPD_RESTART, "krb5_storage_from_mem"); + + ret = krb5_store_uint32(sp, YOU_HAVE_LAST_VERSION); + if (ret == 0) { + krb5_data_zero(&data); + ret = krb5_storage_to_data(sp, &data); + } + krb5_storage_free(sp); + if (ret == 0) { + ret = mk_priv_tail(context, s, &data); + krb5_data_free(&data); + } + if (ret == 0) + send_tail(context, s); + + return 1; +} + +/* + * Lock the log and return initial version and timestamp + */ +static int +get_first(kadm5_server_context *server_context, int log_fd, + uint32_t *initial_verp, uint32_t *initial_timep) +{ + krb5_context context = server_context->context; + int ret; + + /* + * We don't want to perform tight retry loops on log access errors, so on + * error mark the slave dead. The slave reconnect after a delay... + */ + if (flock(log_fd, LOCK_SH) == -1) { + krb5_warn(context, errno, "could not obtain shared lock on log file"); + return -1; + } + + ret = kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_FIRST, + initial_verp, initial_timep); + if (ret != 0) { + flock(log_fd, LOCK_UN); + krb5_warnx(context, "could not read initial log entry"); + return -1; } return 0; } -static int -send_diffs (kadm5_server_context *server_context, slave *s, int log_fd, - const char *database, uint32_t current_version, - uint32_t current_tstamp) +/*- + * Find the left end of the diffs in the log we want to send. + * + * - On success, return a positive offset to the first new entry, retaining + * a read lock on the log file. + * - On error, return a negative offset, with the lock released. + * - If we simply find no successor entry in the log, return zero + * with the lock released, which indicates that fallback to send_complete() + * is needed. + */ +static off_t +get_left(kadm5_server_context *server_context, slave *s, krb5_storage *sp, + int log_fd, uint32_t current_version, + uint32_t *initial_verp, uint32_t *initial_timep) +{ + krb5_context context = server_context->context; + off_t pos; + off_t left; + int ret; + + for (;;) { + uint32_t ver = s->version; + + /* This acquires a read lock on success */ + ret = get_first(server_context, log_fd, + initial_verp, initial_timep); + if (ret != 0) + return -1; + + /* When the slave version is out of range, send the whole database. */ + if (ver == 0 || ver < *initial_verp || ver > current_version) { + flock(log_fd, LOCK_UN); + return 0; + } + + /* Avoid seeking past the last committed record */ + if (kadm5_log_goto_end(server_context, sp) != 0 || + (pos = krb5_storage_seek(sp, 0, SEEK_CUR)) < 0) + goto err; + + /* + * First try to see if we can find it quickly by seeking to the right + * end of the previous diff sent. + */ + if (s->next_diff.last_version_sent > 0 && + s->next_diff.off_next_version > 0 && + s->next_diff.off_next_version < pos && + s->next_diff.initial_version == *initial_verp && + s->next_diff.initial_tstamp == *initial_timep) { + /* + * Sanity check that the left version matches what we wanted, the + * log may have been truncated since. + */ + left = s->next_diff.off_next_version; + if (krb5_storage_seek(sp, left, SEEK_SET) != left) + goto err; + if (kadm5_log_next(context, sp, &ver, NULL, NULL, NULL) == 0 && + ver == s->next_diff.last_version_sent + 1) + return left; + } + + if (krb5_storage_seek(sp, pos, SEEK_SET) != pos) + goto err; + + /* + * Drop the lock and try to find the left entry by seeking backward + * from the end of the end of the log. If we succeed, re-acquire the + * lock, update "next_diff", and retry the fast-path. + */ + flock(log_fd, LOCK_UN); + + /* Slow path: seek backwards, entry by entry, from the end */ + for (;;) { + enum kadm_ops op; + uint32_t len; + + ret = kadm5_log_previous(context, sp, &ver, NULL, &op, &len); + if (ret) + return -1; + left = krb5_storage_seek(sp, -16, SEEK_CUR); + if (left < 0) + return left; + if (ver == s->version + 1) + break; + + /* + * We don't expect to reach the slave's version, unless the log + * has been modified after we released the lock. + */ + if (ver == s->version) { + krb5_warnx(context, "iprop log truncated while sending diffs " + "to slave?? ver = %lu", (unsigned long)ver); + return -1; + } + + /* If we've reached the uber record, send the complete database */ + if (left == 0 || (ver == 0 && op == kadm_nop)) + return 0; + } + assert(ver == s->version + 1); + + /* Set up the fast-path pre-conditions */ + s->next_diff.last_version_sent = s->version; + s->next_diff.off_next_version = left; + s->next_diff.initial_version = *initial_verp; + s->next_diff.initial_tstamp = *initial_timep; + + /* + * If we loop then we're hoping to hit the fast path so we can return a + * non-zero, positive left offset with the lock held. + * + * We just updated the fast path pre-conditions, so unless a log + * truncation event happens between the point where we dropped the lock + * and the point where we rearcuire it above, we will hit the fast + * path. + */ + } + + return left; + + err: + flock(log_fd, LOCK_UN); + return -1; +} + +static off_t +get_right(krb5_context context, int log_fd, krb5_storage *sp, + int lastver, slave *s, off_t left, uint32_t *verp) +{ + int ret = 0; + int i = 0; + uint32_t ver = s->version; + off_t right = krb5_storage_seek(sp, left, SEEK_SET); + + if (right <= 0) { + flock(log_fd, LOCK_UN); + return -1; + } + + /* The "lastver" bound should preclude us reaching EOF */ + for (; ret == 0 && i < SEND_DIFFS_MAX_RECORDS && ver < lastver; ++i) { + uint32_t logver; + + ret = kadm5_log_next(context, sp, &logver, NULL, NULL, NULL); + if (logver != ++ver) + ret = KADM5_LOG_CORRUPT; + } + + if (ret == 0) + right = krb5_storage_seek(sp, 0, SEEK_CUR); + else + right = -1; + if (right <= 0) { + flock(log_fd, LOCK_UN); + return -1; + } + *verp = ver; + return right; +} + +static void +send_diffs(kadm5_server_context *server_context, slave *s, int log_fd, + const char *database, uint32_t current_version) { krb5_context context = server_context->context; krb5_storage *sp; - uint32_t ver, initial_version, initial_version2; - uint32_t initial_tstamp, initial_tstamp2; - enum kadm_ops op; - uint32_t len; - off_t right, left; + uint32_t initial_version; + uint32_t initial_tstamp; + uint32_t ver; + off_t left = 0; + off_t right = 0; krb5_ssize_t bytes; krb5_data data; int ret = 0; - if (s->flags & SLAVE_F_DEAD) { - krb5_warnx(context, "not sending diffs to dead slave %s", s->name); - return 0; - } - - if (s->version == current_version) { - char buf[4]; - - sp = krb5_storage_from_mem(buf, 4); - if (sp == NULL) - krb5_errx(context, IPROPD_RESTART, "krb5_storage_from_mem"); - ret = krb5_store_uint32(sp, YOU_HAVE_LAST_VERSION); - krb5_storage_free(sp); - data.data = buf; - data.length = 4; - if (ret == 0) { - ret = krb5_write_priv_message(context, s->ac, &s->fd, &data); - if (ret) { - krb5_warn(context, ret, "send_diffs: failed to send to slave"); - slave_dead(context, s); - } - krb5_warnx(context, "slave %s in sync already at version %ld", - s->name, (long)s->version); - } - return ret; - } + if (!diffready(context, s) || nodiffs(context, s, current_version)) + return; if (verbose) krb5_warnx(context, "sending diffs to live-seeming slave %s", s->name); - /* - * XXX The code that makes the diffs should be made a separate function, - * then error handling (send_are_you_there() or slave_dead()) can be done - * here. - */ + sp = krb5_storage_from_fd(log_fd); + if (sp == NULL) + krb5_err(context, IPROPD_RESTART_SLOW, ENOMEM, + "send_diffs: out of memory"); - if (flock(log_fd, LOCK_SH) == -1) { - krb5_warn(context, errno, "could not obtain shared lock on log file"); - send_are_you_there(context, s); - return errno; - } - ret = kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_FIRST, - &initial_version, &initial_tstamp); - sp = kadm5_log_goto_end(server_context, log_fd); - flock(log_fd, LOCK_UN); - if (ret) { - if (sp != NULL) - krb5_storage_free(sp); - krb5_warn(context, ret, "send_diffs: failed to read log"); - send_are_you_there(context, s); - return ret; - } - if (sp == NULL) { - send_are_you_there(context, s); - krb5_warn(context, errno ? errno : EINVAL, - "send_diffs: failed to read log"); - return errno ? errno : EINVAL; - } - /* - * We're not holding any locks here, so we can't prevent truncations. - * - * We protect against this by re-checking that the initial version and - * timestamp are the same before and after this loop. - */ - right = krb5_storage_seek(sp, 0, SEEK_CUR); - if (right == (off_t)-1) { + left = get_left(server_context, s, sp, log_fd, current_version, + &initial_version, &initial_tstamp); + if (left < 0) { krb5_storage_free(sp); - send_are_you_there(context, s); - return errno; - } - for (;;) { - ret = kadm5_log_previous (context, sp, &ver, NULL, &op, &len); - if (ret) - krb5_err(context, IPROPD_RESTART, ret, - "send_diffs: failed to find previous entry"); - left = krb5_storage_seek(sp, -16, SEEK_CUR); - if (left == (off_t)-1) { - krb5_storage_free(sp); - send_are_you_there(context, s); - return errno; - } - if (ver == s->version + 1) - break; - - /* - * We don't expect to reach the slave's version, except when it is - * starting empty with the uber record. - */ - if (ver == s->version && !(ver == 0 && op == kadm_nop)) { - /* - * This shouldn't happen, but recall we're not holding a lock on - * the log. - */ - krb5_storage_free(sp); - krb5_warnx(context, "iprop log truncated while sending diffs to " - "slave?? ver = %lu", (unsigned long)ver); - send_are_you_there(context, s); - return 0; - } - - /* If we've reached the uber record, send the complete database */ - if (left == 0 || (ver == 0 && op == kadm_nop)) { - krb5_storage_free(sp); - krb5_warnx(context, - "slave %s (version %lu) out of sync with master " - "(first version in log %lu), sending complete database", - s->name, (unsigned long)s->version, (unsigned long)ver); - return send_complete (context, s, database, current_version, ver, - initial_tstamp); - } + slave_dead(context, s); + return; } - assert(ver == s->version + 1); + if (left == 0) { + /* Slave's version is not in the log, fall back on send_complete() */ + krb5_storage_free(sp); + send_complete(context, s, database, current_version, + initial_version, initial_tstamp); + return; + } - krb5_warnx(context, - "syncing slave %s from version %lu to version %lu", - s->name, (unsigned long)s->version, - (unsigned long)current_version); + /* We still hold the read lock, if right > 0 */ + right = get_right(server_context->context, log_fd, sp, current_version, + s, left, &ver); + if (right == left) { + flock(log_fd, LOCK_UN); + krb5_storage_free(sp); + return; + } + if (right < left) { + assert(right < 0); + krb5_storage_free(sp); + slave_dead(context, s); + return; + } - ret = krb5_data_alloc (&data, right - left + 4); + if (krb5_storage_seek(sp, left, SEEK_SET) != left) { + ret = errno ? errno : EIO; + flock(log_fd, LOCK_UN); + krb5_warn(context, ret, "send_diffs: krb5_storage_seek"); + krb5_storage_free(sp); + slave_dead(context, s); + return; + } + + ret = krb5_data_alloc(&data, right - left + 4); if (ret) { - krb5_storage_free(sp); - krb5_warn (context, ret, "send_diffs: krb5_data_alloc"); - send_are_you_there(context, s); - return 1; + flock(log_fd, LOCK_UN); + krb5_warn(context, ret, "send_diffs: krb5_data_alloc"); + krb5_storage_free(sp); + slave_dead(context, s); + return; } + bytes = krb5_storage_read(sp, (char *)data.data + 4, data.length - 4); - krb5_storage_free(sp); - if (bytes != data.length - 4) { - krb5_warnx(context, "iprop log truncated while sending diffs to " - "slave?? ver = %lu", (unsigned long)ver); - send_are_you_there(context, s); - return 1; - } - - /* - * Check that we have the same log initial version and timestamp now as - * when we dropped the shared lock on the log file! Else we could be - * sending garbage to the slave. - */ - if (flock(log_fd, LOCK_SH) == -1) { - krb5_warn(context, errno, "could not obtain shared lock on log file"); - send_are_you_there(context, s); - return 1; - } - ret = kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_FIRST, - &initial_version2, &initial_tstamp2); flock(log_fd, LOCK_UN); - if (ret) { - krb5_warn(context, ret, - "send_diffs: failed to read log while producing diffs"); - send_are_you_there(context, s); - return 1; - } - if (initial_version != initial_version2 || - initial_tstamp != initial_tstamp2) { - krb5_warn(context, ret, - "send_diffs: log truncated while producing diffs"); - send_are_you_there(context, s); - return 1; - } + krb5_storage_free(sp); + if (bytes != data.length - 4) + krb5_errx(context, IPROPD_RESTART, "locked log truncated???"); - sp = krb5_storage_from_data (&data); + sp = krb5_storage_from_data(&data); if (sp == NULL) { - krb5_warnx (context, "send_diffs: krb5_storage_from_data"); - send_are_you_there(context, s); - return 1; + krb5_err(context, IPROPD_RESTART_SLOW, ENOMEM, "out of memory"); + krb5_warnx(context, "send_diffs: krb5_storage_from_data"); + return; } - krb5_store_uint32 (sp, FOR_YOU); + krb5_store_uint32(sp, FOR_YOU); krb5_storage_free(sp); - ret = krb5_write_priv_message(context, s->ac, &s->fd, &data); + ret = mk_priv_tail(context, s, &data); krb5_data_free(&data); + if (ret == 0) { + /* Save the fast-path continuation */ + s->next_diff.last_version_sent = ver; + s->next_diff.off_next_version = right; + s->next_diff.initial_version = initial_version; + s->next_diff.initial_tstamp = initial_tstamp; + s->next_diff.more = ver < current_version; + ret = send_tail(context, s); - if (ret) { - krb5_warn (context, ret, "send_diffs: krb5_write_priv_message"); - slave_dead(context, s); - return 1; + krb5_warnx(context, + "syncing slave %s from version %lu to version %lu", + s->name, (unsigned long)s->version, + (unsigned long)ver); + s->version = ver; + } + + if (ret && ret != EWOULDBLOCK) { + krb5_warn(context, ret, "send_diffs: making or sending " + "KRB-PRIV message"); + slave_dead(context, s); + return; } slave_seen(s); + return; +} - s->version = current_version; +/* Sensible bound on slave message size */ +#define SLAVE_MSG_MAX 65536 - krb5_warnx(context, "slave %s is now up to date (%u)", s->name, s->version); +static int +fill_input(krb5_context context, slave *s) +{ + krb5_error_code ret; + if (s->input.hlen < 4) { + uint8_t *buf = s->input.header_buf + s->input.hlen; + size_t len = 4 - s->input.hlen; + krb5_ssize_t bytes = krb5_net_read(context, &s->fd, buf, len); + + if (bytes == 0) + return HEIM_ERR_EOF; + if (bytes < 0) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return EWOULDBLOCK; + return errno ? errno : EIO; + } + s->input.hlen += bytes; + if (bytes < len) + return EWOULDBLOCK; + + buf = s->input.header_buf; + len = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + if (len > SLAVE_MSG_MAX) + return EINVAL; + ret = krb5_data_alloc(&s->input.packet, len); + if (ret != 0) + return ret; + } + + if (s->input.offset < s->input.packet.length) { + u_char *buf = (u_char *)s->input.packet.data + s->input.offset; + size_t len = s->input.packet.length - s->input.offset; + krb5_ssize_t bytes = krb5_net_read(context, &s->fd, buf, len); + + if (bytes == 0) + return HEIM_ERR_EOF; + if (bytes < 0) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return EWOULDBLOCK; + return errno ? errno : EIO; + } + s->input.offset += bytes; + if (bytes != len) + return EWOULDBLOCK; + } return 0; } static int -process_msg (kadm5_server_context *server_context, slave *s, int log_fd, - const char *database, uint32_t current_version, - uint32_t current_tstamp) +read_msg(krb5_context context, slave *s, krb5_data *out) +{ + int ret = fill_input(context, s); + + if (ret != 0) + return ret; + + ret = krb5_rd_priv(context, s->ac, &s->input.packet, out, NULL); + + /* Prepare for next packet */ + krb5_data_free(&s->input.packet); + s->input.offset = 0; + s->input.hlen = 0; + + return ret; +} + +static int +process_msg(kadm5_server_context *server_context, slave *s, int log_fd, + const char *database, uint32_t current_version) { krb5_context context = server_context->context; int ret = 0; @@ -879,10 +1309,11 @@ process_msg (kadm5_server_context *server_context, slave *s, int log_fd, krb5_storage *sp; uint32_t tmp; - ret = krb5_read_priv_message(context, s->ac, &s->fd, &out); - if(ret) { - krb5_warn(context, ret, "error reading message from %s", s->name); - return 1; + ret = read_msg(context, s, &out); + if (ret) { + if (ret != EWOULDBLOCK) + krb5_warn(context, ret, "error reading message from %s", s->name); + return ret; } sp = krb5_storage_from_mem(out.data, out.length); @@ -903,25 +1334,48 @@ process_msg (kadm5_server_context *server_context, slave *s, int log_fd, krb5_warnx(context, "process_msg: client send too little I_HAVE data"); break; } - /* new started slave that have old log */ - if (s->version == 0 && tmp != 0) { + /* + * XXX Make the slave send the timestamp as well, and try to get it + * here, and pass it to send_diffs(). + */ + /* + * New slave whose version number we've not yet seen. If the version + * number is zero, the slave has no data, and we'll send a complete + * database (that happens in send_diffs()). Otherwise, we'll record a + * non-zero initial version and attempt an incremental update. + * + * NOTE!: Once the slave is "ready" (its first I_HAVE has conveyed its + * initial version), we MUST NOT update s->version to the slave's + * I_HAVE version, since we may already have sent later updates, and + * MUST NOT send them again, otherwise we can get further and further + * out of sync resending larger and larger diffs. The "not yet ready" + * is an essential precondition for setting s->version to the value + * in the I_HAVE message. This happens only once when the slave + * first connects. + */ + if (!(s->flags & SLAVE_F_READY)) { if (current_version < tmp) { - krb5_warnx(context, "Slave %s (version %u) have later version " - "the master (version %u) OUT OF SYNC", + krb5_warnx(context, "Slave %s (version %u) has later version " + "than the master (version %u) OUT OF SYNC", s->name, tmp, current_version); + /* Force send_complete() */ + tmp = 0; } - if (verbose) - krb5_warnx(context, "slave %s updated from %u to %u", - s->name, s->version, tmp); + /* + * Mark the slave as ready for updates based on incoming signals. + * Prior to the initial I_HAVE, we don't know the slave's version + * number, and MUST not send it anything, since we'll needlessly + * attempt to send the whole database! + */ s->version = tmp; + s->flags |= SLAVE_F_READY; + if (verbose) + krb5_warnx(context, "slave %s ready for updates from version %u", + s->name, tmp); } - if (tmp < s->version) { - krb5_warnx(context, "Slave %s claims to not have " - "version we already sent to it", s->name); - s->version = tmp; - } - ret = send_diffs(server_context, s, log_fd, database, current_version, - current_tstamp); + if ((s->version_ack = tmp) < s->version) + break; + send_diffs(server_context, s, log_fd, database, current_version); break; case I_AM_HERE : if (verbose) @@ -1037,7 +1491,7 @@ write_stats(krb5_context context, slave *slaves, uint32_t current_version) } else rtbl_add_column_entry(tbl, SLAVE_ADDRESS, ""); - snprintf(str, sizeof(str), "%u", (unsigned)slaves->version); + snprintf(str, sizeof(str), "%u", (unsigned)slaves->version_ack); rtbl_add_column_entry(tbl, SLAVE_VERSION, str); if (slaves->flags & SLAVE_F_DEAD) @@ -1046,7 +1500,10 @@ write_stats(krb5_context context, slave *slaves, uint32_t current_version) rtbl_add_column_entry(tbl, SLAVE_STATUS, "Up"); ret = krb5_format_time(context, slaves->seen, str, sizeof(str), TRUE); - rtbl_add_column_entry(tbl, SLAVE_SEEN, str); + if (ret) + rtbl_add_column_entry(tbl, SLAVE_SEEN, ""); + else + rtbl_add_column_entry(tbl, SLAVE_SEEN, str); slaves = slaves->next; } @@ -1107,7 +1564,6 @@ main(int argc, char **argv) int log_fd; slave *slaves = NULL; uint32_t current_version = 0, old_version = 0; - uint32_t current_tstamp = 0; krb5_keytab keytab; char **files; int aret; @@ -1200,7 +1656,7 @@ main(int argc, char **argv) krb5_err(context, 1, errno, "shared flock %s", server_context->log_context.log_file); kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_LAST, - ¤t_version, ¤t_tstamp); + ¤t_version, NULL); flock(log_fd, LOCK_UN); signal_fd = make_signal_socket (context); @@ -1214,7 +1670,7 @@ main(int argc, char **argv) while (exit_flag == 0){ slave *p; - fd_set readset; + fd_set readset, writeset; int max_fd = 0; struct timeval to = {30, 0}; uint32_t vers; @@ -1227,6 +1683,7 @@ main(int argc, char **argv) #endif FD_ZERO(&readset); + FD_ZERO(&writeset); FD_SET(signal_fd, &readset); max_fd = max(max_fd, signal_fd); FD_SET(listen_fd, &readset); @@ -1240,11 +1697,12 @@ main(int argc, char **argv) if (p->flags & SLAVE_F_DEAD) continue; FD_SET(p->fd, &readset); + if (have_tail(p) || more_diffs(p)) + FD_SET(p->fd, &writeset); max_fd = max(max_fd, p->fd); } - ret = select (max_fd + 1, - &readset, NULL, NULL, &to); + ret = select(max_fd + 1, &readset, &writeset, NULL, &to); if (ret < 0) { if (errno == EINTR) continue; @@ -1262,7 +1720,7 @@ main(int argc, char **argv) log_fd = open(server_context->log_context.log_file, O_RDONLY, 0); if (log_fd < 0) - krb5_err(context, 1, IPROPD_RESTART_SLOW, "open %s", + krb5_err(context, IPROPD_RESTART_SLOW, errno, "open %s", server_context->log_context.log_file); if (fstat(log_fd, &st) == -1) @@ -1273,7 +1731,7 @@ main(int argc, char **argv) krb5_err(context, IPROPD_RESTART, errno, "shared flock %s", server_context->log_context.log_file); kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_LAST, - ¤t_version, ¤t_tstamp); + ¤t_version, NULL); flock(log_fd, LOCK_UN); } @@ -1286,19 +1744,20 @@ main(int argc, char **argv) krb5_err(context, IPROPD_RESTART, errno, "could not lock log file"); kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_LAST, - ¤t_version, ¤t_tstamp); + ¤t_version, NULL); flock(log_fd, LOCK_UN); if (current_version > old_version) { - krb5_warnx(context, - "Missed a signal, updating slaves %lu to %lu", - (unsigned long)old_version, - (unsigned long)current_version); + if (verbose) + krb5_warnx(context, + "Missed a signal, updating slaves %lu to %lu", + (unsigned long)old_version, + (unsigned long)current_version); for (p = slaves; p != NULL; p = p->next) { if (p->flags & SLAVE_F_DEAD) continue; - send_diffs (server_context, p, log_fd, database, - current_version, current_tstamp); + send_diffs(server_context, p, log_fd, database, + current_version); } old_version = current_version; } @@ -1329,7 +1788,7 @@ main(int argc, char **argv) krb5_err(context, IPROPD_RESTART, errno, "shared flock %s", server_context->log_context.log_file); kadm5_log_get_version_fd(server_context, log_fd, LOG_VERSION_LAST, - ¤t_version, ¤t_tstamp); + ¤t_version, NULL); flock(log_fd, LOCK_UN); if (current_version != old_version) { /* @@ -1344,31 +1803,44 @@ main(int argc, char **argv) * breaking backwards compatibility for the protocol or * adding new messages to it. */ - krb5_warnx(context, - "Got a signal, updating slaves %lu to %lu", - (unsigned long)old_version, - (unsigned long)current_version); + if (verbose) + krb5_warnx(context, + "Got a signal, updating slaves %lu to %lu", + (unsigned long)old_version, + (unsigned long)current_version); for (p = slaves; p != NULL; p = p->next) { if (p->flags & SLAVE_F_DEAD) continue; - send_diffs (server_context, p, log_fd, database, - current_version, current_tstamp); + send_diffs(server_context, p, log_fd, database, + current_version); } } else { - krb5_warnx(context, - "Got a signal, but no update in log version %lu", - (unsigned long)current_version); + if (verbose) + krb5_warnx(context, + "Got a signal, but no update in log version %lu", + (unsigned long)current_version); } } + for (p = slaves; p != NULL; p = p->next) { + if (!(p->flags & SLAVE_F_DEAD) && + FD_ISSET(p->fd, &writeset) && + ((have_tail(p) && send_tail(context, p) == 0) || + (!have_tail(p) && more_diffs(p)))) { + send_diffs(server_context, p, log_fd, database, + current_version); + } + } + for(p = slaves; p != NULL; p = p->next) { if (p->flags & SLAVE_F_DEAD) continue; if (ret && FD_ISSET(p->fd, &readset)) { --ret; assert(ret >= 0); - if(process_msg (server_context, p, log_fd, database, - current_version, current_tstamp)) + ret = process_msg(server_context, p, log_fd, database, + current_version); + if (ret && ret != EWOULDBLOCK) slave_dead(context, p); } else if (slave_gone_p (p)) slave_dead(context, p); diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_slave.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_slave.c index e0056494636f..270843daa8b5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_slave.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/ipropd_slave.c @@ -1,4 +1,4 @@ -/* $NetBSD: ipropd_slave.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: ipropd_slave.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "iprop.h" -__RCSID("$NetBSD: ipropd_slave.c,v 1.3 2019/12/15 22:50:50 christos Exp $"); +__RCSID("$NetBSD: ipropd_slave.c,v 1.4 2023/06/19 21:41:44 christos Exp $"); static const char *config_name = "ipropd-slave"; @@ -101,6 +101,15 @@ connect_to_master (krb5_context context, const char *master, if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof(one)) < 0) krb5_warn(context, errno, "setsockopt(SO_KEEPALIVE) failed"); + /* + * We write message lengths separately from the payload, avoid Nagle + * delays. + */ +#if defined(IPPROTO_TCP) && defined(TCP_NODELAY) + (void) setsockopt(s, IPPROTO_TCP, TCP_NODELAY, + (void *)&one, sizeof(one)); +#endif + return s; } @@ -1005,11 +1014,14 @@ main(int argc, char **argv) if (verbose) krb5_warnx(context, "master sent us a ping"); is_up_to_date(context, status_file, server_context); - ret = ihave(context, auth_context, master_fd, - server_context->log_context.version); - if (ret) - connected = FALSE; - + /* + * We used to send an I_HAVE here. But the master may send + * ARE_YOU_THERE messages in response to local, possibly- + * transient errors, and if that happens and we respond with an + * I_HAVE then we'll loop hard if the error was not transient. + * + * So we don't ihave() here. + */ send_im_here(context, master_fd, auth_context); break; case YOU_HAVE_LAST_VERSION: diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5-private.h b/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5-private.h index 3a8681fc6069..0bd2d5cc25b8 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5-private.h +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5-private.h @@ -1,4 +1,4 @@ -/* $NetBSD: kadm5-private.h,v 1.2 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: kadm5-private.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* This is a generated file */ #ifndef __kadm5_private_h__ @@ -323,10 +323,15 @@ kadm5_log_get_version_fd ( uint32_t */*ver*/, uint32_t */*tstamp*/); -krb5_storage * +kadm5_ret_t kadm5_log_goto_end ( kadm5_server_context */*server_context*/, - int /*fd*/); + krb5_storage */*sp*/); + +kadm5_ret_t +kadm5_log_goto_first ( + kadm5_server_context */*server_context*/, + krb5_storage */*sp*/); kadm5_ret_t kadm5_log_init (kadm5_server_context */*server_context*/); @@ -348,6 +353,15 @@ kadm5_log_modify ( hdb_entry */*entry*/, uint32_t /*mask*/); +kadm5_ret_t +kadm5_log_next ( + krb5_context /*context*/, + krb5_storage */*sp*/, + uint32_t */*verp*/, + time_t */*tstampp*/, + enum kadm_ops */*opp*/, + uint32_t */*lenp*/); + kadm5_ret_t kadm5_log_nop ( kadm5_server_context */*context*/, diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5_locl.h b/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5_locl.h index 22f37d3b8a3e..8946c798601e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5_locl.h +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/kadm5_locl.h @@ -1,4 +1,4 @@ -/* $NetBSD: kadm5_locl.h,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: kadm5_locl.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997-2000 Kungliga Tekniska Högskolan @@ -69,6 +69,12 @@ #ifdef HAVE_SYS_SOCKET_H #include #endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_NETINET_TCP_H +#include +#endif #ifdef HAVE_SYS_UN_H #include #endif @@ -76,6 +82,7 @@ #include #endif #include +#include #include "admin.h" #include "kadm5_err.h" #include diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/log.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/log.c index dc40579cddaa..acdc8e98ef1c 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/log.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/log.c @@ -1,4 +1,4 @@ -/* $NetBSD: log.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: log.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan @@ -36,7 +36,7 @@ #include "kadm5_locl.h" #include "heim_threads.h" -__RCSID("$NetBSD: log.c,v 1.2 2017/01/28 21:31:49 christos Exp $"); +__RCSID("$NetBSD: log.c,v 1.3 2023/06/19 21:41:44 christos Exp $"); /* * A log consists of a sequence of records of this form: @@ -466,7 +466,6 @@ get_max_log_size(krb5_context context) } static kadm5_ret_t truncate_if_needed(kadm5_server_context *); -static krb5_storage *log_goto_first(kadm5_server_context *, int); /* * Get the version and timestamp metadata of either the first, or last @@ -476,7 +475,7 @@ static krb5_storage *log_goto_first(kadm5_server_context *, int); * uber record which must be 0, or else we need to upgrade the log. * * If `which' is LOG_VERSION_FIRST, then this gets the metadata for the - * logically first entry past the uberblock, or returns HEIM_EOF if + * logically first entry past the uberblock, or returns HEIM_ERR_EOF if * only the uber record is present. * * If `which' is LOG_VERSION_LAST, then this gets metadata for the last @@ -506,37 +505,35 @@ kadm5_log_get_version_fd(kadm5_server_context *server_context, int fd, *ver = 0; *tstamp = 0; + sp = krb5_storage_from_fd(fd); + if (sp == NULL) + return errno ? errno : ENOMEM; + switch (which) { case LOG_VERSION_LAST: - sp = kadm5_log_goto_end(server_context, fd); - if (sp == NULL) - return errno; - ret = get_version_prev(sp, ver, tstamp); - krb5_storage_free(sp); + ret = kadm5_log_goto_end(server_context, sp); + if (ret == 0) + ret = get_version_prev(sp, ver, tstamp); break; case LOG_VERSION_FIRST: - sp = log_goto_first(server_context, fd); - if (sp == NULL) - return errno; - ret = get_header(sp, LOG_DOPEEK, ver, tstamp, NULL, NULL); - krb5_storage_free(sp); + ret = kadm5_log_goto_first(server_context, sp); + if (ret == 0) + ret = get_header(sp, LOG_DOPEEK, ver, tstamp, NULL, NULL); break; case LOG_VERSION_UBER: - sp = krb5_storage_from_fd(server_context->log_context.log_fd); - if (sp == NULL) - return errno; if (krb5_storage_seek(sp, 0, SEEK_SET) == 0) ret = get_header(sp, LOG_DOPEEK, ver, tstamp, &op, &len); else ret = errno; if (ret == 0 && (op != kadm_nop || len != LOG_UBER_LEN || *ver != 0)) ret = KADM5_LOG_NEEDS_UPGRADE; - krb5_storage_free(sp); break; default: - return ENOTSUP; + ret = ENOTSUP; + break; } + krb5_storage_free(sp); return ret; } @@ -1830,12 +1827,14 @@ kadm5_log_recover(kadm5_server_context *context, enum kadm_recover_mode mode) replay_data.ver = 0; replay_data.mode = mode; - sp = kadm5_log_goto_end(context, context->log_context.log_fd); + sp = krb5_storage_from_fd(context->log_context.log_fd); if (sp == NULL) return errno ? errno : EIO; + ret = kadm5_log_goto_end(context, sp); - ret = kadm5_log_foreach(context, kadm_forward | kadm_unconfirmed, - NULL, recover_replay, &replay_data); + if (ret == 0) + ret = kadm5_log_foreach(context, kadm_forward | kadm_unconfirmed, + NULL, recover_replay, &replay_data); if (ret == 0 && mode == kadm_recover_commit && replay_data.count != 1) ret = KADM5_LOG_CORRUPT; krb5_storage_free(sp); @@ -1887,7 +1886,7 @@ kadm5_log_foreach(kadm5_server_context *context, */ sp = krb5_storage_from_fd(fd); if (sp == NULL) - return errno; + return errno ? errno : ENOMEM; log_end = krb5_storage_seek(sp, 0, SEEK_END); if (log_end == -1 || @@ -1898,9 +1897,12 @@ kadm5_log_foreach(kadm5_server_context *context, } } else { /* Get the end of the log based on the uber entry */ - sp = kadm5_log_goto_end(context, fd); + sp = krb5_storage_from_fd(fd); if (sp == NULL) - return errno; + return errno ? errno : ENOMEM; + ret = kadm5_log_goto_end(context, sp); + if (ret != 0) + return ret; log_end = krb5_storage_seek(sp, 0, SEEK_CUR); } @@ -2049,81 +2051,50 @@ kadm5_log_foreach(kadm5_server_context *context, } /* - * Go to the second record, which, if we have an uber record, will be - * the first record. + * Go to the first record, which, if we have an uber record, will be + * the second record. */ -static krb5_storage * -log_goto_first(kadm5_server_context *server_context, int fd) +kadm5_ret_t +kadm5_log_goto_first(kadm5_server_context *server_context, krb5_storage *sp) { - krb5_storage *sp; enum kadm_ops op; uint32_t ver, len; kadm5_ret_t ret; - if (fd == -1) { - errno = EINVAL; - return NULL; - } - - sp = krb5_storage_from_fd(fd); - if (sp == NULL) - return NULL; - if (krb5_storage_seek(sp, 0, SEEK_SET) == -1) - return NULL; + return KADM5_LOG_CORRUPT; ret = get_header(sp, LOG_DOPEEK, &ver, NULL, &op, &len); - if (ret) { - krb5_storage_free(sp); - errno = ret; - return NULL; - } - if (op == kadm_nop && len == LOG_UBER_LEN && seek_next(sp) == -1) { - krb5_storage_free(sp); - return NULL; - } - return sp; + if (ret) + return ret; + if (op == kadm_nop && len == LOG_UBER_LEN && seek_next(sp) == -1) + return KADM5_LOG_CORRUPT; + return 0; } /* * Go to end of log. - * - * XXX This really needs to return a kadm5_ret_t and either output a - * krb5_storage * via an argument, or take one as input. */ - -krb5_storage * -kadm5_log_goto_end(kadm5_server_context *server_context, int fd) +kadm5_ret_t +kadm5_log_goto_end(kadm5_server_context *server_context, krb5_storage *sp) { krb5_error_code ret = 0; - krb5_storage *sp; enum kadm_ops op; uint32_t ver, len; uint32_t tstamp; uint64_t off; - if (fd == -1) { - errno = EINVAL; - return NULL; - } - - sp = krb5_storage_from_fd(fd); - if (sp == NULL) - return NULL; - - if (krb5_storage_seek(sp, 0, SEEK_SET) == -1) { - ret = errno; - goto fail; - } + if (krb5_storage_seek(sp, 0, SEEK_SET) == -1) + return errno; ret = get_header(sp, LOG_NOPEEK, &ver, &tstamp, &op, &len); if (ret == HEIM_ERR_EOF) { (void) krb5_storage_seek(sp, 0, SEEK_SET); - return sp; + return 0; } if (ret == KADM5_LOG_CORRUPT) goto truncate; if (ret) - goto fail; + return ret; if (op == kadm_nop && len == LOG_UBER_LEN) { /* New style log */ @@ -2132,12 +2103,12 @@ kadm5_log_goto_end(kadm5_server_context *server_context, int fd) goto truncate; if (krb5_storage_seek(sp, off, SEEK_SET) == -1) - goto fail; + return ret; if (off >= LOG_UBER_SZ) { ret = get_version_prev(sp, &ver, NULL); if (ret == 0) - return sp; + return 0; } /* Invalid offset in uber entry */ goto truncate; @@ -2155,7 +2126,7 @@ kadm5_log_goto_end(kadm5_server_context *server_context, int fd) ret = get_version_prev(sp, &ver, NULL); if (ret) goto truncate; - return sp; + return 0; truncate: /* If we can, truncate */ @@ -2164,18 +2135,64 @@ truncate: if (ret == 0) { krb5_warn(server_context->context, ret, "Invalid log; truncating to recover"); - if (krb5_storage_seek(sp, 0, SEEK_END) == -1) - return NULL; - return sp; + if (krb5_storage_seek(sp, 0, SEEK_END) >= 0) + return 0; } } + ret = KADM5_LOG_CORRUPT; krb5_warn(server_context->context, ret, "Invalid log; truncate to recover"); + return ret; +} -fail: - errno = ret; - krb5_storage_free(sp); - return NULL; +/* + * Return the next log entry. + * + * The pointer in `sp' is assumed to be at the end of an entry. On success, + * the `sp' pointer is set to the next entry (not the data portion). In case + * of error, it's not changed at all. + */ +kadm5_ret_t +kadm5_log_next(krb5_context context, + krb5_storage *sp, + uint32_t *verp, + time_t *tstampp, + enum kadm_ops *opp, + uint32_t *lenp) +{ + uint32_t len = 0; + uint32_t len2 = 0; + uint32_t ver = verp ? *verp : 0; + uint32_t ver2; + uint32_t tstamp = tstampp ? *tstampp : 0; + enum kadm_ops op = kadm_nop; + off_t off = krb5_storage_seek(sp, 0, SEEK_CUR); + kadm5_ret_t ret = get_header(sp, LOG_NOPEEK, &ver, &tstamp, &op, &len); + + /* Validate the trailer */ + if (ret == 0 && krb5_storage_seek(sp, len, SEEK_CUR) == -1) + ret = errno; + + if (ret == 0) + ret = krb5_ret_uint32(sp, &len2); + if (ret == 0) + ret = krb5_ret_uint32(sp, &ver2); + if (ret == 0 && (len != len2 || ver != ver2)) + ret = KADM5_LOG_CORRUPT; + if (ret != 0) { + (void) krb5_storage_seek(sp, off, SEEK_SET); + return ret; + } + + if (verp) + *verp = ver; + if (tstampp) + *tstampp = tstamp; + if (opp) + *opp = op; + if (lenp) + *lenp = len; + return 0; } /* @@ -2549,11 +2566,15 @@ kadm5_log_truncate(kadm5_server_context *context, size_t keep, size_t maxbytes) /* Done. Now rebuild the log_context state. */ (void) lseek(context->log_context.log_fd, off, SEEK_SET); - sp = kadm5_log_goto_end(context, context->log_context.log_fd); + sp = krb5_storage_from_fd(context->log_context.log_fd); if (sp == NULL) - return ENOMEM; - ret = get_version_prev(sp, &context->log_context.version, &last_tstamp); - context->log_context.last_time = last_tstamp; + return errno ? errno : krb5_enomem(context->context); + ret = kadm5_log_goto_end(context, sp); + if (ret == 0) { + ret = get_version_prev(sp, &context->log_context.version, &last_tstamp); + if (ret == 0) + context->log_context.last_time = last_tstamp; + } krb5_storage_free(sp); return ret; } diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/set_keys.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/set_keys.c index 535758f5d712..95f3dbcf98bf 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/set_keys.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/set_keys.c @@ -1,4 +1,4 @@ -/* $NetBSD: set_keys.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: set_keys.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2001, 2003 Kungliga Tekniska Högskolan @@ -35,7 +35,7 @@ #include "kadm5_locl.h" -__RCSID("$NetBSD: set_keys.c,v 1.3 2019/12/15 22:50:50 christos Exp $"); +__RCSID("$NetBSD: set_keys.c,v 1.4 2023/06/19 21:41:44 christos Exp $"); /* * Set the keys of `ent' to the string-to-key of `password' @@ -179,6 +179,8 @@ _kadm5_set_keys2(kadm5_server_context *context, /* A current key; add to current key set */ setup_Key(&key, &salt, key_data, i); ret = add_Keys(&keys, &key); + if (ret) + goto out; continue; } diff --git a/crypto/external/bsd/heimdal/dist/lib/kadm5/test_pw_quality.c b/crypto/external/bsd/heimdal/dist/lib/kadm5/test_pw_quality.c index a4dcf2924a01..94ff071aaf71 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kadm5/test_pw_quality.c +++ b/crypto/external/bsd/heimdal/dist/lib/kadm5/test_pw_quality.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_pw_quality.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: test_pw_quality.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2003, 2005 Kungliga Tekniska Högskolan @@ -33,10 +33,14 @@ * SUCH DAMAGE. */ -#include "kadm5_locl.h" +#include +#include #include -__RCSID("$NetBSD: test_pw_quality.c,v 1.2 2017/01/28 21:31:49 christos Exp $"); +#include +#include + +#include "admin.h" static int version_flag; static int help_flag; diff --git a/crypto/external/bsd/heimdal/dist/lib/kafs/afskrb5.c b/crypto/external/bsd/heimdal/dist/lib/kafs/afskrb5.c index c1e740c7af45..503b466bee17 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kafs/afskrb5.c +++ b/crypto/external/bsd/heimdal/dist/lib/kafs/afskrb5.c @@ -1,4 +1,4 @@ -/* $NetBSD: afskrb5.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: afskrb5.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1995-2003 Kungliga Tekniska Högskolan @@ -87,8 +87,6 @@ v5_to_kt(krb5_creds *cred, uid_t uid, struct kafs_token *kt, int local524) return ENOMEM; kt->ticket_len = cred->ticket.length; memcpy(kt->ticket, cred->ticket.data, kt->ticket_len); - - ret = 0; } diff --git a/crypto/external/bsd/heimdal/dist/lib/kafs/afssysdefs.h b/crypto/external/bsd/heimdal/dist/lib/kafs/afssysdefs.h index 9745db530893..b1b7cea8f655 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kafs/afssysdefs.h +++ b/crypto/external/bsd/heimdal/dist/lib/kafs/afssysdefs.h @@ -1,4 +1,4 @@ -/* $NetBSD: afssysdefs.h,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: afssysdefs.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1995 - 2003 Kungliga Tekniska Högskolan @@ -106,10 +106,6 @@ #define AFS_SYSCALL 210 #endif -#ifdef __APPLE__ /* MacOS X */ -#define AFS_SYSCALL 230 -#endif - #ifdef SYS_afs_syscall #define AFS_SYSCALL3 SYS_afs_syscall #endif diff --git a/crypto/external/bsd/heimdal/dist/lib/kafs/rxkad_kdf.c b/crypto/external/bsd/heimdal/dist/lib/kafs/rxkad_kdf.c index 28799a03dae6..a331e7de6cb8 100644 --- a/crypto/external/bsd/heimdal/dist/lib/kafs/rxkad_kdf.c +++ b/crypto/external/bsd/heimdal/dist/lib/kafs/rxkad_kdf.c @@ -1,4 +1,4 @@ -/* $NetBSD: rxkad_kdf.c,v 1.3 2018/02/05 16:00:53 christos Exp $ */ +/* $NetBSD: rxkad_kdf.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1995-2003 Kungliga Tekniska Högskolan @@ -39,6 +39,7 @@ * SUCH DAMAGE. */ +#define HC_DEPRECATED_CRYPTO #include "kafs_locl.h" static int rxkad_derive_des_key(const void *, size_t, char[8]); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/acl.c b/crypto/external/bsd/heimdal/dist/lib/krb5/acl.c index 1ca84434c685..d9f350380a28 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/acl.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/acl.c @@ -1,4 +1,4 @@ -/* $NetBSD: acl.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: acl.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2000 - 2002, 2004 Kungliga Tekniska Högskolan @@ -248,7 +248,7 @@ krb5_acl_match_file(krb5_context context, ...) { krb5_error_code ret; - struct acl_field *acl; + struct acl_field *acl = NULL; char buf[256]; va_list ap; FILE *f; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/addr_families.c b/crypto/external/bsd/heimdal/dist/lib/krb5/addr_families.c index 0d3e3528d9aa..01406fe2f22d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/addr_families.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/addr_families.c @@ -1,4 +1,4 @@ -/* $NetBSD: addr_families.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: addr_families.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan @@ -527,7 +527,7 @@ arange_parse_addr (krb5_context context, return ret; } - if(high.len != 1 && high.val[0].addr_type != low.val[0].addr_type) { + if(high.len != 1 || high.val[0].addr_type != low.val[0].addr_type) { krb5_free_addresses(context, &low); krb5_free_addresses(context, &high); return -1; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/aes-test.c b/crypto/external/bsd/heimdal/dist/lib/krb5/aes-test.c index 3fa1c0e9d3f3..f7408ad7e246 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/aes-test.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/aes-test.c @@ -1,4 +1,4 @@ -/* $NetBSD: aes-test.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: aes-test.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2003-2016 Kungliga Tekniska Högskolan @@ -330,7 +330,8 @@ krb_enc(krb5_context context, } if (decrypt.length != clear->length || - memcmp(decrypt.data, clear->data, decrypt.length) != 0) { + (decrypt.length && + memcmp(decrypt.data, clear->data, decrypt.length) != 0)) { krb5_warnx(context, "clear text not same"); return EINVAL; } @@ -570,7 +571,8 @@ krb_enc_mit(krb5_context context, return ret; if (decrypt.length != clear->length || - memcmp(decrypt.data, clear->data, decrypt.length) != 0) { + (decrypt.length && + memcmp(decrypt.data, clear->data, decrypt.length) != 0)) { krb5_warnx(context, "clear text not same"); return EINVAL; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/auth_context.c b/crypto/external/bsd/heimdal/dist/lib/krb5/auth_context.c index 8c73daa4641b..a453f37afadc 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/auth_context.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/auth_context.c @@ -1,4 +1,4 @@ -/* $NetBSD: auth_context.c,v 1.4 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: auth_context.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/config_file.c b/crypto/external/bsd/heimdal/dist/lib/krb5/config_file.c index 6af30502ed5e..d951684d9aa1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/config_file.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/config_file.c @@ -1,4 +1,4 @@ -/* $NetBSD: config_file.c,v 1.4 2018/06/16 18:51:36 kamil Exp $ */ +/* $NetBSD: config_file.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan @@ -355,6 +355,9 @@ krb5_config_parse_debug (struct fileptr *f, char buf[KRB5_BUFSIZ]; krb5_error_code ret; + *lineno = 0; + *err_message = ""; + while (config_fgets(buf, sizeof(buf), f) != NULL) { char *p; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/context.c b/crypto/external/bsd/heimdal/dist/lib/krb5/context.c index 5d6339f87ac3..685610a104f2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/context.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/context.c @@ -1,4 +1,4 @@ -/* $NetBSD: context.c,v 1.6 2017/01/30 18:59:04 christos Exp $ */ +/* $NetBSD: context.c,v 1.7 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2010 Kungliga Tekniska Högskolan @@ -103,7 +103,7 @@ init_context_from_config_file(krb5_context context) krb5_error_code ret; const char * tmp; char **s; - krb5_enctype *tmptypes; + krb5_enctype *tmptypes = NULL; INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew"); INIT_FIELD(context, time, kdc_timeout, 30, "kdc_timeout"); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-aes-sha1.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-aes-sha1.c index 5fb9d9481f2e..17176267b719 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-aes-sha1.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-aes-sha1.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-aes-sha1.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-aes-sha1.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-arcfour.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-arcfour.c index 8a96c65b0c2d..63c77e6cfb2a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-arcfour.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-arcfour.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-arcfour.c,v 1.5 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-arcfour.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des-common.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des-common.c index 2188c4ea7d69..d4fcf19fa29b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des-common.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des-common.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-des-common.c,v 1.5 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-des-common.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des.c index 81fb8088e8cc..33b665f1f9cc 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-des.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-des.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des3.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des3.c index 6fc747b2366f..f89ed96506b2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des3.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-des3.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-des3.c,v 1.6 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-des3.c,v 1.7 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-evp.c b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-evp.c index e7ead5864dc1..b3ff116f0e04 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-evp.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto-evp.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypto-evp.c,v 1.4 2023/06/01 20:40:18 christos Exp $ */ +/* $NetBSD: crypto-evp.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto.h b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto.h index 389c0b0d273a..3949849fd26f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/crypto.h +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/crypto.h @@ -1,4 +1,4 @@ -/* $NetBSD: crypto.h,v 1.3 2018/02/05 16:00:53 christos Exp $ */ +/* $NetBSD: crypto.h,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2016 Kungliga Tekniska Högskolan @@ -132,9 +132,9 @@ struct _krb5_encryption_type { krb5_crypto, const krb5_data *, krb5_data *); }; -#define ENCRYPTION_USAGE(U) (((U) << 8) | 0xAA) -#define INTEGRITY_USAGE(U) (((U) << 8) | 0x55) -#define CHECKSUM_USAGE(U) (((U) << 8) | 0x99) +#define ENCRYPTION_USAGE(U) ((int32_t)((((uint32_t)(U)) << 8)) | 0xAA) +#define INTEGRITY_USAGE(U) ((int32_t)((((uint32_t)(U)) << 8)) | 0x55) +#define CHECKSUM_USAGE(U) ((int32_t)((((uint32_t)(U)) << 8)) | 0x99) /* Checksums */ diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/deprecated.c b/crypto/external/bsd/heimdal/dist/lib/krb5/deprecated.c index 7bc2987aa5b1..e9d8728562a7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/deprecated.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/deprecated.c @@ -1,4 +1,4 @@ -/* $NetBSD: deprecated.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: deprecated.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2009 Kungliga Tekniska Högskolan @@ -326,15 +326,13 @@ krb5_keytab_key_proc (krb5_context context, ret = krb5_kt_get_entry (context, real_keytab, principal, 0, enctype, &entry); + if (ret == 0) { + ret = krb5_copy_keyblock (context, &entry.keyblock, key); + krb5_kt_free_entry(context, &entry); + } if (keytab == NULL) krb5_kt_close (context, real_keytab); - - if (ret) - return ret; - - ret = krb5_copy_keyblock (context, &entry.keyblock, key); - krb5_kt_free_entry(context, &entry); return ret; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/enomem.c b/crypto/external/bsd/heimdal/dist/lib/krb5/enomem.c index 7238e8696201..e6e8fe0e7106 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/enomem.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/enomem.c @@ -1,4 +1,4 @@ -/* $NetBSD: enomem.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: enomem.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 Kungliga Tekniska Högskolan @@ -35,10 +35,10 @@ #include "krb5_locl.h" +#undef krb5_enomem krb5_error_code krb5_enomem(krb5_context context) { krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", "")); return ENOMEM; } - diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/get_cred.c b/crypto/external/bsd/heimdal/dist/lib/krb5/get_cred.c index 8b49ffdae3ab..1a5b9828d6a5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/get_cred.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/get_cred.c @@ -1,4 +1,4 @@ -/* $NetBSD: get_cred.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: get_cred.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -422,7 +422,7 @@ get_cred_kdc(krb5_context context, TGS_REQ req; krb5_data enc; krb5_data resp; - krb5_kdc_rep rep; + krb5_kdc_rep rep = {0}; KRB_ERROR error; krb5_error_code ret; unsigned nonce; @@ -542,7 +542,6 @@ get_cred_kdc(krb5_context context, if(ret) goto out; - memset(&rep, 0, sizeof(rep)); if(decode_TGS_REP(resp.data, resp.length, &rep.kdc_rep, &len) == 0) { unsigned eflags = 0; @@ -686,15 +685,16 @@ static int not_found(krb5_context context, krb5_const_principal p, krb5_error_code code) { krb5_error_code ret; + const char *err; char *str; + err = krb5_get_error_message(context, code); ret = krb5_unparse_name(context, p, &str); if(ret) { krb5_clear_error_message(context); return code; } - krb5_set_error_message(context, code, - N_("Matching credential (%s) not found", ""), str); + krb5_set_error_message(context, code, N_("%s (%s)", ""), err, str); free(str); return code; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/get_default_principal.c b/crypto/external/bsd/heimdal/dist/lib/krb5/get_default_principal.c index caa1dd6dd633..8311bdd2e95e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/get_default_principal.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/get_default_principal.c @@ -1,4 +1,4 @@ -/* $NetBSD: get_default_principal.c,v 1.3 2017/09/08 15:29:43 christos Exp $ */ +/* $NetBSD: get_default_principal.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/init_creds_pw.c b/crypto/external/bsd/heimdal/dist/lib/krb5/init_creds_pw.c index d9f60278e8ff..6bc2ffc0e02f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/init_creds_pw.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/init_creds_pw.c @@ -1,4 +1,4 @@ -/* $NetBSD: init_creds_pw.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: init_creds_pw.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -1543,15 +1543,13 @@ keytab_key_proc(krb5_context context, krb5_enctype enctype, ret = krb5_kt_get_entry (context, real_keytab, principal, 0, enctype, &entry); + if (ret == 0) { + ret = krb5_copy_keyblock(context, &entry.keyblock, key); + krb5_kt_free_entry(context, &entry); + } if (keytab == NULL) krb5_kt_close (context, real_keytab); - - if (ret) - return ret; - - ret = krb5_copy_keyblock (context, &entry.keyblock, key); - krb5_kt_free_entry(context, &entry); return ret; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/keytab.c b/crypto/external/bsd/heimdal/dist/lib/krb5/keytab.c index 0ac78154b3b7..c98fbb7a06bc 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/keytab.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/keytab.c @@ -1,4 +1,4 @@ -/* $NetBSD: keytab.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: keytab.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan @@ -361,10 +361,11 @@ krb5_kt_read_service_key(krb5_context context, krb5_enctype enctype, krb5_keyblock **key) { - krb5_keytab keytab; + krb5_keytab keytab = NULL; /* Quiet lint */ krb5_keytab_entry entry; krb5_error_code ret; + memset(&entry, 0, sizeof(entry)); if (keyprocarg) ret = krb5_kt_resolve (context, keyprocarg, &keytab); else @@ -374,11 +375,11 @@ krb5_kt_read_service_key(krb5_context context, return ret; ret = krb5_kt_get_entry (context, keytab, principal, vno, enctype, &entry); + if (ret == 0) { + ret = krb5_copy_keyblock (context, &entry.keyblock, key); + krb5_kt_free_entry(context, &entry); + } krb5_kt_close (context, keytab); - if (ret) - return ret; - ret = krb5_copy_keyblock (context, &entry.keyblock, key); - krb5_kt_free_entry(context, &entry); return ret; } @@ -485,11 +486,13 @@ KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close(krb5_context context, krb5_keytab id) { - krb5_error_code ret; + krb5_error_code ret = 0; - ret = (*id->close)(context, id); - memset(id, 0, sizeof(*id)); - free(id); + if (id) { + ret = (id->close)(context, id); + memset(id, 0, sizeof(*id)); + free(id); + } return ret; } @@ -623,6 +626,7 @@ krb5_kt_get_entry_wrapped(krb5_context context, if(id->get) return (*id->get)(context, id, principal, kvno, enctype, entry); + memset(&tmp, 0, sizeof(tmp)); ret = krb5_kt_start_seq_get (context, id, &cursor); if (ret) { /* This is needed for krb5_verify_init_creds, but keep error @@ -734,21 +738,21 @@ krb5_kt_copy_entry_contents(krb5_context context, krb5_error_code ret; memset(out, 0, sizeof(*out)); - out->vno = in->vno; ret = krb5_copy_principal (context, in->principal, &out->principal); if (ret) - goto fail; + return ret; ret = krb5_copy_keyblock_contents (context, &in->keyblock, &out->keyblock); - if (ret) - goto fail; + if (ret) { + krb5_free_principal(context, out->principal); + memset(out, 0, sizeof(*out)); + return ret; + } + out->vno = in->vno; out->timestamp = in->timestamp; return 0; -fail: - krb5_kt_free_entry (context, out); - return ret; } /** @@ -929,6 +933,7 @@ krb5_kt_have_content(krb5_context context, krb5_error_code ret; char *name; + memset(&entry, 0, sizeof(entry)); ret = krb5_kt_start_seq_get(context, id, &cursor); if (ret) goto notfound; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5-plugin.7 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5-plugin.7 index beda6c84cfb5..6e05bd3e70b9 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5-plugin.7 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5-plugin.7 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5-plugin.7,v 1.2 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5-plugin.7,v 1.3 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). @@ -171,16 +171,16 @@ follows: .Bd -literal -offset indent #include -static krb5_error_code +static krb5_error_code KRB5_CALLCONV nouser_plug_init(krb5_context context, void **ctx) { *ctx = NULL; return 0; } -static void nouser_plug_fini(void *ctx) { } +static void KRB5_CALLCONV nouser_plug_fini(void *ctx) { } -static krb5_error_code +static krb5_error_code KRB5_CALLCONV nouser_plug_an2ln(void *plug_ctx, krb5_context context, const char *rule, krb5_const_principal aname, @@ -212,16 +212,16 @@ there exists a built-in plugin with this functionality; see .Bd -literal -offset indent #include -static krb5_error_code +static krb5_error_code KRB5_CALLCONV reject_plug_init(krb5_context context, void **ctx) { *ctx = NULL; return 0; } -static void reject_plug_fini(void *ctx) { } +static void KRB5_CALLCONV reject_plug_fini(void *ctx) { } -static krb5_error_code +static krb5_error_code KRB5_CALLCONV reject_plug_kuserok(void *plug_ctx, krb5_context context, const char *rule, unsigned int flags, const char *k5login_dir, const char *luser, krb5_const_principal principal, diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.conf.5 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.conf.5 index b878ccaedeae..bc8c1bc59429 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.conf.5 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.conf.5 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5.conf.5,v 1.6 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5.conf.5,v 1.7 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). @@ -137,6 +137,19 @@ Forward credentials to remote host (for .Xr rsh 1 , .Xr telnet 1 , etc). +.It Li historical_anon_pkinit = Va boolean +Enable legacy anonymous pkinit command-line syntax. +With this option set to +.Li true, +the +.Xr kinit 1 +.Fl Fl anonymous +command with no principal argument specified will request an anonymous pkinit +ticket from the default realm. +If a principal argument is specified, it is used as an explicit realm name for +anonymous pkinit even without an +.Li @ +prefix. .El .It Li [libdefaults] .Bl -tag -width "xxx" -offset indent @@ -643,8 +656,21 @@ Allow address-less tickets. .\" XXX .It Li allow-anonymous = Va BOOL If the kdc is allowed to hand out anonymous tickets. +.It Li historical_anon_realm = Va boolean +Enables pre-7.0 non-RFC-comformant KDC behavior. +With this option set to +.Li true +the client realm in anonymous pkinit AS replies will be the requested realm, +rather than the RFC-conformant +.Li WELLKNOWN:ANONYMOUS +realm. +This can have a security impact on servers that expect to grant access to +anonymous-but-authenticated to the KDC users of the realm in question: +they would also grant access to unauthenticated anonymous users. +As such, it is not recommend to set this option to +.Li true. .It Li encode_as_rep_as_tgs_rep = Va BOOL -Encode as-rep as tgs-rep tobe compatible with mistakes older DCE secd did. +Encode as-rep as tgs-rep to be compatible with mistakes older DCE secd did. .\" XXX .It Li kdc_warn_pwexpire = Va TIME The time before expiration that the user should be warned that her diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.h b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.h index dae321509f9e..9b31809620fa 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.h +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5.h @@ -1,4 +1,4 @@ -/* $NetBSD: krb5.h,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: krb5.h,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan @@ -119,55 +119,52 @@ typedef struct krb5_enc_data { } krb5_enc_data; /* alternative names */ -enum { - ENCTYPE_NULL = KRB5_ENCTYPE_NULL, - ENCTYPE_DES_CBC_CRC = KRB5_ENCTYPE_DES_CBC_CRC, - ENCTYPE_DES_CBC_MD4 = KRB5_ENCTYPE_DES_CBC_MD4, - ENCTYPE_DES_CBC_MD5 = KRB5_ENCTYPE_DES_CBC_MD5, - ENCTYPE_DES3_CBC_MD5 = KRB5_ENCTYPE_DES3_CBC_MD5, - ENCTYPE_OLD_DES3_CBC_SHA1 = KRB5_ENCTYPE_OLD_DES3_CBC_SHA1, - ENCTYPE_SIGN_DSA_GENERATE = KRB5_ENCTYPE_SIGN_DSA_GENERATE, - ENCTYPE_ENCRYPT_RSA_PRIV = KRB5_ENCTYPE_ENCRYPT_RSA_PRIV, - ENCTYPE_ENCRYPT_RSA_PUB = KRB5_ENCTYPE_ENCRYPT_RSA_PUB, - ENCTYPE_DES3_CBC_SHA1 = KRB5_ENCTYPE_DES3_CBC_SHA1, - ENCTYPE_AES128_CTS_HMAC_SHA1_96 = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96, - ENCTYPE_AES256_CTS_HMAC_SHA1_96 = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96, - ENCTYPE_ARCFOUR_HMAC = KRB5_ENCTYPE_ARCFOUR_HMAC_MD5, - ENCTYPE_ARCFOUR_HMAC_MD5 = KRB5_ENCTYPE_ARCFOUR_HMAC_MD5, - ENCTYPE_ARCFOUR_HMAC_MD5_56 = KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56, - ENCTYPE_ENCTYPE_PK_CROSS = KRB5_ENCTYPE_ENCTYPE_PK_CROSS, - ENCTYPE_DES_CBC_NONE = KRB5_ENCTYPE_DES_CBC_NONE, - ENCTYPE_DES3_CBC_NONE = KRB5_ENCTYPE_DES3_CBC_NONE, - ENCTYPE_DES_CFB64_NONE = KRB5_ENCTYPE_DES_CFB64_NONE, - ENCTYPE_DES_PCBC_NONE = KRB5_ENCTYPE_DES_PCBC_NONE, - ETYPE_NULL = KRB5_ENCTYPE_NULL, - ETYPE_DES_CBC_CRC = KRB5_ENCTYPE_DES_CBC_CRC, - ETYPE_DES_CBC_MD4 = KRB5_ENCTYPE_DES_CBC_MD4, - ETYPE_DES_CBC_MD5 = KRB5_ENCTYPE_DES_CBC_MD5, - ETYPE_DES3_CBC_MD5 = KRB5_ENCTYPE_DES3_CBC_MD5, - ETYPE_OLD_DES3_CBC_SHA1 = KRB5_ENCTYPE_OLD_DES3_CBC_SHA1, - ETYPE_SIGN_DSA_GENERATE = KRB5_ENCTYPE_SIGN_DSA_GENERATE, - ETYPE_ENCRYPT_RSA_PRIV = KRB5_ENCTYPE_ENCRYPT_RSA_PRIV, - ETYPE_ENCRYPT_RSA_PUB = KRB5_ENCTYPE_ENCRYPT_RSA_PUB, - ETYPE_DES3_CBC_SHA1 = KRB5_ENCTYPE_DES3_CBC_SHA1, - ETYPE_AES128_CTS_HMAC_SHA1_96 = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96, - ETYPE_AES256_CTS_HMAC_SHA1_96 = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96, - ETYPE_AES128_CTS_HMAC_SHA256_128 = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, - ETYPE_AES256_CTS_HMAC_SHA384_192 = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, - ETYPE_ARCFOUR_HMAC_MD5 = KRB5_ENCTYPE_ARCFOUR_HMAC_MD5, - ETYPE_ARCFOUR_HMAC_MD5_56 = KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56, - ETYPE_ENCTYPE_PK_CROSS = KRB5_ENCTYPE_ENCTYPE_PK_CROSS, - ETYPE_ARCFOUR_MD4 = KRB5_ENCTYPE_ARCFOUR_MD4, - ETYPE_ARCFOUR_HMAC_OLD = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD, - ETYPE_ARCFOUR_HMAC_OLD_EXP = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP, - ETYPE_DES_CBC_NONE = KRB5_ENCTYPE_DES_CBC_NONE, - ETYPE_DES3_CBC_NONE = KRB5_ENCTYPE_DES3_CBC_NONE, - ETYPE_DES_CFB64_NONE = KRB5_ENCTYPE_DES_CFB64_NONE, - ETYPE_DES_PCBC_NONE = KRB5_ENCTYPE_DES_PCBC_NONE, - ETYPE_DIGEST_MD5_NONE = KRB5_ENCTYPE_DIGEST_MD5_NONE, - ETYPE_CRAM_MD5_NONE = KRB5_ENCTYPE_CRAM_MD5_NONE - -}; +#define ENCTYPE_NULL KRB5_ENCTYPE_NULL +#define ENCTYPE_DES_CBC_CRC KRB5_ENCTYPE_DES_CBC_CRC +#define ENCTYPE_DES_CBC_MD4 KRB5_ENCTYPE_DES_CBC_MD4 +#define ENCTYPE_DES_CBC_MD5 KRB5_ENCTYPE_DES_CBC_MD5 +#define ENCTYPE_DES3_CBC_MD5 KRB5_ENCTYPE_DES3_CBC_MD5 +#define ENCTYPE_OLD_DES3_CBC_SHA1 KRB5_ENCTYPE_OLD_DES3_CBC_SHA1 +#define ENCTYPE_SIGN_DSA_GENERATE KRB5_ENCTYPE_SIGN_DSA_GENERATE +#define ENCTYPE_ENCRYPT_RSA_PRIV KRB5_ENCTYPE_ENCRYPT_RSA_PRIV +#define ENCTYPE_ENCRYPT_RSA_PUB KRB5_ENCTYPE_ENCRYPT_RSA_PUB +#define ENCTYPE_DES3_CBC_SHA1 KRB5_ENCTYPE_DES3_CBC_SHA1 +#define ENCTYPE_AES128_CTS_HMAC_SHA1_96 KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96 +#define ENCTYPE_AES256_CTS_HMAC_SHA1_96 KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96 +#define ENCTYPE_ARCFOUR_HMAC KRB5_ENCTYPE_ARCFOUR_HMAC_MD5 +#define ENCTYPE_ARCFOUR_HMAC_MD5 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5 +#define ENCTYPE_ARCFOUR_HMAC_MD5_56 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56 +#define ENCTYPE_ENCTYPE_PK_CROSS KRB5_ENCTYPE_ENCTYPE_PK_CROSS +#define ENCTYPE_DES_CBC_NONE KRB5_ENCTYPE_DES_CBC_NONE +#define ENCTYPE_DES3_CBC_NONE KRB5_ENCTYPE_DES3_CBC_NONE +#define ENCTYPE_DES_CFB64_NONE KRB5_ENCTYPE_DES_CFB64_NONE +#define ENCTYPE_DES_PCBC_NONE KRB5_ENCTYPE_DES_PCBC_NONE +#define ETYPE_NULL KRB5_ENCTYPE_NULL +#define ETYPE_DES_CBC_CRC KRB5_ENCTYPE_DES_CBC_CRC +#define ETYPE_DES_CBC_MD4 KRB5_ENCTYPE_DES_CBC_MD4 +#define ETYPE_DES_CBC_MD5 KRB5_ENCTYPE_DES_CBC_MD5 +#define ETYPE_DES3_CBC_MD5 KRB5_ENCTYPE_DES3_CBC_MD5 +#define ETYPE_OLD_DES3_CBC_SHA1 KRB5_ENCTYPE_OLD_DES3_CBC_SHA1 +#define ETYPE_SIGN_DSA_GENERATE KRB5_ENCTYPE_SIGN_DSA_GENERATE +#define ETYPE_ENCRYPT_RSA_PRIV KRB5_ENCTYPE_ENCRYPT_RSA_PRIV +#define ETYPE_ENCRYPT_RSA_PUB KRB5_ENCTYPE_ENCRYPT_RSA_PUB +#define ETYPE_DES3_CBC_SHA1 KRB5_ENCTYPE_DES3_CBC_SHA1 +#define ETYPE_AES128_CTS_HMAC_SHA1_96 KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96 +#define ETYPE_AES256_CTS_HMAC_SHA1_96 KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96 +#define ETYPE_AES128_CTS_HMAC_SHA256_128 KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128 +#define ETYPE_AES256_CTS_HMAC_SHA384_192 KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192 +#define ETYPE_ARCFOUR_HMAC_MD5 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5 +#define ETYPE_ARCFOUR_HMAC_MD5_56 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56 +#define ETYPE_ENCTYPE_PK_CROSS KRB5_ENCTYPE_ENCTYPE_PK_CROSS +#define ETYPE_ARCFOUR_MD4 KRB5_ENCTYPE_ARCFOUR_MD4 +#define ETYPE_ARCFOUR_HMAC_OLD KRB5_ENCTYPE_ARCFOUR_HMAC_OLD +#define ETYPE_ARCFOUR_HMAC_OLD_EXP KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP +#define ETYPE_DES_CBC_NONE KRB5_ENCTYPE_DES_CBC_NONE +#define ETYPE_DES3_CBC_NONE KRB5_ENCTYPE_DES3_CBC_NONE +#define ETYPE_DES_CFB64_NONE KRB5_ENCTYPE_DES_CFB64_NONE +#define ETYPE_DES_PCBC_NONE KRB5_ENCTYPE_DES_PCBC_NONE +#define ETYPE_DIGEST_MD5_NONE KRB5_ENCTYPE_DIGEST_MD5_NONE +#define ETYPE_CRAM_MD5_NONE KRB5_ENCTYPE_CRAM_MD5_NONE /* PDU types */ typedef enum krb5_pdu { @@ -957,8 +954,11 @@ typedef struct krb5_name_canon_iterator_data *krb5_name_canon_iterator; */ #define KRB5_ANON_MATCH_AUTHENTICATED 1 /* authenticated with anon flag */ #define KRB5_ANON_MATCH_UNAUTHENTICATED 2 /* anonymous PKINIT */ -#define KRB5_ANON_MATCH_ANY ( KRB5_ANON_MATCH_AUTHENTICATED | KRB5_ANON_MATCH_UNAUTHENTICATED ) - +#define KRB5_ANON_IGNORE_NAME_TYPE 4 /* don't check the name type */ +#define KRB5_ANON_MATCH_ANY ( KRB5_ANON_MATCH_AUTHENTICATED | \ + KRB5_ANON_MATCH_UNAUTHENTICATED ) +#define KRB5_ANON_MATCH_ANY_NONT ( KRB5_ANON_MATCH_ANY | \ + KRB5_ANON_IGNORE_NAME_TYPE ) /* * @@ -996,5 +996,24 @@ extern KRB5_LIB_VARIABLE const char *krb5_cc_type_kcm; extern KRB5_LIB_VARIABLE const char *krb5_cc_type_scc; extern KRB5_LIB_VARIABLE const char *krb5_cc_type_dcc; +/* clang analyzer workarounds */ + +#ifdef __clang_analyzer__ +/* + * The clang analyzer (lint) can't know that krb5_enomem() always returns + * non-zero, so code like: + * + * if ((x = malloc(...)) == NULL) + * ret = krb5_enomem(context) + * if (ret == 0) + * *x = ...; + * + * causes false positives. + * + * The fix is to make krb5_enomem() a macro that always evaluates to ENOMEM. + */ +#define krb5_enomem(c) (krb5_enomem(c), ENOMEM) +#endif + #endif /* __KRB5_H__ */ diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb524_convert_creds_kdc.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb524_convert_creds_kdc.3 index 4c81dafe20cb..3f425edacba5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb524_convert_creds_kdc.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb524_convert_creds_kdc.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb524_convert_creds_kdc.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb524_convert_creds_kdc.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_c_make_checksum.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_c_make_checksum.3 index 8eb819b71325..1c6dcbf7f197 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_c_make_checksum.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_c_make_checksum.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_c_make_checksum.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_c_make_checksum.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2003 - 2006 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_ccapi.h b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_ccapi.h index 3ef15644ec81..f9d1ff11d328 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_ccapi.h +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_ccapi.h @@ -1,4 +1,4 @@ -/* $NetBSD: krb5_ccapi.h,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: krb5_ccapi.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -40,7 +40,7 @@ #include - #ifdef __APPLE__ +#ifdef __APPLE__ #pragma pack(push,2) #endif @@ -233,7 +233,7 @@ struct cc_context_t { typedef cc_int32 (*cc_initialize_func)(cc_context_t*, cc_int32, cc_int32 *, char const **); -#ifdef __APPLE__ +#if defined(__APPLE__) #pragma pack(pop) #endif diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_get_in_cred.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_get_in_cred.3 index 687b021052e6..80f793d9191a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_get_in_cred.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_get_in_cred.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_get_in_cred.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_get_in_cred.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2003 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_init_context.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_init_context.3 index d7c8b8b07a90..4db9f8f46fc2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_init_context.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_init_context.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_init_context.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_init_context.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2001 - 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_is_thread_safe.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_is_thread_safe.3 index 311360f4e8b8..ee8909b1a8f5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_is_thread_safe.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_is_thread_safe.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_is_thread_safe.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_is_thread_safe.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2005 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_principal.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_principal.3 index b2f5f10dd3a3..08bd76b03de8 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_principal.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_principal.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_principal.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_principal.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2003 - 2007 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_string_to_key.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_string_to_key.3 index 38ddb9e3c4e7..1b5a774ccef5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_string_to_key.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_string_to_key.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_string_to_key.3,v 1.4 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_string_to_key.3,v 1.5 2023/06/19 21:41:44 christos Exp $ .\" .\" Copyright (c) 2004 - 2006 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_timeofday.3 b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_timeofday.3 index 2255d8fd9246..5b5f9d31a2c7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_timeofday.3 +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_timeofday.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: krb5_timeofday.3,v 1.3 2017/01/28 21:31:49 christos Exp $ +.\" $NetBSD: krb5_timeofday.3,v 1.4 2023/06/19 21:41:44 christos Exp $ .\" .\" Id .\" diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/krbhst.c b/crypto/external/bsd/heimdal/dist/lib/krb5/krbhst.c index 6ae17fd819a9..61aa14cefe4f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/krbhst.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/krbhst.c @@ -1,4 +1,4 @@ -/* $NetBSD: krbhst.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: krbhst.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2001 - 2003 Kungliga Tekniska Högskolan @@ -108,6 +108,12 @@ srv_find_realm(krb5_context context, krb5_krbhst_info ***res, int *count, if(rr->type == rk_ns_t_srv) num_srv++; + if (num_srv == 0) { + _krb5_debug(context, 0, + "DNS SRV RR lookup domain nodata: %s", domain); + return KRB5_KDC_UNREACH; + } + *res = malloc(num_srv * sizeof(**res)); if(*res == NULL) { rk_dns_free_data(r); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/kuserok.c b/crypto/external/bsd/heimdal/dist/lib/krb5/kuserok.c index b338513139ed..d130a6548fd2 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/kuserok.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/kuserok.c @@ -1,4 +1,4 @@ -/* $NetBSD: kuserok.c,v 1.3 2017/09/08 14:52:50 christos Exp $ */ +/* $NetBSD: kuserok.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/locate_plugin.h b/crypto/external/bsd/heimdal/dist/lib/krb5/locate_plugin.h index 2a5785026891..d14bb5e8262e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/locate_plugin.h +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/locate_plugin.h @@ -1,4 +1,4 @@ -/* $NetBSD: locate_plugin.h,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: locate_plugin.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -55,7 +55,8 @@ enum locate_service_type { }; typedef krb5_error_code -(*krb5plugin_service_locate_lookup) (void *, unsigned long, enum locate_service_type, +(KRB5_CALLCONV *krb5plugin_service_locate_lookup) + (void *, unsigned long, enum locate_service_type, const char *, int, int, int (*)(void *,int,struct sockaddr *), void *); @@ -63,7 +64,8 @@ typedef krb5_error_code #define KRB5_PLF_ALLOW_HOMEDIR 1 typedef krb5_error_code -(*krb5plugin_service_locate_lookup_old) (void *, enum locate_service_type, +(KRB5_CALLCONV *krb5plugin_service_locate_lookup_old) + (void *, enum locate_service_type, const char *, int, int, int (*)(void *,int,struct sockaddr *), void *); @@ -71,8 +73,8 @@ typedef krb5_error_code typedef struct krb5plugin_service_locate_ftable { int minor_version; - krb5_error_code (*init)(krb5_context, void **); - void (*fini)(void *); + krb5_error_code (KRB5_CALLCONV *init)(krb5_context, void **); + void (KRB5_CALLCONV *fini)(void *); krb5plugin_service_locate_lookup_old old_lookup; krb5plugin_service_locate_lookup lookup; /* version 2 */ } krb5plugin_service_locate_ftable; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/mcache.c b/crypto/external/bsd/heimdal/dist/lib/krb5/mcache.c index 59d221a04ee5..42acc1f0e9c3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/mcache.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/mcache.c @@ -1,4 +1,4 @@ -/* $NetBSD: mcache.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: mcache.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997-2004 Kungliga Tekniska Högskolan @@ -250,27 +250,28 @@ mcc_destroy(krb5_context context, { krb5_mcache **n, *m = MCACHE(id); + HEIMDAL_MUTEX_lock(&mcc_mutex); HEIMDAL_MUTEX_lock(&(m->mutex)); if (m->refcnt == 0) { HEIMDAL_MUTEX_unlock(&(m->mutex)); + HEIMDAL_MUTEX_unlock(&mcc_mutex); krb5_abortx(context, "mcc_destroy: refcnt already 0"); } if (!MISDEAD(m)) { /* if this is an active mcache, remove it from the linked list, and free all data */ - HEIMDAL_MUTEX_lock(&mcc_mutex); for(n = &mcc_head; n && *n; n = &(*n)->next) { if(m == *n) { *n = m->next; break; } } - HEIMDAL_MUTEX_unlock(&mcc_mutex); mcc_destroy_internal(context, m); } HEIMDAL_MUTEX_unlock(&(m->mutex)); + HEIMDAL_MUTEX_unlock(&mcc_mutex); return 0; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/pac.c b/crypto/external/bsd/heimdal/dist/lib/krb5/pac.c index 17c8cb9be4cc..a1b269a0db9a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/pac.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/pac.c @@ -1,4 +1,4 @@ -/* $NetBSD: pac.c,v 1.3 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: pac.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan @@ -114,6 +114,56 @@ HMAC_MD5_any_checksum(krb5_context context, } +static krb5_error_code pac_header_size(krb5_context context, + uint32_t num_buffers, + uint32_t *result) +{ + krb5_error_code ret; + uint32_t header_size; + + /* Guard against integer overflow on 32-bit systems. */ + if (num_buffers > UINT32_MAX / PAC_INFO_BUFFER_SIZE) { + ret = EINVAL; + krb5_set_error_message(context, ret, "PAC has too many buffers"); + return ret; + } + header_size = PAC_INFO_BUFFER_SIZE * num_buffers; + + /* Guard against integer overflow on 32-bit systems. */ + if (header_size > UINT32_MAX - PACTYPE_SIZE) { + ret = EINVAL; + krb5_set_error_message(context, ret, "PAC has too many buffers"); + return ret; + } + header_size += PACTYPE_SIZE; + + *result = header_size; + + return 0; +} + +static krb5_error_code pac_aligned_size(krb5_context context, + uint32_t size, + uint32_t *aligned_size) +{ + krb5_error_code ret; + + /* Guard against integer overflow on 32-bit systems. */ + if (size > UINT32_MAX - (PAC_ALIGNMENT - 1)) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + return ret; + } + size += PAC_ALIGNMENT - 1; + + /* align to PAC_ALIGNMENT */ + size = (size / PAC_ALIGNMENT) * PAC_ALIGNMENT; + + *aligned_size = size; + + return 0; +} + /* * */ @@ -155,8 +205,12 @@ krb5_pac_parse(krb5_context context, const void *ptr, size_t len, goto out; } - p->pac = calloc(1, - sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * (tmp - 1))); + ret = pac_header_size(context, tmp, &header_end); + if (ret) { + return ret; + } + + p->pac = calloc(1, header_end); if (p->pac == NULL) { ret = krb5_enomem(context); goto out; @@ -165,7 +219,6 @@ krb5_pac_parse(krb5_context context, const void *ptr, size_t len, p->pac->numbuffers = tmp; p->pac->version = tmp2; - header_end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers); if (header_end > len) { ret = EINVAL; goto out; @@ -294,37 +347,65 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p, { krb5_error_code ret; void *ptr; - size_t len, offset, header_end, old_end; + uint32_t unaligned_len, num_buffers, len, offset, header_end, old_end; uint32_t i; - len = p->pac->numbuffers; + if (data->length > UINT32_MAX) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + return ret; + } - ptr = realloc(p->pac, - sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * len)); + num_buffers = p->pac->numbuffers; + + if (num_buffers >= UINT32_MAX) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + return ret; + } + ret = pac_header_size(context, num_buffers + 1, &header_end); + if (ret) { + return ret; + } + + ptr = realloc(p->pac, header_end); if (ptr == NULL) return krb5_enomem(context); p->pac = ptr; - for (i = 0; i < len; i++) - p->pac->buffers[i].offset_lo += PAC_INFO_BUFFER_SIZE; + for (i = 0; i < num_buffers; i++) { + if (p->pac->buffers[i].offset_lo > UINT32_MAX - PAC_INFO_BUFFER_SIZE) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + return ret; + } + p->pac->buffers[i].offset_lo += PAC_INFO_BUFFER_SIZE; + } + + if (p->data.length > UINT32_MAX - PAC_INFO_BUFFER_SIZE) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + return ret; + } offset = p->data.length + PAC_INFO_BUFFER_SIZE; - p->pac->buffers[len].type = type; - p->pac->buffers[len].buffersize = data->length; - p->pac->buffers[len].offset_lo = offset; - p->pac->buffers[len].offset_hi = 0; + p->pac->buffers[num_buffers].type = type; + p->pac->buffers[num_buffers].buffersize = data->length; + p->pac->buffers[num_buffers].offset_lo = offset; + p->pac->buffers[num_buffers].offset_hi = 0; old_end = p->data.length; - len = p->data.length + data->length + PAC_INFO_BUFFER_SIZE; - if (len < p->data.length) { + if (offset > UINT32_MAX - data->length) { krb5_set_error_message(context, EINVAL, "integer overrun"); return EINVAL; } + unaligned_len = offset + data->length; - /* align to PAC_ALIGNMENT */ - len = ((len + PAC_ALIGNMENT - 1) / PAC_ALIGNMENT) * PAC_ALIGNMENT; + ret = pac_aligned_size(context, unaligned_len, &len); + if (ret) + return ret; ret = krb5_data_realloc(&p->data, len); if (ret) { @@ -335,7 +416,7 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p, /* * make place for new PAC INFO BUFFER header */ - header_end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers); + header_end -= PAC_INFO_BUFFER_SIZE; memmove((unsigned char *)p->data.data + header_end + PAC_INFO_BUFFER_SIZE, (unsigned char *)p->data.data + header_end , old_end - header_end); @@ -348,7 +429,7 @@ krb5_pac_add_buffer(krb5_context context, krb5_pac p, memcpy((unsigned char *)p->data.data + offset, data->data, data->length); memset((unsigned char *)p->data.data + offset + data->length, - 0, p->data.length - offset - data->length); + 0, p->data.length - unaligned_len); p->pac->numbuffers += 1; @@ -377,8 +458,8 @@ krb5_pac_get_buffer(krb5_context context, krb5_pac p, uint32_t i; for (i = 0; i < p->pac->numbuffers; i++) { - const size_t len = p->pac->buffers[i].buffersize; - const size_t offset = p->pac->buffers[i].offset_lo; + const uint32_t len = p->pac->buffers[i].buffersize; + const uint32_t offset = p->pac->buffers[i].offset_lo; if (p->pac->buffers[i].type != type) continue; @@ -983,8 +1064,8 @@ _krb5_pac_sign(krb5_context context, size_t server_size, priv_size; uint32_t server_offset = 0, priv_offset = 0; uint32_t server_cksumtype = 0, priv_cksumtype = 0; - int num = 0; - size_t i; + uint32_t num = 0; + uint32_t i; krb5_data logon, d; krb5_data_zero(&logon); @@ -1032,8 +1113,18 @@ _krb5_pac_sign(krb5_context context, if (num) { void *ptr; + uint32_t len; - ptr = realloc(p->pac, sizeof(*p->pac) + (sizeof(p->pac->buffers[0]) * (p->pac->numbuffers + num - 1))); + if (p->pac->numbuffers > UINT32_MAX - num) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } + ret = pac_header_size(context, p->pac->numbuffers + num, &len); + if (ret) + goto out; + + ptr = realloc(p->pac, len); if (ptr == NULL) return krb5_enomem(context); @@ -1086,7 +1177,9 @@ _krb5_pac_sign(krb5_context context, CHECK(ret, krb5_store_uint32(sp, p->pac->numbuffers), out); CHECK(ret, krb5_store_uint32(sp, p->pac->version), out); - end = PACTYPE_SIZE + (PAC_INFO_BUFFER_SIZE * p->pac->numbuffers); + ret = pac_header_size(context, p->pac->numbuffers, &end); + if (ret) + goto out; for (i = 0; i < p->pac->numbuffers; i++) { uint32_t len; @@ -1096,11 +1189,31 @@ _krb5_pac_sign(krb5_context context, /* store data */ if (p->pac->buffers[i].type == PAC_SERVER_CHECKSUM) { + if (server_size > UINT32_MAX - 4) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } + if (end > UINT32_MAX - 4) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } len = server_size + 4; server_offset = end + 4; CHECK(ret, krb5_store_uint32(spdata, server_cksumtype), out); CHECK(ret, fill_zeros(context, spdata, server_size), out); } else if (p->pac->buffers[i].type == PAC_PRIVSVR_CHECKSUM) { + if (priv_size > UINT32_MAX - 4) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } + if (end > UINT32_MAX - 4) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } len = priv_size + 4; priv_offset = end + 4; CHECK(ret, krb5_store_uint32(spdata, priv_cksumtype), out); @@ -1131,11 +1244,20 @@ _krb5_pac_sign(krb5_context context, /* advance data endpointer and align */ { - int32_t e; + uint32_t e; + if (end > UINT32_MAX - len) { + ret = EINVAL; + krb5_set_error_message(context, ret, "integer overrun"); + goto out; + } end += len; - e = ((end + PAC_ALIGNMENT - 1) / PAC_ALIGNMENT) * PAC_ALIGNMENT; - if ((int32_t)end != e) { + + ret = pac_aligned_size(context, end, &e); + if (ret) + goto out; + + if (end != e) { CHECK(ret, fill_zeros(context, spdata, e - end), out); } end = e; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit-ec.c b/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit-ec.c index 168059f9f3b9..95c8b7fd8688 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit-ec.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit-ec.c @@ -1,4 +1,4 @@ -/* $NetBSD: pkinit-ec.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: pkinit-ec.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2016 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit.c b/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit.c index daaacd723ff2..4aa4209c8803 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/pkinit.c @@ -1,4 +1,4 @@ -/* $NetBSD: pkinit.c,v 1.5 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: pkinit.c,v 1.6 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2003 - 2016 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/plugin.c b/crypto/external/bsd/heimdal/dist/lib/krb5/plugin.c index 8483070ee6e9..557f0d95b98d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/plugin.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/plugin.c @@ -1,4 +1,4 @@ -/* $NetBSD: plugin.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: plugin.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan @@ -545,7 +545,7 @@ _krb5_plugin_run_f(krb5_context context, struct krb5_plugin *p; /* Get registered plugins */ - (void) _krb5_plugin_find(context, SYMBOL, name, ®istered_plugins); + (void) _krb5_plugin_find(context, PLUGIN_TYPE_DATA, name, ®istered_plugins); HEIMDAL_MUTEX_lock(&plugin_mutex); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/principal.c b/crypto/external/bsd/heimdal/dist/lib/krb5/principal.c index 1007bf10ba38..49bce4e42e16 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/principal.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/principal.c @@ -1,4 +1,4 @@ -/* $NetBSD: principal.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: principal.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan @@ -1260,19 +1260,43 @@ krb5_principal_is_anonymous(krb5_context context, krb5_const_principal p, unsigned int flags) { - int anon_realm; + /* + * Heimdal versions 7.5 and below left the name-type at KRB5_NT_PRINCIPAL + * even with anonymous pkinit responses. To retain interoperability with + * legacy KDCs, the name-type is not checked by the client after requesting + * a fully anonymous ticket. + */ + if (!(flags & KRB5_ANON_IGNORE_NAME_TYPE) && + p->name.name_type != KRB5_NT_WELLKNOWN && + p->name.name_type != KRB5_NT_UNKNOWN) + return FALSE; - if ((p->name.name_type != KRB5_NT_WELLKNOWN && - p->name.name_type != KRB5_NT_UNKNOWN) || - p->name.name_string.len != 2 || + if (p->name.name_string.len != 2 || strcmp(p->name.name_string.val[0], KRB5_WELLKNOWN_NAME) != 0 || strcmp(p->name.name_string.val[1], KRB5_ANON_NAME) != 0) return FALSE; - anon_realm = strcmp(p->realm, KRB5_ANON_REALM) == 0; + /* + * While unauthenticated clients SHOULD get "WELLKNOWN:ANONYMOUS" as their + * realm, Heimdal KDCs prior to 7.0 returned the requested realm. While + * such tickets might lead *servers* to unwittingly grant access to fully + * anonymous clients, trusting that the client was authenticated to the + * realm in question, doing it right is the KDC's job, the client should + * not refuse such a ticket. + * + * If we ever do decide to enforce WELLKNOWN:ANONYMOUS for unauthenticated + * clients, it is essential that calls that pass KRB5_ANON_MATCH_ANY still + * ignore the realm, as in that case either case matches one of the two + * possible conditions. + */ + if (flags & KRB5_ANON_MATCH_UNAUTHENTICATED) + return TRUE; - return ((flags & KRB5_ANON_MATCH_AUTHENTICATED) && !anon_realm) || - ((flags & KRB5_ANON_MATCH_UNAUTHENTICATED) && anon_realm); + /* + * Finally, authenticated clients that asked to be only anonymized do + * legitimately expect a non-anon realm. + */ + return strcmp(p->realm, KRB5_ANON_REALM) != 0; } static int diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/rd_req.c b/crypto/external/bsd/heimdal/dist/lib/krb5/rd_req.c index d22032a169d0..7b235a7fa261 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/rd_req.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/rd_req.c @@ -1,4 +1,4 @@ -/* $NetBSD: rd_req.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: rd_req.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* @@ -775,11 +775,10 @@ get_key_from_keytab(krb5_context context, kvno, ap_req->ticket.enc_part.etype, &entry); - if(ret) - goto out; - ret = krb5_copy_keyblock(context, &entry.keyblock, out_key); - krb5_kt_free_entry (context, &entry); -out: + if(ret == 0) { + ret = krb5_copy_keyblock(context, &entry.keyblock, out_key); + krb5_kt_free_entry(context, &entry); + } if(keytab == NULL) krb5_kt_close(context, real_keytab); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-aes-sha2.c b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-aes-sha2.c index c0d44c251194..ead786d62c36 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-aes-sha2.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-aes-sha2.c @@ -1,4 +1,4 @@ -/* $NetBSD: salt-aes-sha2.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: salt-aes-sha2.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -94,8 +94,9 @@ AES_SHA2_string_to_key(krb5_context context, goto cleanup; } memcpy(saltp.data, et->name, enctypesz); - memcpy((unsigned char *)saltp.data + enctypesz, - salt.saltvalue.data, salt.saltvalue.length); + if (salt.saltvalue.length) + memcpy((unsigned char *)saltp.data + enctypesz, + salt.saltvalue.data, salt.saltvalue.length); ret = _krb5_aes_sha2_md_for_enctype(context, enctype, &md); if (ret) diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des.c b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des.c index 2261fcd84a5d..ddc6bade7469 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des.c @@ -1,4 +1,4 @@ -/* $NetBSD: salt-des.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: salt-des.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -196,7 +196,8 @@ krb5_DES_string_to_key(krb5_context context, if (len > 0 && s == NULL) return krb5_enomem(context); memcpy(s, password.data, password.length); - memcpy(s + password.length, salt.saltvalue.data, salt.saltvalue.length); + if (salt.saltvalue.length) + memcpy(s + password.length, salt.saltvalue.data, salt.saltvalue.length); DES_string_to_key_int(s, len, &tmp); key->keytype = enctype; krb5_data_copy(&key->keyvalue, tmp, sizeof(tmp)); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des3.c b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des3.c index 75bbcd475e32..0f8812e9b8c5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des3.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/salt-des3.c @@ -1,4 +1,4 @@ -/* $NetBSD: salt-des3.c,v 1.3 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: salt-des3.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan @@ -115,7 +115,8 @@ DES3_string_to_key_derived(krb5_context context, if (len != 0 && s == NULL) return krb5_enomem(context); memcpy(s, password.data, password.length); - memcpy(s + password.length, salt.saltvalue.data, salt.saltvalue.length); + if (salt.saltvalue.length) + memcpy(s + password.length, salt.saltvalue.data, salt.saltvalue.length); ret = krb5_string_to_key_derived(context, s, len, diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/salt.c b/crypto/external/bsd/heimdal/dist/lib/krb5/salt.c index 02f8fd709707..584f6a0f581a 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/salt.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/salt.c @@ -1,4 +1,4 @@ -/* $NetBSD: salt.c,v 1.4 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: salt.c,v 1.5 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc.c b/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc.c index 24b5be0bfa1b..9a440c79a614 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc.c @@ -1,4 +1,4 @@ -/* $NetBSD: send_to_kdc.c,v 1.8 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: send_to_kdc.c,v 1.9 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan @@ -1163,7 +1163,7 @@ krb5_sendto_context(krb5_context context, break; } action = KRB5_SENDTO_KRBHST; - /* FALLTHOUGH */ + /* FALLTHROUGH */ case KRB5_SENDTO_KRBHST: if (ctx->krbhst == NULL) { ret = krb5_krbhst_init_flags(context, realm, type, @@ -1181,7 +1181,7 @@ krb5_sendto_context(krb5_context context, handle = heim_retain(ctx->krbhst); } action = KRB5_SENDTO_TIMEOUT; - /* FALLTHOUGH */ + /* FALLTHROUGH */ case KRB5_SENDTO_TIMEOUT: /* diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc_plugin.h b/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc_plugin.h index 545c38ebb89d..8ed18708af7e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc_plugin.h +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/send_to_kdc_plugin.h @@ -1,4 +1,4 @@ -/* $NetBSD: send_to_kdc_plugin.h,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: send_to_kdc_plugin.h,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan @@ -47,14 +47,14 @@ #define KRB5_PLUGIN_SEND_TO_KDC_VERSION KRB5_PLUGIN_SEND_TO_KDC_VERSION_2 typedef krb5_error_code -(*krb5plugin_send_to_kdc_func)(krb5_context, +(KRB5_CALLCONV *krb5plugin_send_to_kdc_func)(krb5_context, void *, krb5_krbhst_info *, time_t timeout, const krb5_data *, krb5_data *); typedef krb5_error_code -(*krb5plugin_send_to_realm_func)(krb5_context, +(KRB5_CALLCONV *krb5plugin_send_to_realm_func)(krb5_context, void *, krb5_const_realm, time_t timeout, @@ -64,8 +64,8 @@ typedef krb5_error_code typedef struct krb5plugin_send_to_kdc_ftable { int minor_version; - krb5_error_code (*init)(krb5_context, void **); - void (*fini)(void *); + krb5_error_code (KRB5_CALLCONV *init)(krb5_context, void **); + void (KRB5_CALLCONV *fini)(void *); krb5plugin_send_to_kdc_func send_to_kdc; krb5plugin_send_to_realm_func send_to_realm; /* added in version 2 */ } krb5plugin_send_to_kdc_ftable; diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/sp800-108-kdf.c b/crypto/external/bsd/heimdal/dist/lib/krb5/sp800-108-kdf.c index e0d185bd4cf4..66b83a395c85 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/sp800-108-kdf.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/sp800-108-kdf.c @@ -1,4 +1,4 @@ -/* $NetBSD: sp800-108-kdf.c,v 1.3 2018/02/05 16:00:53 christos Exp $ */ +/* $NetBSD: sp800-108-kdf.c,v 1.4 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 2015, Secure Endpoints Inc. diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/store_emem.c b/crypto/external/bsd/heimdal/dist/lib/krb5/store_emem.c index 16bdbe52c5c1..b1e84a5e0182 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/store_emem.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/store_emem.c @@ -1,4 +1,4 @@ -/* $NetBSD: store_emem.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: store_emem.c,v 1.3 2023/06/19 21:41:44 christos Exp $ */ /* * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan @@ -72,7 +72,8 @@ emem_store(krb5_storage *sp, const void *data, size_t size) s->base = base; s->ptr = (unsigned char*)base + off; } - memmove(s->ptr, data, size); + if (size) + memmove(s->ptr, data, size); sp->seek(sp, size, SEEK_CUR); return size; } diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/test_pknistkdf.c b/crypto/external/bsd/heimdal/dist/lib/krb5/test_pknistkdf.c index e361c17e4824..b56fd7bcd520 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/test_pknistkdf.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/test_pknistkdf.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_pknistkdf.c,v 1.4 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: test_pknistkdf.c,v 1.5 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/test_plugin.c b/crypto/external/bsd/heimdal/dist/lib/krb5/test_plugin.c index 5c0052735fa6..6ad7520de350 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/test_plugin.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/test_plugin.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_plugin.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: test_plugin.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -36,19 +36,19 @@ #include #include "locate_plugin.h" -static krb5_error_code +static krb5_error_code KRB5_CALLCONV resolve_init(krb5_context context, void **ctx) { *ctx = NULL; return 0; } -static void +static void KRB5_CALLCONV resolve_fini(void *ctx) { } -static krb5_error_code +static krb5_error_code KRB5_CALLCONV resolve_lookup(void *ctx, enum locate_service_type service, const char *realm, diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/test_store.c b/crypto/external/bsd/heimdal/dist/lib/krb5/test_store.c index ea69ecae5712..2eeca07875bb 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/test_store.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/test_store.c @@ -1,4 +1,4 @@ -/* $NetBSD: test_store.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: test_store.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2006 Kungliga Tekniska Högskolan @@ -66,7 +66,7 @@ test_int16(krb5_context context, krb5_storage *sp) krb5_error_code ret; int i; int16_t val[] = { - 0, 1, -1, 32768, -32767 + 0, 1, -1, 32767, -32768 }, v; krb5_storage_truncate(sp, 0); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/ticket.c b/crypto/external/bsd/heimdal/dist/lib/krb5/ticket.c index 178d28e2b4a5..891ecc06b3db 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/ticket.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/ticket.c @@ -1,4 +1,4 @@ -/* $NetBSD: ticket.c,v 1.5 2019/12/15 22:50:50 christos Exp $ */ +/* $NetBSD: ticket.c,v 1.6 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan @@ -543,10 +543,22 @@ check_client_anonymous(krb5_context context, if (!rep->enc_part.flags.anonymous) return KRB5KDC_ERR_BADOPTION; + /* + * Here we must validate that the AS returned a ticket of the expected type + * for either a fully anonymous request, or authenticated request for an + * anonymous ticket. If this is a TGS request, we're done. Then if the + * 'requested' principal was anonymous, we'll check the 'mapped' principal + * accordingly (without enforcing the name type and perhaps the realm). + * Finally, if the 'requested' principal was not anonymous, well check + * that the 'mapped' principal has an anonymous name and type, in a + * non-anonymous realm. (Should we also be checking for a realm match + * between the request and the mapped name in this case?) + */ if (is_tgs_rep) - flags = KRB5_ANON_MATCH_ANY; - else if (krb5_principal_is_anonymous(context, requested, KRB5_ANON_MATCH_ANY)) - flags = KRB5_ANON_MATCH_UNAUTHENTICATED; + flags = KRB5_ANON_MATCH_ANY_NONT; + else if (krb5_principal_is_anonymous(context, requested, + KRB5_ANON_MATCH_ANY_NONT)) + flags = KRB5_ANON_MATCH_UNAUTHENTICATED | KRB5_ANON_IGNORE_NAME_TYPE; else flags = KRB5_ANON_MATCH_AUTHENTICATED; @@ -568,7 +580,8 @@ check_client_mismatch(krb5_context context, krb5_keyblock const * key) { if (rep->enc_part.flags.anonymous) { - if (!krb5_principal_is_anonymous(context, mapped, KRB5_ANON_MATCH_ANY)) { + if (!krb5_principal_is_anonymous(context, mapped, + KRB5_ANON_MATCH_ANY_NONT)) { krb5_set_error_message(context, KRB5KRB_AP_ERR_MODIFIED, N_("Anonymous ticket does not contain anonymous " "principal", "")); diff --git a/crypto/external/bsd/heimdal/dist/lib/krb5/transited.c b/crypto/external/bsd/heimdal/dist/lib/krb5/transited.c index 53540abaa1a2..4f87a090e3f4 100644 --- a/crypto/external/bsd/heimdal/dist/lib/krb5/transited.c +++ b/crypto/external/bsd/heimdal/dist/lib/krb5/transited.c @@ -1,4 +1,4 @@ -/* $NetBSD: transited.c,v 1.2 2017/01/28 21:31:49 christos Exp $ */ +/* $NetBSD: transited.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1997 - 2001, 2003 Kungliga Tekniska Högskolan @@ -283,6 +283,7 @@ decode_realms(krb5_context context, r = make_realm(tmp); if(r == NULL){ free_realms(*realms); + *realms = NULL; return krb5_enomem(context); } *realms = append_realm(*realms, r); @@ -291,7 +292,8 @@ decode_realms(krb5_context context, } tmp = malloc(tr + i - start + 1); if(tmp == NULL){ - free(*realms); + free_realms(*realms); + *realms = NULL; return krb5_enomem(context); } memcpy(tmp, start, tr + i - start); @@ -299,6 +301,7 @@ decode_realms(krb5_context context, r = make_realm(tmp); if(r == NULL){ free_realms(*realms); + *realms = NULL; return krb5_enomem(context); } *realms = append_realm(*realms, r); diff --git a/crypto/external/bsd/heimdal/dist/lib/ntlm/ntlm.c b/crypto/external/bsd/heimdal/dist/lib/ntlm/ntlm.c index ef0144b0c474..ebbc4434b9d3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/ntlm/ntlm.c +++ b/crypto/external/bsd/heimdal/dist/lib/ntlm/ntlm.c @@ -1,4 +1,4 @@ -/* $NetBSD: ntlm.c,v 1.4 2023/06/01 20:40:19 christos Exp $ */ +/* $NetBSD: ntlm.c,v 1.5 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2006 - 2008 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/get_window_size.c b/crypto/external/bsd/heimdal/dist/lib/roken/get_window_size.c index 31db96134456..7e8bd3602f67 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/get_window_size.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/get_window_size.c @@ -1,4 +1,4 @@ -/* $NetBSD: get_window_size.c,v 1.4 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: get_window_size.c,v 1.5 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/getaddrinfo.c b/crypto/external/bsd/heimdal/dist/lib/roken/getaddrinfo.c index 8f116e508248..a71ff273710b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/getaddrinfo.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/getaddrinfo.c @@ -1,4 +1,4 @@ -/* $NetBSD: getaddrinfo.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: getaddrinfo.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1999 - 2001 Kungliga Tekniska Högskolan @@ -190,7 +190,7 @@ get_null (const struct addrinfo *hints, struct addrinfo *first = NULL; struct addrinfo **current = &first; int family = PF_UNSPEC; - int ret; + int ret = 0; if (hints != NULL) family = hints->ai_family; @@ -211,6 +211,8 @@ get_null (const struct addrinfo *hints, if (family == PF_INET6 || family == PF_UNSPEC) { ret = add_one (port, protocol, socktype, ¤t, const_v6, &v6_addr, NULL); + if (ret) + return ret; } #endif if (family == PF_INET || family == PF_UNSPEC) { @@ -218,7 +220,7 @@ get_null (const struct addrinfo *hints, ¤t, const_v4, &v4_addr, NULL); } *res = first; - return 0; + return ret; } static int diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/getarg.c b/crypto/external/bsd/heimdal/dist/lib/roken/getarg.c index 6a6685fbc5d6..0082e199e1c5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/getarg.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/getarg.c @@ -1,4 +1,4 @@ -/* $NetBSD: getarg.c,v 1.5 2017/01/29 19:23:28 christos Exp $ */ +/* $NetBSD: getarg.c,v 1.6 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/getxxyyy.c b/crypto/external/bsd/heimdal/dist/lib/roken/getxxyyy.c index 1a34ce1bc099..445705a9d7fe 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/getxxyyy.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/getxxyyy.c @@ -1,4 +1,4 @@ -/* $NetBSD: getxxyyy.c,v 1.3 2017/09/08 15:29:43 christos Exp $ */ +/* $NetBSD: getxxyyy.c,v 1.4 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2011 Kungliga Tekniska Högskolan @@ -51,6 +51,15 @@ rk_getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **); static void copypw(struct passwd *pwd, char *buffer, size_t bufsize, const struct passwd *p) { + struct passwd *p; + size_t slen; + + *result = NULL; + + p = getpwnam(name); + if(p == NULL) + return (errno = ENOENT); + memset(pwd, 0, sizeof(*pwd)); #define APPEND(el) \ diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/ndbm_wrap.c b/crypto/external/bsd/heimdal/dist/lib/roken/ndbm_wrap.c index 119dd6767719..5d78b2748979 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/ndbm_wrap.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/ndbm_wrap.c @@ -1,4 +1,4 @@ -/* $NetBSD: ndbm_wrap.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: ndbm_wrap.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2002 Kungliga Tekniska Högskolan @@ -38,6 +38,8 @@ #include "ndbm_wrap.h" #if defined(HAVE_DBHEADER) #include +#elif defined(HAVE_DB6_DB_H) +#include #elif defined(HAVE_DB5_DB_H) #include #elif defined(HAVE_DB4_DB_H) diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/net_write.c b/crypto/external/bsd/heimdal/dist/lib/roken/net_write.c index 147863be4dd9..f68766c914de 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/net_write.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/net_write.c @@ -1,4 +1,4 @@ -/* $NetBSD: net_write.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: net_write.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan @@ -38,7 +38,9 @@ #include /* - * Like write but never return partial data. + * Like write but blocking sockets never return partial data, i.e. we retry on + * EINTR. With non-blocking sockets (EWOULDBLOCK or EAGAIN) we return the + * number of bytes written. */ #ifndef _WIN32 @@ -53,10 +55,17 @@ net_write (rk_socket_t fd, const void *buf, size_t nbytes) while (rem > 0) { count = write (fd, cbuf, rem); if (count < 0) { - if (errno == EINTR) + switch (errno) { + case EINTR: continue; - else +#if defined(EAGAIN) && EAGAIN != EWOULDBLOCK + case EAGAIN: +#endif + case EWOULDBLOCK: + return nbytes - rem; + default: return count; + } } cbuf += count; rem -= count; @@ -95,10 +104,25 @@ net_write(rk_socket_t sock, const void *buf, size_t nbytes) count = send (sock, cbuf, rem, 0); #endif if (count < 0) { - if (errno == EINTR) - continue; - else - return count; + if (!use_write) { + switch (rk_SOCK_ERRNO) { + case WSAEINTR: + continue; + case WSAEWOULDBLOCK: + return nbytes - rem; + default: + return count; + } + } else { + switch (errno) { + case EINTR: + continue; + case EWOULDBLOCK: + return nbytes - rem; + default: + return count; + } + } } cbuf += count; rem -= count; diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/resolve.c b/crypto/external/bsd/heimdal/dist/lib/roken/resolve.c index 081a01b7e379..64dde4cda79e 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/resolve.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/resolve.c @@ -1,4 +1,4 @@ -/* $NetBSD: resolve.c,v 1.5 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: resolve.c,v 1.6 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1995 - 2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/roken.h.in b/crypto/external/bsd/heimdal/dist/lib/roken/roken.h.in index 06656a80ee4e..5d1257fc8ee7 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/roken.h.in +++ b/crypto/external/bsd/heimdal/dist/lib/roken/roken.h.in @@ -318,7 +318,16 @@ ROKEN_CPP_START #define fsync _commit -/* The MSVC implementation of snprintf is not C99 compliant. */ +#define timezone _timezone + +#define tzname _tzname + +#define _PIPE_BUFFER_SZ 8192 +#define pipe(fds) _pipe((fds), _PIPE_BUFFER_SZ, O_BINARY); + +#define ftruncate(fd, sz) _chsize((fd), (sz)) + +#if !defined(HAVE_UCRT) #define snprintf rk_snprintf #define vsnprintf rk_vsnprintf #define vasnprintf rk_vasnprintf @@ -326,11 +335,6 @@ ROKEN_CPP_START #define asnprintf rk_asnprintf #define asprintf rk_asprintf -#define _PIPE_BUFFER_SZ 8192 -#define pipe(fds) _pipe((fds), _PIPE_BUFFER_SZ, O_BINARY); - -#define ftruncate(fd, sz) _chsize((fd), (sz)) - ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_snprintf (char *str, size_t sz, const char *format, ...); @@ -348,6 +352,7 @@ rk_vasnprintf (char **ret, size_t max_sz, const char *format, va_list args); ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_vsnprintf (char *str, size_t sz, const char *format, va_list args); +#endif /* !defined(HAVE_UCRT) */ /* missing stat.h predicates */ diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/rtbl.3 b/crypto/external/bsd/heimdal/dist/lib/roken/rtbl.3 index 368cd4274f5e..27acb11204bc 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/rtbl.3 +++ b/crypto/external/bsd/heimdal/dist/lib/roken/rtbl.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: rtbl.3,v 1.4 2017/01/28 21:31:50 christos Exp $ +.\" $NetBSD: rtbl.3,v 1.5 2023/06/19 21:41:45 christos Exp $ .\" .\" Copyright (c) 2004 Kungliga Tekniska Högskolan .\" (Royal Institute of Technology, Stockholm, Sweden). diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/snprintf.c b/crypto/external/bsd/heimdal/dist/lib/roken/snprintf.c index 663f525983f5..f17d902342a3 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/snprintf.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/snprintf.c @@ -1,4 +1,4 @@ -/* $NetBSD: snprintf.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: snprintf.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1995-2003 Kungliga Tekniska Högskolan @@ -451,13 +451,16 @@ xyzprintf (struct snprintf_state *state, const char *char_format, va_list ap) break; case 'd' : case 'i' : { - longest arg; - u_longest num; + int64_t arg; + uint64_t num; int minusp = 0; PARSE_INT_FORMAT(arg, ap, signed); - if (arg < 0) { + if (arg == INT64_MIN) { + minusp = 1; + num = (uint64_t)INT64_MAX + 1; + } else if (arg < 0) { minusp = 1; num = -arg; } else diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/strtoll.c b/crypto/external/bsd/heimdal/dist/lib/roken/strtoll.c index 40a3f01b997d..23261760a359 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/strtoll.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/strtoll.c @@ -1,4 +1,4 @@ -/* $NetBSD: strtoll.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: strtoll.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -40,6 +40,8 @@ #include +#ifndef HAVE_STRTOLL + /* #include */ #include @@ -148,4 +150,4 @@ noconv: *endptr = (char *)(any ? s - 1 : nptr); return (acc); } - +#endif /* !HAVE_STRTOLL */ diff --git a/crypto/external/bsd/heimdal/dist/lib/roken/strtoull.c b/crypto/external/bsd/heimdal/dist/lib/roken/strtoull.c index edfd57867142..0d4846f0198d 100644 --- a/crypto/external/bsd/heimdal/dist/lib/roken/strtoull.c +++ b/crypto/external/bsd/heimdal/dist/lib/roken/strtoull.c @@ -1,4 +1,4 @@ -/* $NetBSD: strtoull.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: strtoull.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -40,6 +40,8 @@ #include +#ifndef HAVE_STRTOULL + /* #include */ #include @@ -126,4 +128,4 @@ noconv: *endptr = (char *)(any ? s - 1 : nptr); return (acc); } - +#endif /* !HAVE_STRTOULL */ diff --git a/crypto/external/bsd/heimdal/dist/lib/sl/sl.c b/crypto/external/bsd/heimdal/dist/lib/sl/sl.c index 756f94eabc93..eb887bc51319 100644 --- a/crypto/external/bsd/heimdal/dist/lib/sl/sl.c +++ b/crypto/external/bsd/heimdal/dist/lib/sl/sl.c @@ -1,4 +1,4 @@ -/* $NetBSD: sl.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: sl.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1995 - 2006 Kungliga Tekniska Högskolan @@ -462,6 +462,8 @@ sl_did_you_mean(SL_cmd *cmds, const char *match) for (n = 0, c = cmds; c->name; c++, n++) ; + if (n == 0) + return; metrics = calloc(n, sizeof(metrics[0])); if (metrics == NULL) return; diff --git a/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.c b/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.c index cd332071392b..7ecd01d51da1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.c +++ b/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.c @@ -1,16 +1,16 @@ -/* $NetBSD: slc-gram.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: slc-gram.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -38,6 +36,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -45,11 +47,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 -/* Bison version. */ -#define YYBISON_VERSION "2.3" +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -57,29 +59,16 @@ /* Pure parsers. */ #define YYPURE 0 -/* Using locations. */ -#define YYLSP_NEEDED 0 +/* Push parsers. */ +#define YYPUSH 0 - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - LITERAL = 258, - STRING = 259 - }; -#endif -/* Tokens. */ -#define LITERAL 258 -#define STRING 259 +/* Pull parsers. */ +#define YYPULL 1 -/* Copy the first part of user declarations. */ +/* First part of user prologue. */ #line 1 "slc-gram.y" /* @@ -136,77 +125,195 @@ extern struct assignment *assignment; #define YYFREE free +#line 127 "slc-gram.c" -/* Enabling traces. */ +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_SLC_GRAM_H_INCLUDED +# define YY_YY_SLC_GRAM_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 +#if YYDEBUG +extern int yydebug; #endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + LITERAL = 258, /* LITERAL */ + STRING = 259 /* STRING */ + }; + typedef enum yytokentype yytoken_kind_t; #endif +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define LITERAL 258 +#define STRING 259 +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 57 "slc-gram.y" +union YYSTYPE { +#line 57 "slc-gram.y" + char *string; struct assignment *assignment; -} -/* Line 193 of yacc.c. */ -#line 165 "slc-gram.c" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 193 "slc-gram.c" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif - -/* Copy the second part of user declarations. */ +extern YYSTYPE yylval; + + +int yyparse (void); + + +#endif /* !YY_YY_SLC_GRAM_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_LITERAL = 3, /* LITERAL */ + YYSYMBOL_STRING = 4, /* STRING */ + YYSYMBOL_5_ = 5, /* '=' */ + YYSYMBOL_6_ = 6, /* '{' */ + YYSYMBOL_7_ = 7, /* '}' */ + YYSYMBOL_YYACCEPT = 8, /* $accept */ + YYSYMBOL_start = 9, /* start */ + YYSYMBOL_assignments = 10, /* assignments */ + YYSYMBOL_assignment = 11 /* assignment */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + -/* Line 216 of yacc.c. */ -#line 178 "slc-gram.c" #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else typedef signed char yytype_int8; -#else -typedef short int yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short int yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -214,55 +321,106 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YY_USE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return i; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if ! defined yyoverflow || YYERROR_VERBOSE +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -279,11 +437,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -291,8 +449,8 @@ YYID (i) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -306,88 +464,89 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 6 /* YYLAST -- Last index in YYTABLE. */ @@ -399,18 +558,23 @@ union yyalloc #define YYNNTS 4 /* YYNRULES -- Number of rules. */ #define YYNRULES 6 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 12 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 259 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -441,200 +605,143 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint8 yyprhs[] = -{ - 0, 0, 3, 5, 8, 10, 14 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 9, 0, -1, 10, -1, 11, 10, -1, 11, -1, - 3, 5, 4, -1, 3, 5, 6, 10, 7, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int8 yyrline[] = { 0, 70, 70, 76, 81, 84, 93 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "LITERAL", "STRING", "'='", "'{'", "'}'", - "$accept", "start", "assignments", "assignment", 0 + "\"end of file\"", "error", "\"invalid token\"", "LITERAL", "STRING", + "'='", "'{'", "'}'", "$accept", "start", "assignments", "assignment", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 61, 123, 125 -}; -# endif +#define YYPACT_NINF (-5) -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 8, 9, 10, 10, 11, 11 -}; +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 2, 1, 3, 5 -}; +#define YYTABLE_NINF (-1) -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 0, 0, 0, 2, 4, 0, 1, 3, 5, 0, - 0, 6 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - -1, 2, 3, 4 -}; +#define yytable_value_is_error(Yyn) \ + 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -5 static const yytype_int8 yypact[] = { -1, 1, 4, -5, -1, -3, -5, -5, -5, -1, 0, -5 }; +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int8 yydefact[] = +{ + 0, 0, 0, 2, 4, 0, 1, 3, 5, 0, + 0, 6 +}; + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -5, -5, -4, -5 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint8 yytable[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + 0, 2, 3, 4 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int8 yytable[] = { 7, 8, 1, 9, 6, 10, 5, 11 }; -static const yytype_uint8 yycheck[] = +static const yytype_int8 yycheck[] = { 4, 4, 3, 6, 0, 9, 5, 7 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ +static const yytype_int8 yystos[] = { 0, 3, 9, 10, 11, 5, 0, 10, 4, 6, 10, 7 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr1[] = +{ + 0, 8, 9, 10, 10, 11, 11 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 1, 2, 1, 3, 5 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab -#define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -644,80 +751,58 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { + FILE *yyoutput = yyo; + YY_USE (yyoutput); if (!yyvaluep) return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -725,80 +810,68 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -813,478 +886,219 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); - + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* Lookahead token kind. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; + /*----------. | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { - - int yystate; + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; + + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + int yyn; + /* The return value of yyparse. */ int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; + yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -1299,30 +1113,26 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -1337,14 +1147,14 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -1357,141 +1167,120 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: + case 2: /* start: assignments */ #line 71 "slc-gram.y" - { - assignment = (yyvsp[(1) - (1)].assignment); + { + assignment = (yyvsp[0].assignment); } +#line 1174 "slc-gram.c" break; - case 3: + case 3: /* assignments: assignment assignments */ #line 77 "slc-gram.y" - { - (yyvsp[(1) - (2)].assignment)->next = (yyvsp[(2) - (2)].assignment); - (yyval.assignment) = (yyvsp[(1) - (2)].assignment); + { + (yyvsp[-1].assignment)->next = (yyvsp[0].assignment); + (yyval.assignment) = (yyvsp[-1].assignment); } +#line 1183 "slc-gram.c" break; - case 5: + case 5: /* assignment: LITERAL '=' STRING */ #line 85 "slc-gram.y" - { + { (yyval.assignment) = malloc(sizeof(*(yyval.assignment))); - (yyval.assignment)->name = (yyvsp[(1) - (3)].string); + (yyval.assignment)->name = (yyvsp[-2].string); (yyval.assignment)->type = a_value; (yyval.assignment)->lineno = lineno; - (yyval.assignment)->u.value = (yyvsp[(3) - (3)].string); + (yyval.assignment)->u.value = (yyvsp[0].string); (yyval.assignment)->next = NULL; } +#line 1196 "slc-gram.c" break; - case 6: + case 6: /* assignment: LITERAL '=' '{' assignments '}' */ #line 94 "slc-gram.y" - { + { (yyval.assignment) = malloc(sizeof(*(yyval.assignment))); - (yyval.assignment)->name = (yyvsp[(1) - (5)].string); + (yyval.assignment)->name = (yyvsp[-4].string); (yyval.assignment)->type = a_assignment; (yyval.assignment)->lineno = lineno; - (yyval.assignment)->u.assignment = (yyvsp[(4) - (5)].assignment); + (yyval.assignment)->u.assignment = (yyvsp[-1].assignment); (yyval.assignment)->next = NULL; } +#line 1209 "slc-gram.c" break; -/* Line 1267 of yacc.c. */ -#line 1400 "slc-gram.c" +#line 1213 "slc-gram.c" + default: break; } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif } - - if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -1500,14 +1289,13 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -1520,42 +1308,42 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1566,51 +1354,55 @@ yyerrlab1: `-------------------------------------*/ yyacceptlab: yyresult = 0; - goto yyreturn; + goto yyreturnlab; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; - goto yyreturn; + goto yyreturnlab; -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ -#endif + goto yyreturnlab; -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} + return yyresult; +} #line 104 "slc-gram.y" @@ -2299,4 +2091,3 @@ main(int argc, char **argv) fclose(yyin); return 0; } - diff --git a/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.h b/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.h index 4d7824bf5bee..a38abc31e564 100644 --- a/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.h +++ b/crypto/external/bsd/heimdal/dist/lib/sl/slc-gram.h @@ -1,16 +1,16 @@ -/* $NetBSD: slc-gram.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: slc-gram.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + 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 2, or (at your option) - any later version. + 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 @@ -18,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -35,37 +33,64 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Tokens. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_YY_SLC_GRAM_H_INCLUDED +# define YY_YY_SLC_GRAM_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - LITERAL = 258, - STRING = 259 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + LITERAL = 258, /* LITERAL */ + STRING = 259 /* STRING */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEMPTY -2 +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define LITERAL 258 #define STRING 259 - - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 57 "slc-gram.y" +union YYSTYPE { +#line 57 "slc-gram.y" + char *string; struct assignment *assignment; -} -/* Line 1529 of yacc.c. */ -#line 62 "slc-gram.h" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 80 "slc-gram.h" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; + +int yyparse (void); + + +#endif /* !YY_YY_SLC_GRAM_H_INCLUDED */ diff --git a/crypto/external/bsd/heimdal/dist/lib/sl/slc-lex.c b/crypto/external/bsd/heimdal/dist/lib/sl/slc-lex.c index 0acc96b017a1..03c9d40c128b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/sl/slc-lex.c +++ b/crypto/external/bsd/heimdal/dist/lib/sl/slc-lex.c @@ -1,7 +1,7 @@ -/* $NetBSD: slc-lex.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: slc-lex.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ -#line 3 "slc-lex.c" +#line 2 "slc-lex.c" #define YY_INT_ALIGNED short int @@ -9,8 +9,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -48,7 +48,6 @@ typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; @@ -56,7 +55,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -87,63 +85,61 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ -#ifdef __cplusplus +/* begin standard C++ headers. */ -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -160,15 +156,16 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -183,7 +180,6 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -198,12 +194,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -226,7 +222,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -254,7 +250,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -265,7 +261,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -273,11 +268,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -286,82 +281,78 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - yyleng = (yy_size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 7 #define YY_END_OF_BUFFER 8 /* This struct is not used in this scanner, @@ -371,13 +362,13 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[14] = +static const flex_int16_t yy_accept[14] = { 0, 0, 0, 8, 7, 6, 3, 2, 7, 5, 1, 4, 1, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -409,31 +400,31 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[10] = +static const YY_CHAR yy_meta[10] = { 0, 1, 1, 1, 1, 1, 2, 1, 1, 2 } ; -static yyconst flex_int16_t yy_base[15] = +static const flex_int16_t yy_base[15] = { 0, 0, 0, 12, 13, 13, 13, 13, 6, 13, 0, 13, 0, 13, 8 } ; -static yyconst flex_int16_t yy_def[15] = +static const flex_int16_t yy_def[15] = { 0, 13, 1, 13, 13, 13, 13, 13, 13, 13, 14, 13, 14, 0, 13 } ; -static yyconst flex_int16_t yy_nxt[23] = +static const flex_int16_t yy_nxt[23] = { 0, 4, 5, 6, 7, 4, 4, 8, 9, 10, 12, 11, 13, 3, 13, 13, 13, 13, 13, 13, 13, 13, 13 } ; -static yyconst flex_int16_t yy_chk[23] = +static const flex_int16_t yy_chk[23] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 8, 3, 13, 13, 13, 13, 13, 13, 13, 13, @@ -508,7 +499,8 @@ static char * handle_string(void); #undef ECHO -#line 510 "slc-lex.c" +#line 500 "slc-lex.c" +#line 501 "slc-lex.c" #define INITIAL 0 @@ -524,36 +516,36 @@ static char * handle_string(void); #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -561,33 +553,41 @@ void yyset_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif +#ifndef YY_NO_UNPUT + +#endif + #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -595,7 +595,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -606,7 +606,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - yy_size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -619,7 +619,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -674,7 +674,7 @@ extern int yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -684,14 +684,10 @@ extern int yylex (void); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 58 "slc-lex.l" - -#line 692 "slc-lex.c" - if ( !(yy_init) ) { (yy_init) = 1; @@ -712,13 +708,18 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 58 "slc-lex.l" + +#line 718 "slc-lex.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); @@ -734,7 +735,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -744,9 +745,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 14 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 13 ); @@ -890,7 +891,7 @@ case YY_STATE_EOF(INITIAL): { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -943,6 +944,7 @@ case YY_STATE_EOF(INITIAL): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer @@ -954,9 +956,9 @@ case YY_STATE_EOF(INITIAL): */ static int yy_get_next_buffer (void) { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -985,7 +987,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -998,21 +1000,21 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1021,11 +1023,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1053,7 +1056,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -1067,12 +1070,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1088,14 +1094,14 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1105,9 +1111,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 14 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1120,10 +1126,10 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1133,14 +1139,18 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 14 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 13); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT + +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -1165,7 +1175,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1182,13 +1192,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -1226,11 +1236,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -1258,7 +1268,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -1286,7 +1296,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -1295,13 +1305,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } @@ -1320,15 +1330,11 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -1338,7 +1344,7 @@ extern int isatty (int ); { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -1381,7 +1387,7 @@ extern int isatty (int ); b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -1412,7 +1418,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -1431,7 +1437,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -1449,15 +1455,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -1466,7 +1472,7 @@ static void yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc @@ -1486,7 +1492,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -1496,23 +1502,23 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -1525,28 +1531,29 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n, i; + yy_size_t n; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -1555,7 +1562,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -1571,9 +1578,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -1601,7 +1608,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -1624,7 +1631,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -1639,29 +1646,29 @@ char *yyget_text (void) } /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void yyset_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - yylineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ -void yyset_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - yyin = in_str ; + yyin = _in_str ; } -void yyset_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - yyout = out_str ; + yyout = _out_str ; } int yyget_debug (void) @@ -1669,9 +1676,9 @@ int yyget_debug (void) return yy_flex_debug; } -void yyset_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) @@ -1680,10 +1687,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -1692,8 +1699,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -1708,7 +1715,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -1729,18 +1736,19 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -1750,11 +1758,12 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -1762,12 +1771,12 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) { - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1775,7 +1784,6 @@ void yyfree (void * ptr ) #line 68 "slc-lex.l" - void error_message (const char *format, ...) { diff --git a/crypto/external/bsd/heimdal/dist/lib/vers/print_version.c b/crypto/external/bsd/heimdal/dist/lib/vers/print_version.c index 817e5720d829..34e86da6c216 100644 --- a/crypto/external/bsd/heimdal/dist/lib/vers/print_version.c +++ b/crypto/external/bsd/heimdal/dist/lib/vers/print_version.c @@ -1,4 +1,4 @@ -/* $NetBSD: print_version.c,v 1.4 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: print_version.c,v 1.5 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 1998 - 2006 Kungliga Tekniska Högskolan diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.c b/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.c index cc0a54232d72..a1c62094045f 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.c @@ -1,7 +1,7 @@ -/* $NetBSD: bidi_table.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: bidi_table.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./bidi_table.c */ -/* Automatically generated at 2019-06-07T02:26:41.397837 */ +/* Automatically generated at 2022-11-15T13:59:51.646346 */ #include "bidi_table.h" diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.h b/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.h index e195859fe51f..d3751e82ec1b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/bidi_table.h @@ -1,7 +1,7 @@ -/* $NetBSD: bidi_table.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: bidi_table.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./bidi_table.h */ -/* Automatically generated at 2019-06-07T02:26:41.396770 */ +/* Automatically generated at 2022-11-15T13:59:51.646310 */ #ifndef BIDI_TABLE_H #define BIDI_TABLE_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.c b/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.c index e8d5d8a4ec8c..eab05f9fafa5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.c @@ -1,7 +1,7 @@ -/* $NetBSD: combining_table.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: combining_table.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./combining_table.c */ -/* Automatically generated at 2019-06-07T02:26:41.530824 */ +/* Automatically generated at 2022-11-15T13:59:51.697203 */ #include "combining_table.h" diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.h b/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.h index 59cf229ea60a..d6280a682f26 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/combining_table.h @@ -1,7 +1,7 @@ -/* $NetBSD: combining_table.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: combining_table.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./combining_table.h */ -/* Automatically generated at 2019-06-07T02:26:41.530328 */ +/* Automatically generated at 2022-11-15T13:59:51.697168 */ #ifndef COMBINING_TABLE_H #define COMBINING_TABLE_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.c b/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.c index 11f669e0af7f..02f962abcc32 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.c @@ -1,7 +1,7 @@ -/* $NetBSD: errorlist_table.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: errorlist_table.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./errorlist_table.c */ -/* Automatically generated at 2019-06-07T02:26:41.399027 */ +/* Automatically generated at 2022-11-15T13:59:51.730725 */ #include "errorlist_table.h" diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.h b/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.h index 74cfbc6e3609..fc975dfb84a1 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/errorlist_table.h @@ -1,7 +1,7 @@ -/* $NetBSD: errorlist_table.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: errorlist_table.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./errorlist_table.h */ -/* Automatically generated at 2019-06-07T02:26:41.398369 */ +/* Automatically generated at 2022-11-15T13:59:51.730690 */ #ifndef ERRORLIST_TABLE_H #define ERRORLIST_TABLE_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/idn-lookup.c b/crypto/external/bsd/heimdal/dist/lib/wind/idn-lookup.c index ea8622ef4430..591f987bd5aa 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/idn-lookup.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/idn-lookup.c @@ -1,4 +1,4 @@ -/* $NetBSD: idn-lookup.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: idn-lookup.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -158,7 +158,9 @@ main(int argc, char **argv) if (argc == 0) usage(1); - for (i = 0; i < argc; ++i) - lookup(argv[i]); + for (i = 0; i < argc; ++i) { + if (argv[i][0]) /* Quiet lint */ + lookup(argv[i]); + } return 0; } diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/map_table.c b/crypto/external/bsd/heimdal/dist/lib/wind/map_table.c index 2cc9b3d8884e..d5717dd6ed86 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/map_table.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/map_table.c @@ -1,7 +1,7 @@ -/* $NetBSD: map_table.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: map_table.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./map_table.c */ -/* Automatically generated at 2019-06-07T02:26:41.398537 */ +/* Automatically generated at 2022-11-15T13:59:51.761698 */ #include "map_table.h" diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/map_table.h b/crypto/external/bsd/heimdal/dist/lib/wind/map_table.h index b095ff860f19..3d25fee82d3b 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/map_table.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/map_table.h @@ -1,7 +1,7 @@ -/* $NetBSD: map_table.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: map_table.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./map_table.h */ -/* Automatically generated at 2019-06-07T02:26:41.397498 */ +/* Automatically generated at 2022-11-15T13:59:51.761662 */ #ifndef MAP_TABLE_H #define MAP_TABLE_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/normalize.c b/crypto/external/bsd/heimdal/dist/lib/wind/normalize.c index 4d818ebbe0d7..798b06dd76f6 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/normalize.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/normalize.c @@ -1,4 +1,4 @@ -/* $NetBSD: normalize.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: normalize.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -229,9 +229,9 @@ find_composition(const uint32_t *in, unsigned in_len) unsigned i; if (n % 5 == 0) { - cur = *in++; if (in_len-- == 0) return c->val; + cur = *in++; } i = cur >> 16; diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.c b/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.c index 4a169224f109..bfb104435fca 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.c @@ -1,7 +1,7 @@ -/* $NetBSD: normalize_table.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: normalize_table.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./normalize_table.c */ -/* Automatically generated at 2019-06-07T02:26:41.707824 */ +/* Automatically generated at 2022-11-15T13:59:51.864904 */ #include "normalize_table.h" @@ -10908,5734 +10908,5290 @@ const struct canon_node _wind_canon_table[] = { {0x0, 0, 3, 0}, {0x0, 0, 10, 3}, {0x0, 0, 16, 13}, - {0x0, 0, 15, 29}, - {0x0, 1, 14, 44}, - {0x2f993, 16, 16, 57}, - {0x0, 0, 16, 57}, - {0x0, 0, 16, 73}, - {0x0, 8, 16, 89}, - {0xf942, 16, 16, 97}, - {0x2f994, 16, 16, 97}, - {0x0, 0, 16, 97}, - {0x0, 9, 15, 113}, - {0x0, 5, 6, 119}, - {0x2f9ef, 16, 16, 120}, - {0x0, 0, 16, 120}, - {0x0, 0, 16, 136}, - {0x0, 0, 16, 152}, - {0x0, 0, 1, 168}, - {0x0, 0, 1, 169}, - {0x0, 3, 4, 170}, - {0x0, 4, 5, 171}, - {0x0, 5, 6, 172}, - {0x1f94, 16, 16, 173}, - {0x0, 0, 16, 173}, - {0x0, 0, 12, 189}, - {0x0, 10, 12, 201}, - {0x2f8f6, 16, 16, 203}, - {0xf970, 16, 16, 203}, - {0x0, 0, 16, 203}, - {0x0, 2, 14, 219}, - {0x0, 2, 6, 231}, - {0x0, 0, 1, 235}, - {0x0, 0, 1, 236}, - {0x0, 6, 7, 237}, - {0x0, 5, 6, 238}, - {0x0, 4, 5, 239}, - {0x6c0, 16, 16, 240}, - {0x0, 0, 16, 240}, - {0x0, 0, 13, 256}, - {0x0, 9, 10, 269}, - {0xf9ae, 16, 16, 270}, - {0x0, 0, 16, 270}, - {0x0, 2, 16, 286}, - {0x0, 15, 16, 300}, - {0xfa69, 16, 16, 301}, - {0x0, 0, 11, 301}, - {0x0, 1, 16, 312}, - {0x0, 3, 14, 327}, - {0x0, 6, 7, 338}, - {0x2f9a4, 16, 16, 339}, - {0x0, 4, 15, 339}, - {0x0, 9, 10, 350}, - {0xf9be, 16, 16, 351}, - {0x0, 1, 12, 351}, - {0x0, 7, 8, 362}, - {0x2f864, 16, 16, 363}, - {0x0, 0, 13, 363}, - {0x0, 0, 1, 376}, - {0x0, 0, 1, 377}, - {0x0, 3, 4, 378}, - {0x0, 4, 5, 379}, - {0x0, 5, 6, 380}, - {0x1fc2, 16, 16, 381}, - {0x0, 0, 16, 381}, - {0x0, 0, 16, 397}, - {0x0, 1, 16, 413}, - {0x0, 0, 1, 428}, - {0x0, 3, 4, 429}, - {0x0, 0, 1, 430}, - {0x0, 9, 10, 431}, - {0x0, 9, 10, 432}, - {0x3065, 16, 16, 433}, - {0x0, 0, 3, 433}, - {0x0, 0, 12, 436}, - {0x0, 3, 14, 448}, - {0x0, 0, 1, 459}, - {0x0, 0, 1, 460}, - {0x0, 3, 4, 461}, - {0x0, 3, 4, 462}, - {0x0, 8, 9, 463}, - {0x2244, 16, 16, 464}, - {0x0, 0, 15, 464}, - {0x0, 0, 12, 479}, - {0x0, 0, 1, 491}, + {0x0, 3, 16, 29}, + {0x0, 1, 16, 42}, + {0x0, 0, 1, 57}, + {0x0, 0, 1, 58}, + {0x0, 3, 4, 59}, + {0x0, 0, 3, 60}, + {0x0, 0, 16, 63}, + {0xc0, 16, 16, 79}, + {0xc1, 16, 16, 79}, + {0xc2, 16, 16, 79}, + {0xc3, 16, 16, 79}, + {0xc4, 16, 16, 79}, + {0xc5, 16, 16, 79}, + {0x0, 0, 1, 79}, + {0x0, 0, 1, 80}, + {0x0, 3, 4, 81}, + {0x0, 0, 3, 82}, + {0x0, 7, 8, 85}, + {0xc7, 16, 16, 86}, + {0x0, 0, 1, 86}, + {0x0, 0, 1, 87}, + {0x0, 3, 4, 88}, + {0x0, 0, 4, 89}, + {0x0, 0, 16, 93}, + {0xc8, 16, 16, 109}, + {0xc9, 16, 16, 109}, + {0xca, 16, 16, 109}, + {0xcb, 16, 16, 109}, + {0x0, 0, 1, 109}, + {0x0, 0, 1, 110}, + {0x0, 3, 4, 111}, + {0x0, 0, 4, 112}, + {0x0, 0, 16, 116}, + {0xcc, 16, 16, 132}, + {0xcd, 16, 16, 132}, + {0xce, 16, 16, 132}, + {0xcf, 16, 16, 132}, + {0x0, 0, 1, 132}, + {0x0, 0, 1, 133}, + {0x0, 3, 4, 134}, + {0x0, 0, 4, 135}, + {0x0, 0, 13, 139}, + {0xd1, 16, 16, 152}, + {0x0, 0, 1, 152}, + {0x0, 0, 1, 153}, + {0x0, 3, 4, 154}, + {0x0, 0, 3, 155}, + {0x0, 0, 16, 158}, + {0xd2, 16, 16, 174}, + {0xd3, 16, 16, 174}, + {0xd4, 16, 16, 174}, + {0xd5, 16, 16, 174}, + {0xd6, 16, 16, 174}, + {0x0, 0, 11, 174}, + {0x0, 0, 1, 185}, + {0x0, 0, 1, 186}, + {0x0, 3, 4, 187}, + {0x0, 0, 4, 188}, + {0x0, 0, 16, 192}, + {0xd9, 16, 16, 208}, + {0xda, 16, 16, 208}, + {0xdb, 16, 16, 208}, + {0xdc, 16, 16, 208}, + {0x0, 0, 1, 208}, + {0x0, 0, 1, 209}, + {0x0, 3, 4, 210}, + {0x0, 0, 3, 211}, + {0x0, 0, 10, 214}, + {0xdd, 16, 16, 224}, + {0x0, 0, 16, 224}, + {0x0, 0, 1, 240}, + {0x0, 0, 1, 241}, + {0x0, 3, 4, 242}, + {0x0, 0, 3, 243}, + {0x0, 0, 16, 246}, + {0xe0, 16, 16, 262}, + {0xe1, 16, 16, 262}, + {0xe2, 16, 16, 262}, + {0xe3, 16, 16, 262}, + {0xe4, 16, 16, 262}, + {0xe5, 16, 16, 262}, + {0x0, 0, 1, 262}, + {0x0, 0, 1, 263}, + {0x0, 3, 4, 264}, + {0x0, 0, 3, 265}, + {0x0, 7, 8, 268}, + {0xe7, 16, 16, 269}, + {0x0, 0, 1, 269}, + {0x0, 0, 1, 270}, + {0x0, 3, 4, 271}, + {0x0, 0, 4, 272}, + {0x0, 0, 16, 276}, + {0xe8, 16, 16, 292}, + {0xe9, 16, 16, 292}, + {0xea, 16, 16, 292}, + {0xeb, 16, 16, 292}, + {0x0, 0, 1, 292}, + {0x0, 0, 1, 293}, + {0x0, 3, 4, 294}, + {0x0, 0, 4, 295}, + {0x0, 0, 16, 299}, + {0xec, 16, 16, 315}, + {0xed, 16, 16, 315}, + {0xee, 16, 16, 315}, + {0xef, 16, 16, 315}, + {0x0, 0, 1, 315}, + {0x0, 0, 1, 316}, + {0x0, 3, 4, 317}, + {0x0, 0, 4, 318}, + {0x0, 0, 13, 322}, + {0xf1, 16, 16, 335}, + {0x0, 0, 1, 335}, + {0x0, 0, 1, 336}, + {0x0, 3, 4, 337}, + {0x0, 0, 3, 338}, + {0x0, 0, 16, 341}, + {0xf2, 16, 16, 357}, + {0xf3, 16, 16, 357}, + {0xf4, 16, 16, 357}, + {0xf5, 16, 16, 357}, + {0xf6, 16, 16, 357}, + {0x0, 0, 11, 357}, + {0x0, 0, 1, 368}, + {0x0, 0, 1, 369}, + {0x0, 3, 4, 370}, + {0x0, 0, 4, 371}, + {0x0, 0, 16, 375}, + {0xf9, 16, 16, 391}, + {0xfa, 16, 16, 391}, + {0xfb, 16, 16, 391}, + {0xfc, 16, 16, 391}, + {0x0, 0, 1, 391}, + {0x0, 0, 1, 392}, + {0x0, 3, 4, 393}, + {0x0, 0, 3, 394}, + {0x0, 0, 11, 397}, + {0xfd, 16, 16, 408}, + {0xff, 16, 16, 408}, + {0x100, 16, 16, 408}, + {0x101, 16, 16, 408}, + {0x102, 16, 16, 408}, + {0x103, 16, 16, 408}, + {0x0, 3, 9, 408}, + {0x104, 16, 16, 414}, + {0x0, 3, 9, 414}, + {0x105, 16, 16, 420}, + {0x0, 1, 13, 420}, + {0x106, 16, 16, 432}, + {0x0, 1, 13, 432}, + {0x107, 16, 16, 444}, + {0x108, 16, 16, 444}, + {0x109, 16, 16, 444}, + {0x10a, 16, 16, 444}, + {0x10b, 16, 16, 444}, + {0x10c, 16, 16, 444}, + {0x10d, 16, 16, 444}, + {0x0, 0, 1, 444}, + {0x0, 0, 1, 445}, + {0x0, 3, 4, 446}, + {0x0, 0, 4, 447}, + {0x0, 7, 13, 451}, + {0x10e, 16, 16, 457}, + {0x0, 0, 1, 457}, + {0x0, 0, 1, 458}, + {0x0, 3, 4, 459}, + {0x0, 0, 4, 460}, + {0x0, 7, 13, 464}, + {0x10f, 16, 16, 470}, + {0x112, 16, 16, 470}, + {0x113, 16, 16, 470}, + {0x114, 16, 16, 470}, + {0x115, 16, 16, 470}, + {0x116, 16, 16, 470}, + {0x117, 16, 16, 470}, + {0x0, 3, 14, 470}, + {0x118, 16, 16, 481}, + {0x0, 3, 14, 481}, + {0x119, 16, 16, 492}, + {0x11a, 16, 16, 492}, + {0x11b, 16, 16, 492}, {0x0, 0, 1, 492}, - {0x0, 3, 4, 493}, - {0x0, 0, 1, 494}, - {0x0, 8, 9, 495}, - {0x1e7b, 16, 16, 496}, - {0x0, 1, 16, 496}, + {0x0, 0, 1, 493}, + {0x0, 3, 4, 494}, + {0x0, 0, 3, 495}, + {0x0, 1, 13, 498}, + {0x11c, 16, 16, 510}, + {0x0, 0, 1, 510}, {0x0, 0, 1, 511}, {0x0, 3, 4, 512}, - {0x0, 0, 1, 513}, - {0x0, 9, 10, 514}, - {0x0, 9, 10, 515}, - {0x30ba, 16, 16, 516}, - {0x2f995, 16, 16, 516}, - {0x0, 0, 15, 516}, - {0x0, 0, 15, 531}, - {0x0, 0, 1, 546}, + {0x0, 0, 3, 513}, + {0x0, 1, 13, 516}, + {0x11d, 16, 16, 528}, + {0x11e, 16, 16, 528}, + {0x11f, 16, 16, 528}, + {0x120, 16, 16, 528}, + {0x121, 16, 16, 528}, + {0x0, 7, 8, 528}, + {0x122, 16, 16, 529}, + {0x0, 7, 8, 529}, + {0x123, 16, 16, 530}, + {0x0, 0, 1, 530}, + {0x0, 0, 1, 531}, + {0x0, 3, 4, 532}, + {0x0, 0, 3, 533}, + {0x0, 2, 13, 536}, + {0x124, 16, 16, 547}, {0x0, 0, 1, 547}, - {0x0, 3, 4, 548}, - {0x0, 0, 1, 549}, - {0x0, 8, 9, 550}, - {0x4df, 16, 16, 551}, - {0x0, 0, 16, 551}, - {0x0, 7, 8, 567}, - {0x2f9d7, 16, 16, 568}, - {0x0, 0, 16, 568}, - {0x0, 14, 15, 584}, - {0x2f86b, 16, 16, 585}, - {0xf94a, 16, 16, 585}, - {0x0, 4, 14, 585}, - {0x0, 9, 13, 595}, - {0x0, 0, 1, 599}, - {0x0, 0, 1, 600}, - {0x0, 13, 14, 601}, - {0x0, 12, 13, 602}, - {0x0, 10, 11, 603}, - {0xddd, 16, 16, 604}, - {0x0, 2, 16, 604}, - {0x0, 1, 15, 618}, - {0xf91a, 16, 16, 632}, - {0x0, 0, 16, 632}, - {0x0, 1, 4, 648}, - {0x0, 9, 10, 651}, - {0x2f943, 16, 16, 652}, - {0x0, 0, 16, 652}, - {0x0, 10, 11, 668}, - {0x0, 8, 9, 669}, - {0x2f9d3, 16, 16, 670}, - {0x0, 3, 16, 670}, - {0x0, 1, 16, 683}, - {0x0, 0, 1, 698}, - {0x0, 0, 1, 699}, - {0x0, 3, 4, 700}, - {0x0, 0, 3, 701}, - {0x0, 1, 13, 704}, - {0x10c, 16, 16, 716}, - {0x0, 1, 16, 716}, - {0x0, 1, 2, 731}, - {0xf958, 16, 16, 732}, - {0x0, 0, 1, 732}, - {0x0, 0, 1, 733}, - {0x0, 3, 4, 734}, - {0x0, 0, 1, 735}, - {0x0, 0, 9, 736}, - {0x4e5, 16, 16, 745}, - {0x439, 16, 16, 745}, - {0x4e3, 16, 16, 745}, - {0x0, 2, 15, 745}, - {0x0, 12, 13, 758}, - {0x2f8c7, 16, 16, 759}, - {0x0, 0, 1, 759}, - {0x0, 3, 4, 760}, - {0x0, 0, 1, 761}, - {0x0, 9, 10, 762}, - {0x0, 9, 10, 763}, - {0x30b4, 16, 16, 764}, - {0x45d, 16, 16, 764}, - {0x0, 0, 16, 764}, - {0x0, 0, 1, 780}, - {0x0, 0, 1, 781}, - {0x0, 3, 4, 782}, - {0x0, 0, 3, 783}, - {0x0, 0, 10, 786}, - {0x1ee8, 16, 16, 796}, - {0x0, 0, 16, 796}, - {0x0, 0, 1, 812}, - {0x0, 0, 1, 813}, - {0x0, 3, 4, 814}, - {0x0, 0, 4, 815}, - {0x0, 3, 14, 819}, - {0x1eb9, 16, 16, 830}, - {0x1eee, 16, 16, 830}, - {0x229, 16, 16, 830}, - {0x1eec, 16, 16, 830}, - {0x119, 16, 16, 830}, - {0x2fa07, 16, 16, 830}, - {0x10a, 16, 16, 830}, - {0x106, 16, 16, 830}, - {0x108, 16, 16, 830}, - {0x0, 1, 16, 830}, - {0x0, 9, 10, 845}, - {0x2f90e, 16, 16, 846}, - {0x0, 0, 14, 846}, - {0x0, 1, 16, 860}, - {0x0, 0, 1, 875}, - {0x0, 0, 1, 876}, - {0x0, 3, 4, 877}, - {0x0, 0, 2, 878}, - {0x0, 4, 5, 880}, - {0x1f59, 16, 16, 881}, - {0x0, 6, 12, 881}, - {0x0, 14, 15, 887}, - {0x2f9f8, 16, 16, 888}, - {0x0, 0, 11, 888}, - {0x0, 0, 1, 899}, - {0x0, 0, 1, 900}, - {0x0, 3, 4, 901}, - {0x0, 0, 4, 902}, - {0x0, 1, 2, 906}, - {0x212, 16, 16, 907}, - {0x0, 0, 1, 907}, - {0x0, 0, 1, 908}, - {0x0, 3, 4, 909}, - {0x0, 0, 3, 910}, - {0x0, 1, 12, 913}, - {0x20f, 16, 16, 924}, - {0x0, 2, 14, 924}, - {0x0, 0, 1, 936}, - {0x0, 0, 1, 937}, - {0x0, 3, 4, 938}, - {0x0, 3, 4, 939}, - {0x0, 8, 9, 940}, - {0x22e1, 16, 16, 941}, - {0x0, 0, 15, 941}, - {0x0, 13, 14, 956}, - {0xf967, 16, 16, 957}, - {0x1e19, 16, 16, 957}, - {0x0, 1, 16, 957}, - {0x0, 10, 11, 972}, - {0xf9f0, 16, 16, 973}, - {0x0, 0, 15, 973}, - {0x0, 2, 3, 988}, - {0x2f807, 16, 16, 989}, - {0x0, 3, 15, 989}, - {0x0, 13, 14, 1001}, - {0x2f8b9, 16, 16, 1002}, - {0x0, 0, 1, 1002}, - {0x0, 0, 1, 1003}, - {0x0, 3, 4, 1004}, - {0x0, 0, 4, 1005}, - {0x0, 0, 16, 1009}, - {0x1d0, 16, 16, 1025}, - {0x0, 0, 14, 1025}, - {0x0, 9, 10, 1039}, - {0x2f974, 16, 16, 1040}, - {0x0, 1, 12, 1040}, - {0x0, 1, 5, 1051}, - {0x0, 5, 6, 1055}, - {0x2f91b, 16, 16, 1056}, + {0x0, 0, 1, 548}, + {0x0, 3, 4, 549}, + {0x0, 0, 4, 550}, + {0x0, 2, 13, 554}, + {0x125, 16, 16, 565}, + {0x128, 16, 16, 565}, + {0x129, 16, 16, 565}, + {0x12a, 16, 16, 565}, + {0x12b, 16, 16, 565}, + {0x12c, 16, 16, 565}, + {0x12d, 16, 16, 565}, + {0x0, 3, 9, 565}, + {0x12e, 16, 16, 571}, + {0x0, 3, 9, 571}, + {0x12f, 16, 16, 577}, + {0x130, 16, 16, 577}, + {0x0, 0, 1, 577}, + {0x0, 0, 1, 578}, + {0x0, 3, 4, 579}, + {0x0, 0, 1, 580}, + {0x0, 2, 3, 581}, + {0x134, 16, 16, 582}, + {0x0, 0, 1, 582}, + {0x0, 0, 1, 583}, + {0x0, 3, 4, 584}, + {0x0, 0, 1, 585}, + {0x0, 2, 13, 586}, + {0x135, 16, 16, 597}, + {0x212a, 0, 1, 597}, + {0x0, 0, 1, 598}, + {0x0, 3, 4, 599}, + {0x0, 0, 4, 600}, + {0x0, 3, 8, 604}, + {0x136, 16, 16, 609}, + {0x0, 0, 1, 609}, + {0x0, 0, 1, 610}, + {0x0, 3, 4, 611}, + {0x0, 0, 4, 612}, + {0x0, 3, 8, 616}, + {0x137, 16, 16, 621}, + {0x0, 0, 1, 621}, + {0x0, 0, 1, 622}, + {0x0, 3, 4, 623}, + {0x0, 0, 4, 624}, + {0x0, 1, 13, 628}, + {0x139, 16, 16, 640}, + {0x0, 0, 1, 640}, + {0x0, 0, 1, 641}, + {0x0, 3, 4, 642}, + {0x0, 0, 4, 643}, + {0x0, 1, 13, 647}, + {0x13a, 16, 16, 659}, + {0x0, 3, 14, 659}, + {0x13b, 16, 16, 670}, + {0x0, 3, 14, 670}, + {0x13c, 16, 16, 681}, + {0x13d, 16, 16, 681}, + {0x13e, 16, 16, 681}, + {0x143, 16, 16, 681}, + {0x144, 16, 16, 681}, + {0x0, 3, 14, 681}, + {0x145, 16, 16, 692}, + {0x0, 3, 14, 692}, + {0x146, 16, 16, 703}, + {0x147, 16, 16, 703}, + {0x148, 16, 16, 703}, + {0x14c, 16, 16, 703}, + {0x14d, 16, 16, 703}, + {0x14e, 16, 16, 703}, + {0x14f, 16, 16, 703}, + {0x150, 16, 16, 703}, + {0x151, 16, 16, 703}, + {0x0, 0, 1, 703}, + {0x0, 0, 1, 704}, + {0x0, 3, 4, 705}, + {0x0, 0, 4, 706}, + {0x0, 1, 16, 710}, + {0x154, 16, 16, 725}, + {0x0, 0, 1, 725}, + {0x0, 0, 1, 726}, + {0x0, 3, 4, 727}, + {0x0, 0, 4, 728}, + {0x0, 1, 16, 732}, + {0x155, 16, 16, 747}, + {0x0, 3, 8, 747}, + {0x156, 16, 16, 752}, + {0x0, 3, 8, 752}, + {0x157, 16, 16, 757}, + {0x158, 16, 16, 757}, + {0x159, 16, 16, 757}, + {0x0, 0, 1, 757}, + {0x0, 0, 1, 758}, + {0x0, 3, 4, 759}, + {0x0, 0, 3, 760}, + {0x0, 1, 13, 763}, + {0x15a, 16, 16, 775}, + {0x0, 0, 1, 775}, + {0x0, 0, 1, 776}, + {0x0, 3, 4, 777}, + {0x0, 0, 3, 778}, + {0x0, 1, 13, 781}, + {0x15b, 16, 16, 793}, + {0x15c, 16, 16, 793}, + {0x15d, 16, 16, 793}, + {0x0, 3, 8, 793}, + {0x15e, 16, 16, 798}, + {0x0, 3, 8, 798}, + {0x15f, 16, 16, 803}, + {0x160, 16, 16, 803}, + {0x161, 16, 16, 803}, + {0x0, 0, 1, 803}, + {0x0, 0, 1, 804}, + {0x0, 3, 4, 805}, + {0x0, 0, 4, 806}, + {0x0, 3, 14, 810}, + {0x162, 16, 16, 821}, + {0x0, 0, 1, 821}, + {0x0, 0, 1, 822}, + {0x0, 3, 4, 823}, + {0x0, 0, 4, 824}, + {0x0, 3, 14, 828}, + {0x163, 16, 16, 839}, + {0x0, 7, 13, 839}, + {0x164, 16, 16, 845}, + {0x0, 7, 13, 845}, + {0x165, 16, 16, 851}, + {0x168, 16, 16, 851}, + {0x169, 16, 16, 851}, + {0x16a, 16, 16, 851}, + {0x16b, 16, 16, 851}, + {0x16c, 16, 16, 851}, + {0x16d, 16, 16, 851}, + {0x16e, 16, 16, 851}, + {0x16f, 16, 16, 851}, + {0x170, 16, 16, 851}, + {0x171, 16, 16, 851}, + {0x0, 3, 14, 851}, + {0x172, 16, 16, 862}, + {0x0, 3, 14, 862}, + {0x173, 16, 16, 873}, + {0x0, 0, 1, 873}, + {0x0, 0, 1, 874}, + {0x0, 3, 4, 875}, + {0x0, 0, 3, 876}, + {0x0, 0, 9, 879}, + {0x174, 16, 16, 888}, + {0x0, 0, 1, 888}, + {0x0, 0, 1, 889}, + {0x0, 3, 4, 890}, + {0x0, 0, 3, 891}, + {0x0, 0, 11, 894}, + {0x175, 16, 16, 905}, + {0x176, 16, 16, 905}, + {0x177, 16, 16, 905}, + {0x178, 16, 16, 905}, + {0x0, 0, 1, 905}, + {0x0, 0, 1, 906}, + {0x0, 3, 4, 907}, + {0x0, 0, 4, 908}, + {0x0, 1, 13, 912}, + {0x179, 16, 16, 924}, + {0x0, 0, 1, 924}, + {0x0, 0, 1, 925}, + {0x0, 3, 4, 926}, + {0x0, 0, 4, 927}, + {0x0, 1, 13, 931}, + {0x17a, 16, 16, 943}, + {0x17b, 16, 16, 943}, + {0x17c, 16, 16, 943}, + {0x17d, 16, 16, 943}, + {0x17e, 16, 16, 943}, + {0x0, 1, 12, 943}, + {0x1a0, 16, 16, 954}, + {0x0, 1, 12, 954}, + {0x1a1, 16, 16, 965}, + {0x0, 1, 12, 965}, + {0x1af, 16, 16, 976}, + {0x0, 1, 12, 976}, + {0x1b0, 16, 16, 987}, + {0x1cd, 16, 16, 987}, + {0x1ce, 16, 16, 987}, + {0x1cf, 16, 16, 987}, + {0x1d0, 16, 16, 987}, + {0x1d1, 16, 16, 987}, + {0x1d2, 16, 16, 987}, + {0x1d3, 16, 16, 987}, + {0x1d4, 16, 16, 987}, + {0x0, 4, 13, 987}, + {0x0, 0, 1, 996}, + {0x0, 0, 1, 997}, + {0x0, 3, 4, 998}, + {0x0, 0, 1, 999}, + {0x0, 0, 13, 1000}, + {0x1d5, 16, 16, 1013}, + {0x0, 4, 13, 1013}, + {0x0, 0, 1, 1022}, + {0x0, 0, 1, 1023}, + {0x0, 3, 4, 1024}, + {0x0, 0, 1, 1025}, + {0x0, 0, 13, 1026}, + {0x1d6, 16, 16, 1039}, + {0x1d7, 16, 16, 1039}, + {0x1d8, 16, 16, 1039}, + {0x1d9, 16, 16, 1039}, + {0x1da, 16, 16, 1039}, + {0x1db, 16, 16, 1039}, + {0x1dc, 16, 16, 1039}, + {0x0, 2, 16, 1039}, + {0x0, 0, 1, 1053}, + {0x0, 0, 1, 1054}, + {0x0, 3, 4, 1055}, {0x0, 0, 1, 1056}, - {0x0, 0, 1, 1057}, - {0x0, 3, 4, 1058}, - {0x0, 3, 4, 1059}, - {0x0, 8, 9, 1060}, - {0x22e0, 16, 16, 1061}, - {0x0, 0, 16, 1061}, - {0x0, 1, 11, 1077}, - {0x2f82e, 16, 16, 1087}, - {0x0, 0, 16, 1087}, + {0x0, 4, 5, 1057}, + {0x1de, 16, 16, 1058}, + {0x0, 2, 16, 1058}, + {0x0, 0, 1, 1072}, + {0x0, 0, 1, 1073}, + {0x0, 3, 4, 1074}, + {0x0, 0, 1, 1075}, + {0x0, 4, 5, 1076}, + {0x1df, 16, 16, 1077}, + {0x0, 2, 12, 1077}, + {0x0, 6, 16, 1087}, + {0x0, 0, 1, 1097}, + {0x0, 0, 1, 1098}, + {0x0, 3, 4, 1099}, + {0x0, 0, 1, 1100}, + {0x0, 4, 5, 1101}, + {0x1e0, 16, 16, 1102}, + {0x0, 0, 1, 1102}, {0x0, 0, 1, 1103}, - {0x0, 0, 1, 1104}, - {0x0, 3, 4, 1105}, - {0x0, 0, 2, 1106}, - {0x0, 3, 5, 1108}, - {0x1f19, 16, 16, 1110}, - {0x0, 0, 10, 1110}, - {0x0, 9, 10, 1120}, - {0x2f8ce, 16, 16, 1121}, - {0x1f18, 16, 16, 1121}, - {0x0, 1, 15, 1121}, - {0x1f7d, 0, 1, 1135}, - {0x0, 0, 1, 1136}, - {0x0, 3, 4, 1137}, - {0x0, 4, 5, 1138}, - {0x0, 5, 6, 1139}, - {0x1ff4, 16, 16, 1140}, - {0x0, 0, 16, 1140}, - {0x0, 9, 10, 1156}, - {0xf9dd, 16, 16, 1157}, - {0x0, 1, 14, 1157}, - {0x2f991, 16, 16, 1170}, - {0x0, 2, 16, 1170}, - {0x0, 3, 4, 1184}, - {0xfa0b, 16, 16, 1185}, - {0x0, 6, 16, 1185}, + {0x0, 3, 4, 1104}, + {0x0, 0, 1, 1105}, + {0x0, 4, 5, 1106}, + {0x1e1, 16, 16, 1107}, + {0x0, 0, 1, 1107}, + {0x0, 0, 1, 1108}, + {0x0, 3, 4, 1109}, + {0x0, 0, 1, 1110}, + {0x0, 1, 5, 1111}, + {0x1e2, 16, 16, 1115}, + {0x0, 0, 1, 1115}, + {0x0, 0, 1, 1116}, + {0x0, 3, 4, 1117}, + {0x0, 0, 1, 1118}, + {0x0, 1, 5, 1119}, + {0x1e3, 16, 16, 1123}, + {0x1e6, 16, 16, 1123}, + {0x1e7, 16, 16, 1123}, + {0x0, 1, 13, 1123}, + {0x1e8, 16, 16, 1135}, + {0x0, 1, 13, 1135}, + {0x1e9, 16, 16, 1147}, + {0x0, 3, 9, 1147}, + {0x1ea, 16, 16, 1153}, + {0x0, 3, 9, 1153}, + {0x1eb, 16, 16, 1159}, + {0x0, 0, 15, 1159}, + {0x0, 10, 12, 1174}, + {0x0, 0, 1, 1176}, + {0x0, 0, 1, 1177}, + {0x0, 3, 4, 1178}, + {0x0, 0, 1, 1179}, + {0x0, 4, 5, 1180}, + {0x1ec, 16, 16, 1181}, + {0x0, 0, 1, 1181}, + {0x0, 0, 1, 1182}, + {0x0, 3, 4, 1183}, + {0x0, 0, 1, 1184}, + {0x0, 4, 5, 1185}, + {0x1ed, 16, 16, 1186}, + {0x0, 0, 8, 1186}, + {0x0, 0, 1, 1194}, {0x0, 0, 1, 1195}, - {0x0, 0, 1, 1196}, - {0x0, 3, 4, 1197}, - {0x0, 0, 5, 1198}, - {0x0, 2, 3, 1203}, - {0x1fcf, 16, 16, 1204}, - {0x0, 0, 15, 1204}, - {0x0, 8, 9, 1219}, - {0x2f9bc, 16, 16, 1220}, - {0x0, 6, 7, 1220}, - {0x0, 3, 4, 1221}, - {0x2f838, 16, 16, 1222}, - {0x0, 0, 7, 1222}, - {0x0, 9, 10, 1229}, - {0x0, 2, 3, 1230}, - {0x2f88f, 16, 16, 1231}, - {0x0, 2, 6, 1231}, - {0x0, 0, 1, 1235}, + {0x0, 3, 4, 1196}, + {0x0, 0, 1, 1197}, + {0x0, 12, 13, 1198}, + {0x1ee, 16, 16, 1199}, + {0x0, 2, 3, 1199}, + {0x0, 0, 1, 1200}, + {0x0, 0, 1, 1201}, + {0x0, 3, 4, 1202}, + {0x0, 0, 1, 1203}, + {0x0, 12, 13, 1204}, + {0x1ef, 16, 16, 1205}, + {0x1f0, 16, 16, 1205}, + {0x1f4, 16, 16, 1205}, + {0x1f5, 16, 16, 1205}, + {0x1f8, 16, 16, 1205}, + {0x1f9, 16, 16, 1205}, + {0x212b, 0, 1, 1205}, + {0x0, 0, 1, 1206}, + {0x0, 3, 4, 1207}, + {0x0, 0, 1, 1208}, + {0x0, 1, 2, 1209}, + {0x1fa, 16, 16, 1210}, + {0x0, 0, 1, 1210}, + {0x0, 0, 1, 1211}, + {0x0, 3, 4, 1212}, + {0x0, 0, 1, 1213}, + {0x0, 1, 2, 1214}, + {0x1fb, 16, 16, 1215}, + {0x1fc, 16, 16, 1215}, + {0x1fd, 16, 16, 1215}, + {0x0, 0, 1, 1215}, + {0x0, 0, 1, 1216}, + {0x0, 3, 4, 1217}, + {0x0, 0, 1, 1218}, + {0x0, 1, 2, 1219}, + {0x1fe, 16, 16, 1220}, + {0x0, 0, 1, 1220}, + {0x0, 0, 1, 1221}, + {0x0, 3, 4, 1222}, + {0x0, 0, 1, 1223}, + {0x0, 1, 2, 1224}, + {0x1ff, 16, 16, 1225}, + {0x200, 16, 16, 1225}, + {0x201, 16, 16, 1225}, + {0x0, 1, 2, 1225}, + {0x202, 16, 16, 1226}, + {0x0, 1, 2, 1226}, + {0x203, 16, 16, 1227}, + {0x204, 16, 16, 1227}, + {0x205, 16, 16, 1227}, + {0x0, 1, 2, 1227}, + {0x206, 16, 16, 1228}, + {0x0, 1, 2, 1228}, + {0x207, 16, 16, 1229}, + {0x208, 16, 16, 1229}, + {0x209, 16, 16, 1229}, + {0x0, 1, 2, 1229}, + {0x20a, 16, 16, 1230}, + {0x0, 1, 2, 1230}, + {0x20b, 16, 16, 1231}, + {0x20c, 16, 16, 1231}, + {0x20d, 16, 16, 1231}, + {0x20e, 16, 16, 1231}, + {0x20f, 16, 16, 1231}, + {0x210, 16, 16, 1231}, + {0x211, 16, 16, 1231}, + {0x0, 1, 2, 1231}, + {0x212, 16, 16, 1232}, + {0x0, 1, 2, 1232}, + {0x213, 16, 16, 1233}, + {0x214, 16, 16, 1233}, + {0x215, 16, 16, 1233}, + {0x216, 16, 16, 1233}, + {0x217, 16, 16, 1233}, + {0x218, 16, 16, 1233}, + {0x219, 16, 16, 1233}, + {0x21a, 16, 16, 1233}, + {0x21b, 16, 16, 1233}, + {0x21e, 16, 16, 1233}, + {0x21f, 16, 16, 1233}, + {0x226, 16, 16, 1233}, + {0x227, 16, 16, 1233}, + {0x228, 16, 16, 1233}, + {0x229, 16, 16, 1233}, + {0x0, 0, 1, 1233}, + {0x0, 0, 1, 1234}, + {0x0, 3, 4, 1235}, {0x0, 0, 1, 1236}, - {0x0, 3, 4, 1237}, - {0x0, 3, 4, 1238}, - {0x0, 8, 9, 1239}, - {0x22ec, 16, 16, 1240}, - {0x0, 0, 7, 1240}, - {0x2f88d, 16, 16, 1247}, - {0x0, 4, 16, 1247}, - {0x0, 14, 15, 1259}, - {0xfa3f, 16, 16, 1260}, - {0x2f98f, 16, 16, 1260}, - {0x0, 8, 12, 1260}, - {0x0, 11, 12, 1264}, - {0x2f9ee, 16, 16, 1265}, - {0xfa35, 16, 16, 1265}, - {0x0, 0, 1, 1265}, - {0x0, 0, 1, 1266}, - {0x0, 3, 4, 1267}, - {0x0, 0, 3, 1268}, - {0x0, 1, 2, 1271}, - {0x203, 16, 16, 1272}, - {0x0, 6, 8, 1272}, - {0x0, 0, 1, 1274}, + {0x0, 4, 5, 1237}, + {0x22a, 16, 16, 1238}, + {0x0, 0, 1, 1238}, + {0x0, 0, 1, 1239}, + {0x0, 3, 4, 1240}, + {0x0, 0, 1, 1241}, + {0x0, 4, 5, 1242}, + {0x22b, 16, 16, 1243}, + {0x0, 0, 1, 1243}, + {0x0, 0, 1, 1244}, + {0x0, 3, 4, 1245}, + {0x0, 0, 1, 1246}, + {0x0, 1, 9, 1247}, + {0x22c, 16, 16, 1255}, + {0x0, 0, 1, 1255}, + {0x0, 0, 1, 1256}, + {0x0, 3, 4, 1257}, + {0x0, 0, 1, 1258}, + {0x0, 1, 9, 1259}, + {0x22d, 16, 16, 1267}, + {0x22e, 16, 16, 1267}, + {0x22f, 16, 16, 1267}, + {0x0, 0, 1, 1267}, + {0x0, 0, 1, 1268}, + {0x0, 3, 4, 1269}, + {0x0, 0, 1, 1270}, + {0x0, 4, 5, 1271}, + {0x230, 16, 16, 1272}, + {0x0, 0, 1, 1272}, + {0x0, 0, 1, 1273}, + {0x0, 3, 4, 1274}, {0x0, 0, 1, 1275}, - {0x0, 13, 14, 1276}, - {0x0, 3, 6, 1277}, - {0x0, 7, 8, 1280}, - {0xd4c, 16, 16, 1281}, - {0x0, 0, 15, 1281}, - {0x0, 2, 3, 1296}, - {0xfa20, 16, 16, 1297}, - {0x0, 3, 13, 1297}, - {0x0, 0, 2, 1307}, - {0x0, 0, 1, 1309}, - {0x0, 0, 1, 1310}, - {0x0, 3, 4, 1311}, + {0x0, 4, 5, 1276}, + {0x231, 16, 16, 1277}, + {0x232, 16, 16, 1277}, + {0x233, 16, 16, 1277}, + {0x0, 0, 14, 1277}, + {0x0, 0, 9, 1291}, + {0x340, 16, 16, 1300}, + {0x341, 16, 16, 1300}, + {0x0, 3, 4, 1300}, + {0x343, 16, 16, 1301}, + {0x0, 0, 1, 1301}, + {0x0, 0, 1, 1302}, + {0x0, 3, 4, 1303}, + {0x0, 0, 1, 1304}, + {0x0, 1, 2, 1305}, + {0x344, 16, 16, 1306}, + {0x0, 9, 10, 1306}, + {0x374, 16, 16, 1307}, + {0x0, 11, 15, 1307}, + {0x37e, 16, 16, 1311}, + {0x0, 8, 9, 1311}, {0x0, 0, 1, 1312}, - {0x0, 2, 7, 1313}, - {0x1eac, 16, 16, 1318}, - {0x0, 0, 16, 1318}, - {0x0, 3, 4, 1334}, - {0x2f874, 16, 16, 1335}, - {0x1eb6, 16, 16, 1335}, - {0x0, 0, 1, 1335}, - {0x0, 0, 1, 1336}, - {0x0, 3, 4, 1337}, - {0x0, 4, 5, 1338}, - {0x0, 5, 6, 1339}, - {0x1f9c, 16, 16, 1340}, - {0x0, 2, 12, 1340}, - {0x0, 6, 16, 1350}, - {0x0, 0, 1, 1360}, - {0x0, 0, 1, 1361}, - {0x0, 3, 4, 1362}, - {0x0, 0, 1, 1363}, - {0x0, 6, 7, 1364}, - {0x1e1d, 16, 16, 1365}, - {0x0, 1, 14, 1365}, - {0x0, 0, 14, 1378}, - {0x2f918, 16, 16, 1392}, - {0x0, 2, 14, 1392}, - {0x0, 9, 10, 1404}, - {0x2f975, 16, 16, 1405}, - {0x0, 1, 10, 1405}, - {0x0, 11, 12, 1414}, - {0xfa0a, 16, 16, 1415}, - {0x0, 0, 16, 1415}, - {0x0, 2, 4, 1431}, - {0xf992, 16, 16, 1433}, - {0xfa47, 16, 16, 1433}, - {0x0, 2, 15, 1433}, - {0x0, 13, 16, 1446}, - {0xfa53, 16, 16, 1449}, - {0xfa52, 16, 16, 1449}, - {0xfa1b, 16, 16, 1449}, + {0x0, 0, 1, 1313}, + {0x0, 3, 4, 1314}, + {0x0, 0, 5, 1315}, + {0x0, 0, 2, 1320}, + {0x385, 16, 16, 1322}, + {0x0, 0, 16, 1322}, + {0x0, 0, 1, 1338}, + {0x0, 0, 1, 1339}, + {0x0, 3, 4, 1340}, + {0x0, 0, 5, 1341}, + {0x0, 0, 7, 1346}, + {0x386, 16, 16, 1353}, + {0x0, 4, 8, 1353}, + {0x387, 16, 16, 1357}, + {0x0, 0, 1, 1357}, + {0x0, 0, 1, 1358}, + {0x0, 3, 4, 1359}, + {0x0, 0, 2, 1360}, + {0x0, 0, 2, 1362}, + {0x388, 16, 16, 1364}, + {0x0, 0, 1, 1364}, + {0x0, 0, 1, 1365}, + {0x0, 3, 4, 1366}, + {0x0, 0, 5, 1367}, + {0x0, 0, 2, 1372}, + {0x389, 16, 16, 1374}, + {0x0, 0, 1, 1374}, + {0x0, 0, 1, 1375}, + {0x0, 3, 4, 1376}, + {0x0, 0, 2, 1377}, + {0x0, 0, 9, 1379}, + {0x38a, 16, 16, 1388}, + {0x0, 0, 1, 1388}, + {0x0, 0, 1, 1389}, + {0x0, 3, 4, 1390}, + {0x0, 0, 2, 1391}, + {0x0, 0, 2, 1393}, + {0x38c, 16, 16, 1395}, + {0x0, 1, 16, 1395}, + {0x0, 0, 1, 1410}, + {0x0, 0, 1, 1411}, + {0x0, 3, 4, 1412}, + {0x0, 0, 2, 1413}, + {0x0, 0, 9, 1415}, + {0x38e, 16, 16, 1424}, + {0x2126, 0, 1, 1424}, + {0x0, 0, 1, 1425}, + {0x0, 3, 4, 1426}, + {0x0, 0, 5, 1427}, + {0x0, 0, 2, 1432}, + {0x38f, 16, 16, 1434}, + {0x0, 1, 15, 1434}, + {0x0, 0, 1, 1448}, {0x0, 0, 1, 1449}, {0x0, 3, 4, 1450}, - {0x0, 0, 1, 1451}, - {0x0, 9, 10, 1452}, - {0x0, 9, 10, 1453}, - {0x30b2, 16, 16, 1454}, - {0x0, 0, 1, 1454}, - {0x0, 0, 1, 1455}, - {0x0, 3, 4, 1456}, - {0x0, 0, 5, 1457}, - {0x0, 0, 2, 1462}, - {0x1fca, 16, 16, 1464}, - {0x389, 16, 16, 1464}, - {0x0, 1, 16, 1464}, - {0x0, 12, 13, 1479}, - {0x2f93e, 16, 16, 1480}, - {0x0, 3, 15, 1480}, - {0x0, 3, 9, 1492}, - {0x2f968, 16, 16, 1498}, - {0x0, 0, 1, 1498}, - {0x0, 0, 1, 1499}, - {0x0, 3, 4, 1500}, - {0x0, 0, 5, 1501}, - {0x0, 2, 6, 1506}, - {0x1f2e, 16, 16, 1510}, - {0x1f98, 16, 16, 1510}, - {0x0, 6, 12, 1510}, - {0x0, 0, 1, 1516}, - {0x2f804, 16, 16, 1517}, - {0x2f919, 16, 16, 1517}, - {0x2f835, 16, 16, 1517}, - {0x0, 1, 2, 1517}, - {0x0, 5, 6, 1518}, - {0x2f824, 16, 16, 1519}, - {0x0, 0, 16, 1519}, - {0x1fe3, 16, 16, 1535}, - {0x0, 2, 4, 1535}, - {0x0, 0, 1, 1537}, - {0x0, 0, 1, 1538}, - {0x0, 3, 4, 1539}, - {0x0, 0, 1, 1540}, - {0x0, 7, 8, 1541}, - {0x1e69, 16, 16, 1542}, - {0x1fbe, 0, 1, 1542}, - {0x0, 0, 16, 1543}, + {0x0, 0, 5, 1451}, + {0x0, 0, 2, 1456}, + {0x390, 16, 16, 1458}, + {0x3aa, 16, 16, 1458}, + {0x3ab, 16, 16, 1458}, + {0x0, 0, 16, 1458}, + {0x0, 0, 1, 1474}, + {0x0, 0, 1, 1475}, + {0x0, 3, 4, 1476}, + {0x0, 0, 5, 1477}, + {0x0, 0, 7, 1482}, + {0x3ac, 16, 16, 1489}, + {0x0, 0, 1, 1489}, + {0x0, 0, 1, 1490}, + {0x0, 3, 4, 1491}, + {0x0, 0, 2, 1492}, + {0x0, 0, 2, 1494}, + {0x3ad, 16, 16, 1496}, + {0x0, 0, 1, 1496}, + {0x0, 0, 1, 1497}, + {0x0, 3, 4, 1498}, + {0x0, 0, 5, 1499}, + {0x0, 0, 2, 1504}, + {0x3ae, 16, 16, 1506}, + {0x1fbe, 0, 1, 1506}, + {0x0, 0, 1, 1507}, + {0x0, 3, 4, 1508}, + {0x0, 0, 5, 1509}, + {0x0, 0, 9, 1514}, + {0x3af, 16, 16, 1523}, + {0x0, 0, 1, 1523}, + {0x0, 0, 1, 1524}, + {0x0, 3, 4, 1525}, + {0x0, 0, 5, 1526}, + {0x0, 0, 2, 1531}, + {0x3b0, 16, 16, 1533}, + {0x3ca, 16, 16, 1533}, + {0x0, 0, 1, 1533}, + {0x0, 0, 1, 1534}, + {0x0, 3, 4, 1535}, + {0x0, 0, 5, 1536}, + {0x0, 0, 9, 1541}, + {0x3cb, 16, 16, 1550}, + {0x0, 0, 1, 1550}, + {0x0, 0, 1, 1551}, + {0x0, 3, 4, 1552}, + {0x0, 0, 2, 1553}, + {0x0, 0, 2, 1555}, + {0x3cc, 16, 16, 1557}, + {0x3cd, 16, 16, 1557}, + {0x0, 0, 1, 1557}, + {0x0, 0, 1, 1558}, {0x0, 3, 4, 1559}, - {0x2f96c, 16, 16, 1560}, - {0x0, 0, 15, 1560}, - {0x0, 10, 11, 1575}, - {0x2f85d, 16, 16, 1576}, - {0x0, 3, 11, 1576}, - {0x2f836, 16, 16, 1584}, - {0x0, 12, 13, 1584}, - {0x2f92f, 16, 16, 1585}, - {0x0, 0, 10, 1585}, - {0x0, 0, 1, 1595}, - {0x0, 0, 1, 1596}, - {0x0, 3, 4, 1597}, - {0x0, 0, 5, 1598}, - {0x0, 2, 3, 1603}, - {0x1f5f, 16, 16, 1604}, - {0x0, 2, 3, 1604}, - {0x0, 15, 16, 1605}, - {0x2f9d8, 16, 16, 1606}, - {0x0, 1, 16, 1606}, - {0x0, 0, 12, 1621}, - {0xf932, 16, 16, 1633}, - {0x0, 0, 16, 1633}, - {0x0, 11, 12, 1649}, - {0xfa6a, 16, 16, 1650}, - {0x0, 2, 16, 1650}, - {0x0, 2, 4, 1664}, - {0xfa68, 16, 16, 1666}, - {0x0, 2, 16, 1666}, - {0x212b, 0, 1, 1680}, - {0x0, 0, 1, 1681}, - {0x0, 3, 4, 1682}, - {0x0, 0, 1, 1683}, - {0x0, 1, 2, 1684}, - {0x1fa, 16, 16, 1685}, - {0x0, 1, 16, 1685}, - {0x0, 0, 1, 1700}, - {0x0, 3, 4, 1701}, - {0x0, 0, 1, 1702}, - {0x0, 9, 10, 1703}, - {0x0, 9, 10, 1704}, - {0x30c9, 16, 16, 1705}, - {0xf9ea, 16, 16, 1705}, - {0x0, 2, 16, 1705}, + {0x0, 0, 5, 1560}, + {0x0, 0, 2, 1565}, + {0x3ce, 16, 16, 1567}, + {0x0, 2, 3, 1567}, + {0x0, 0, 1, 1568}, + {0x0, 0, 1, 1569}, + {0x0, 3, 4, 1570}, + {0x0, 0, 1, 1571}, + {0x0, 1, 9, 1572}, + {0x3d3, 16, 16, 1580}, + {0x3d4, 16, 16, 1580}, + {0x0, 0, 15, 1580}, + {0x0, 0, 15, 1595}, + {0x0, 0, 1, 1610}, + {0x0, 0, 1, 1611}, + {0x0, 3, 4, 1612}, + {0x0, 0, 1, 1613}, + {0x0, 0, 9, 1614}, + {0x400, 16, 16, 1623}, + {0x401, 16, 16, 1623}, + {0x0, 0, 1, 1623}, + {0x0, 0, 1, 1624}, + {0x0, 3, 4, 1625}, + {0x0, 0, 1, 1626}, + {0x0, 1, 2, 1627}, + {0x403, 16, 16, 1628}, + {0x0, 6, 7, 1628}, + {0x0, 0, 1, 1629}, + {0x0, 0, 1, 1630}, + {0x0, 3, 4, 1631}, + {0x0, 0, 1, 1632}, + {0x0, 8, 9, 1633}, + {0x407, 16, 16, 1634}, + {0x0, 0, 1, 1634}, + {0x0, 0, 1, 1635}, + {0x0, 3, 4, 1636}, + {0x0, 0, 1, 1637}, + {0x0, 1, 2, 1638}, + {0x40c, 16, 16, 1639}, + {0x0, 0, 1, 1639}, + {0x0, 0, 1, 1640}, + {0x0, 3, 4, 1641}, + {0x0, 0, 1, 1642}, + {0x0, 0, 9, 1643}, + {0x40d, 16, 16, 1652}, + {0x0, 3, 14, 1652}, + {0x0, 0, 1, 1663}, + {0x0, 0, 1, 1664}, + {0x0, 3, 4, 1665}, + {0x0, 0, 1, 1666}, + {0x0, 4, 12, 1667}, + {0x40e, 16, 16, 1675}, + {0x419, 16, 16, 1675}, + {0x0, 0, 15, 1675}, + {0x0, 0, 1, 1690}, + {0x0, 0, 1, 1691}, + {0x0, 3, 4, 1692}, + {0x0, 0, 1, 1693}, + {0x0, 0, 9, 1694}, + {0x439, 16, 16, 1703}, + {0x0, 0, 1, 1703}, + {0x0, 0, 1, 1704}, + {0x0, 3, 4, 1705}, + {0x0, 0, 1, 1706}, + {0x0, 0, 9, 1707}, + {0x450, 16, 16, 1716}, + {0x451, 16, 16, 1716}, + {0x0, 0, 1, 1716}, + {0x0, 0, 1, 1717}, + {0x0, 3, 4, 1718}, {0x0, 0, 1, 1719}, - {0x0, 0, 1, 1720}, - {0x0, 3, 4, 1721}, + {0x0, 1, 2, 1720}, + {0x453, 16, 16, 1721}, + {0x0, 6, 7, 1721}, {0x0, 0, 1, 1722}, - {0x0, 1, 2, 1723}, - {0x1e09, 16, 16, 1724}, - {0x0, 1, 11, 1724}, - {0x0, 2, 3, 1734}, - {0x2f8e1, 16, 16, 1735}, - {0x0, 0, 14, 1735}, - {0x0, 0, 1, 1749}, - {0x0, 3, 4, 1750}, - {0x0, 0, 1, 1751}, - {0x0, 9, 10, 1752}, - {0x0, 9, 10, 1753}, - {0x30f9, 16, 16, 1754}, - {0x0, 13, 14, 1754}, - {0xf986, 16, 16, 1755}, - {0x0, 0, 1, 1755}, - {0x0, 0, 1, 1756}, - {0x0, 3, 4, 1757}, - {0x0, 0, 4, 1758}, - {0x0, 7, 8, 1762}, - {0x1e03, 16, 16, 1763}, + {0x0, 0, 1, 1723}, + {0x0, 3, 4, 1724}, + {0x0, 0, 1, 1725}, + {0x0, 8, 9, 1726}, + {0x457, 16, 16, 1727}, + {0x0, 0, 1, 1727}, + {0x0, 0, 1, 1728}, + {0x0, 3, 4, 1729}, + {0x0, 0, 1, 1730}, + {0x0, 1, 2, 1731}, + {0x45c, 16, 16, 1732}, + {0x45d, 16, 16, 1732}, + {0x0, 3, 14, 1732}, + {0x0, 0, 1, 1743}, + {0x0, 0, 1, 1744}, + {0x0, 3, 4, 1745}, + {0x0, 0, 1, 1746}, + {0x0, 4, 12, 1747}, + {0x45e, 16, 16, 1755}, + {0x0, 4, 6, 1755}, + {0x0, 0, 1, 1757}, + {0x0, 0, 1, 1758}, + {0x0, 3, 4, 1759}, + {0x0, 0, 1, 1760}, + {0x0, 15, 16, 1761}, + {0x476, 16, 16, 1762}, + {0x0, 0, 1, 1762}, {0x0, 0, 1, 1763}, - {0x0, 0, 1, 1764}, - {0x0, 3, 4, 1765}, - {0x0, 0, 1, 1766}, - {0x0, 1, 5, 1767}, - {0x1fd, 16, 16, 1771}, - {0x0, 0, 1, 1771}, - {0x0, 0, 1, 1772}, - {0x0, 3, 4, 1773}, - {0x0, 3, 4, 1774}, - {0x0, 8, 9, 1775}, - {0x2281, 16, 16, 1776}, - {0x1e3, 16, 16, 1776}, - {0x0, 2, 12, 1776}, - {0x0, 0, 1, 1786}, - {0x0, 0, 1, 1787}, - {0x0, 3, 4, 1788}, - {0x0, 3, 4, 1789}, - {0x0, 8, 9, 1790}, - {0x22af, 16, 16, 1791}, - {0xf96b, 16, 16, 1791}, - {0x0, 2, 16, 1791}, - {0x0, 3, 10, 1805}, - {0x0, 2, 3, 1812}, - {0x2f937, 16, 16, 1813}, - {0x0, 2, 12, 1813}, - {0x0, 2, 3, 1823}, - {0xf98d, 16, 16, 1824}, - {0x0, 6, 16, 1824}, + {0x0, 3, 4, 1764}, + {0x0, 0, 1, 1765}, + {0x0, 15, 16, 1766}, + {0x477, 16, 16, 1767}, + {0x0, 0, 1, 1767}, + {0x0, 0, 1, 1768}, + {0x0, 3, 4, 1769}, + {0x0, 0, 1, 1770}, + {0x0, 6, 9, 1771}, + {0x4c1, 16, 16, 1774}, + {0x0, 0, 1, 1774}, + {0x0, 0, 1, 1775}, + {0x0, 3, 4, 1776}, + {0x0, 0, 1, 1777}, + {0x0, 6, 9, 1778}, + {0x4c2, 16, 16, 1781}, + {0x0, 0, 1, 1781}, + {0x0, 0, 1, 1782}, + {0x0, 3, 4, 1783}, + {0x0, 0, 1, 1784}, + {0x0, 6, 9, 1785}, + {0x4d0, 16, 16, 1788}, + {0x0, 0, 1, 1788}, + {0x0, 0, 1, 1789}, + {0x0, 3, 4, 1790}, + {0x0, 0, 1, 1791}, + {0x0, 6, 9, 1792}, + {0x4d1, 16, 16, 1795}, + {0x4d2, 16, 16, 1795}, + {0x4d3, 16, 16, 1795}, + {0x4d6, 16, 16, 1795}, + {0x4d7, 16, 16, 1795}, + {0x0, 8, 10, 1795}, + {0x0, 0, 1, 1797}, + {0x0, 0, 1, 1798}, + {0x0, 3, 4, 1799}, + {0x0, 0, 1, 1800}, + {0x0, 8, 9, 1801}, + {0x4da, 16, 16, 1802}, + {0x0, 0, 1, 1802}, + {0x0, 0, 1, 1803}, + {0x0, 3, 4, 1804}, + {0x0, 0, 1, 1805}, + {0x0, 8, 9, 1806}, + {0x4db, 16, 16, 1807}, + {0x4dc, 16, 16, 1807}, + {0x4dd, 16, 16, 1807}, + {0x0, 0, 1, 1807}, + {0x0, 0, 1, 1808}, + {0x0, 3, 4, 1809}, + {0x0, 0, 1, 1810}, + {0x0, 8, 9, 1811}, + {0x4de, 16, 16, 1812}, + {0x0, 0, 1, 1812}, + {0x0, 0, 1, 1813}, + {0x0, 3, 4, 1814}, + {0x0, 0, 1, 1815}, + {0x0, 8, 9, 1816}, + {0x4df, 16, 16, 1817}, + {0x4e2, 16, 16, 1817}, + {0x4e3, 16, 16, 1817}, + {0x4e4, 16, 16, 1817}, + {0x4e5, 16, 16, 1817}, + {0x0, 0, 1, 1817}, + {0x0, 0, 1, 1818}, + {0x0, 3, 4, 1819}, + {0x0, 0, 1, 1820}, + {0x0, 8, 9, 1821}, + {0x4e6, 16, 16, 1822}, + {0x0, 0, 1, 1822}, + {0x0, 0, 1, 1823}, + {0x0, 3, 4, 1824}, + {0x0, 0, 1, 1825}, + {0x0, 8, 9, 1826}, + {0x4e7, 16, 16, 1827}, + {0x0, 8, 10, 1827}, + {0x0, 0, 1, 1829}, + {0x0, 0, 1, 1830}, + {0x0, 3, 4, 1831}, + {0x0, 0, 1, 1832}, + {0x0, 8, 9, 1833}, + {0x4ea, 16, 16, 1834}, {0x0, 0, 1, 1834}, - {0x0, 3, 4, 1835}, - {0x0, 0, 1, 1836}, - {0x0, 9, 10, 1837}, - {0x0, 9, 10, 1838}, - {0x30b0, 16, 16, 1839}, + {0x0, 0, 1, 1835}, + {0x0, 3, 4, 1836}, + {0x0, 0, 1, 1837}, + {0x0, 8, 9, 1838}, + {0x4eb, 16, 16, 1839}, {0x0, 0, 1, 1839}, {0x0, 0, 1, 1840}, {0x0, 3, 4, 1841}, - {0x0, 0, 3, 1842}, - {0x0, 1, 8, 1845}, - {0x1e3e, 16, 16, 1852}, - {0x1e40, 16, 16, 1852}, - {0x0, 8, 9, 1852}, - {0xfa65, 16, 16, 1853}, - {0x0, 6, 16, 1853}, - {0x0, 10, 11, 1863}, - {0xf93a, 16, 16, 1864}, - {0x0, 0, 16, 1864}, - {0x0, 0, 1, 1880}, - {0x0, 0, 1, 1881}, - {0x0, 3, 4, 1882}, - {0x0, 4, 5, 1883}, - {0x0, 5, 6, 1884}, - {0x1faa, 16, 16, 1885}, - {0x0, 0, 1, 1885}, - {0x0, 2, 4, 1886}, - {0x2001, 16, 16, 1888}, - {0x2000, 16, 16, 1888}, - {0x0, 0, 16, 1888}, - {0x0, 11, 12, 1904}, - {0x0, 8, 9, 1905}, - {0x2f897, 16, 16, 1906}, - {0x0, 2, 15, 1906}, - {0x0, 4, 5, 1919}, - {0x2f934, 16, 16, 1920}, - {0x0, 1, 13, 1920}, - {0x0, 11, 12, 1932}, - {0x2f848, 16, 16, 1933}, - {0x0, 0, 16, 1933}, + {0x0, 0, 1, 1842}, + {0x0, 8, 9, 1843}, + {0x4ec, 16, 16, 1844}, + {0x0, 0, 1, 1844}, + {0x0, 0, 1, 1845}, + {0x0, 3, 4, 1846}, + {0x0, 0, 1, 1847}, + {0x0, 8, 9, 1848}, + {0x4ed, 16, 16, 1849}, + {0x4ee, 16, 16, 1849}, + {0x4ef, 16, 16, 1849}, + {0x4f0, 16, 16, 1849}, + {0x4f1, 16, 16, 1849}, + {0x4f2, 16, 16, 1849}, + {0x4f3, 16, 16, 1849}, + {0x0, 0, 1, 1849}, + {0x0, 0, 1, 1850}, + {0x0, 3, 4, 1851}, + {0x0, 0, 1, 1852}, + {0x0, 8, 9, 1853}, + {0x4f4, 16, 16, 1854}, + {0x0, 0, 1, 1854}, + {0x0, 0, 1, 1855}, + {0x0, 3, 4, 1856}, + {0x0, 0, 1, 1857}, + {0x0, 8, 9, 1858}, + {0x4f5, 16, 16, 1859}, + {0x0, 0, 1, 1859}, + {0x0, 0, 1, 1860}, + {0x0, 3, 4, 1861}, + {0x0, 0, 1, 1862}, + {0x0, 8, 9, 1863}, + {0x4f8, 16, 16, 1864}, + {0x0, 0, 1, 1864}, + {0x0, 0, 1, 1865}, + {0x0, 3, 4, 1866}, + {0x0, 0, 1, 1867}, + {0x0, 8, 9, 1868}, + {0x4f9, 16, 16, 1869}, + {0x0, 2, 14, 1869}, + {0x0, 7, 8, 1881}, + {0x0, 0, 1, 1882}, + {0x0, 0, 1, 1883}, + {0x0, 6, 7, 1884}, + {0x0, 5, 6, 1885}, + {0x0, 3, 6, 1886}, + {0x622, 16, 16, 1889}, + {0x623, 16, 16, 1889}, + {0x0, 8, 11, 1889}, + {0x0, 0, 1, 1892}, + {0x0, 0, 1, 1893}, + {0x0, 6, 7, 1894}, + {0x0, 5, 6, 1895}, + {0x0, 4, 5, 1896}, + {0x624, 16, 16, 1897}, + {0x625, 16, 16, 1897}, + {0x0, 0, 1, 1897}, + {0x0, 0, 1, 1898}, + {0x0, 6, 7, 1899}, + {0x0, 5, 6, 1900}, + {0x0, 4, 5, 1901}, + {0x626, 16, 16, 1902}, + {0x0, 2, 6, 1902}, + {0x0, 0, 1, 1906}, + {0x0, 0, 1, 1907}, + {0x0, 6, 7, 1908}, + {0x0, 5, 6, 1909}, + {0x0, 4, 5, 1910}, + {0x6c0, 16, 16, 1911}, + {0x0, 1, 2, 1911}, + {0x0, 0, 1, 1912}, + {0x0, 0, 1, 1913}, + {0x0, 6, 7, 1914}, + {0x0, 5, 6, 1915}, + {0x0, 4, 5, 1916}, + {0x6c2, 16, 16, 1917}, + {0x0, 0, 1, 1917}, + {0x0, 0, 1, 1918}, + {0x0, 6, 7, 1919}, + {0x0, 5, 6, 1920}, + {0x0, 4, 5, 1921}, + {0x6d3, 16, 16, 1922}, + {0x0, 2, 13, 1922}, + {0x0, 8, 9, 1933}, + {0x0, 0, 1, 1934}, + {0x0, 0, 1, 1935}, + {0x0, 9, 10, 1936}, + {0x0, 3, 4, 1937}, + {0x0, 12, 13, 1938}, + {0x929, 16, 16, 1939}, + {0x0, 0, 4, 1939}, + {0x0, 0, 1, 1943}, + {0x0, 0, 1, 1944}, + {0x0, 9, 10, 1945}, + {0x0, 3, 4, 1946}, + {0x0, 12, 13, 1947}, + {0x931, 16, 16, 1948}, + {0x0, 0, 1, 1948}, {0x0, 0, 1, 1949}, - {0x0, 0, 1, 1950}, + {0x0, 9, 10, 1950}, {0x0, 3, 4, 1951}, - {0x0, 0, 5, 1952}, - {0x0, 2, 6, 1957}, - {0x1f07, 16, 16, 1961}, - {0x1f81, 16, 16, 1961}, - {0x0, 0, 1, 1961}, - {0x0, 0, 1, 1962}, - {0x0, 3, 4, 1963}, - {0x0, 0, 4, 1964}, - {0x0, 7, 13, 1968}, - {0x1e0b, 16, 16, 1974}, - {0x0, 0, 1, 1974}, - {0x0, 0, 1, 1975}, - {0x0, 3, 4, 1976}, - {0x0, 4, 5, 1977}, - {0x0, 5, 6, 1978}, - {0x1f9b, 16, 16, 1979}, - {0x0, 0, 1, 1979}, - {0x0, 0, 1, 1980}, - {0x0, 3, 4, 1981}, - {0x0, 0, 3, 1982}, - {0x0, 3, 4, 1985}, - {0x1e43, 16, 16, 1986}, - {0x0, 8, 9, 1986}, - {0x0, 0, 1, 1987}, - {0x0, 0, 1, 1988}, - {0x0, 3, 4, 1989}, - {0x0, 0, 5, 1990}, - {0x0, 0, 2, 1995}, - {0x1fed, 16, 16, 1997}, - {0x385, 16, 16, 1997}, - {0x0, 2, 4, 1997}, - {0x0, 0, 1, 1999}, - {0x0, 0, 1, 2000}, - {0x0, 3, 4, 2001}, - {0x0, 0, 1, 2002}, - {0x0, 0, 2, 2003}, - {0x1e17, 16, 16, 2005}, - {0x0, 1, 15, 2005}, - {0x0, 14, 15, 2019}, - {0x2f95f, 16, 16, 2020}, - {0x0, 0, 1, 2020}, - {0x0, 0, 1, 2021}, - {0x0, 3, 4, 2022}, - {0x0, 0, 5, 2023}, - {0x0, 0, 2, 2028}, - {0x1f53, 16, 16, 2030}, - {0x1f55, 16, 16, 2030}, - {0x0, 0, 1, 2030}, - {0x0, 0, 1, 2031}, - {0x0, 3, 4, 2032}, - {0x0, 3, 4, 2033}, - {0x0, 8, 9, 2034}, - {0x22ad, 16, 16, 2035}, - {0x0, 2, 12, 2035}, - {0x0, 0, 1, 2045}, - {0x0, 3, 4, 2046}, - {0x0, 0, 1, 2047}, - {0x0, 9, 10, 2048}, - {0x0, 9, 11, 2049}, - {0x3079, 16, 16, 2051}, - {0x0, 0, 1, 2051}, - {0x0, 3, 4, 2052}, + {0x0, 12, 13, 1952}, + {0x934, 16, 16, 1953}, + {0x0, 7, 8, 1953}, + {0x0, 0, 1, 1954}, + {0x0, 0, 1, 1955}, + {0x0, 9, 10, 1956}, + {0x0, 11, 14, 1957}, + {0x0, 14, 15, 1960}, + {0x9cb, 16, 16, 1961}, + {0x0, 7, 8, 1961}, + {0x9cc, 16, 16, 1962}, + {0x0, 4, 13, 1962}, + {0x0, 7, 8, 1971}, + {0x0, 0, 1, 1972}, + {0x0, 0, 1, 1973}, + {0x0, 11, 12, 1974}, + {0x0, 3, 6, 1975}, + {0x0, 6, 8, 1978}, + {0xb48, 16, 16, 1980}, + {0x0, 14, 15, 1980}, + {0xb4b, 16, 16, 1981}, + {0xb4c, 16, 16, 1981}, + {0x0, 2, 3, 1981}, + {0x0, 0, 1, 1982}, + {0x0, 0, 1, 1983}, + {0x0, 11, 12, 1984}, + {0x0, 13, 14, 1985}, + {0x0, 7, 8, 1986}, + {0xb94, 16, 16, 1987}, + {0x0, 6, 8, 1987}, + {0x0, 0, 1, 1989}, + {0x0, 0, 1, 1990}, + {0x0, 11, 12, 1991}, + {0x0, 11, 14, 1992}, + {0x0, 14, 15, 1995}, + {0xbca, 16, 16, 1996}, + {0x0, 0, 1, 1996}, + {0x0, 0, 1, 1997}, + {0x0, 11, 12, 1998}, + {0x0, 11, 12, 1999}, + {0x0, 14, 15, 2000}, + {0xbcb, 16, 16, 2001}, + {0x0, 7, 8, 2001}, + {0xbcc, 16, 16, 2002}, + {0x0, 4, 13, 2002}, + {0x0, 6, 7, 2011}, + {0x0, 0, 1, 2012}, + {0x0, 0, 1, 2013}, + {0x0, 12, 13, 2014}, + {0x0, 5, 6, 2015}, + {0x0, 6, 7, 2016}, + {0xc48, 16, 16, 2017}, + {0x0, 15, 16, 2017}, + {0x0, 0, 1, 2018}, + {0x0, 0, 1, 2019}, + {0x0, 12, 13, 2020}, + {0x0, 13, 14, 2021}, + {0x0, 5, 6, 2022}, + {0xcc0, 16, 16, 2023}, + {0x0, 6, 11, 2023}, + {0x0, 0, 1, 2028}, + {0x0, 0, 1, 2029}, + {0x0, 12, 13, 2030}, + {0x0, 12, 14, 2031}, + {0x0, 5, 7, 2033}, + {0xcc7, 16, 16, 2035}, + {0xcc8, 16, 16, 2035}, + {0x0, 2, 3, 2035}, + {0xcca, 16, 16, 2036}, + {0x0, 0, 1, 2036}, + {0x0, 0, 1, 2037}, + {0x0, 12, 13, 2038}, + {0x0, 13, 14, 2039}, + {0x0, 5, 6, 2040}, + {0xccb, 16, 16, 2041}, + {0x0, 4, 14, 2041}, + {0x0, 6, 8, 2051}, {0x0, 0, 1, 2053}, - {0x0, 9, 10, 2054}, - {0x0, 9, 11, 2055}, - {0x307d, 16, 16, 2057}, - {0x0, 3, 8, 2057}, - {0x1e5a, 16, 16, 2062}, - {0x156, 16, 16, 2062}, - {0x0, 12, 13, 2062}, - {0xf982, 16, 16, 2063}, - {0x0, 10, 12, 2063}, - {0x0, 0, 1, 2065}, - {0x0, 0, 1, 2066}, - {0x0, 3, 4, 2067}, - {0x0, 0, 1, 2068}, - {0x0, 4, 5, 2069}, - {0x1ec, 16, 16, 2070}, - {0x0, 4, 14, 2070}, - {0x0, 3, 4, 2080}, - {0xfa64, 16, 16, 2081}, + {0x0, 0, 1, 2054}, + {0x0, 13, 14, 2055}, + {0x0, 3, 6, 2056}, + {0x0, 14, 15, 2059}, + {0xd4a, 16, 16, 2060}, + {0x0, 0, 1, 2060}, + {0x0, 0, 1, 2061}, + {0x0, 13, 14, 2062}, + {0x0, 3, 4, 2063}, + {0x0, 14, 15, 2064}, + {0xd4b, 16, 16, 2065}, + {0x0, 7, 8, 2065}, + {0xd4c, 16, 16, 2066}, + {0x0, 9, 13, 2066}, + {0x0, 0, 1, 2070}, + {0x0, 0, 1, 2071}, + {0x0, 13, 14, 2072}, + {0x0, 12, 14, 2073}, + {0x0, 10, 16, 2075}, + {0xdda, 16, 16, 2081}, + {0xddc, 16, 16, 2081}, {0x0, 0, 1, 2081}, {0x0, 0, 1, 2082}, - {0x0, 3, 4, 2083}, - {0x0, 4, 5, 2084}, - {0x0, 5, 6, 2085}, - {0x1f8e, 16, 16, 2086}, - {0x0, 7, 8, 2086}, - {0xf99c, 16, 16, 2087}, - {0x0, 0, 10, 2087}, + {0x0, 13, 14, 2083}, + {0x0, 12, 13, 2084}, + {0x0, 10, 11, 2085}, + {0xddd, 16, 16, 2086}, + {0x0, 15, 16, 2086}, + {0xdde, 16, 16, 2087}, + {0x0, 7, 8, 2087}, + {0x0, 1, 2, 2088}, + {0x0, 0, 1, 2089}, + {0x0, 0, 1, 2090}, + {0x0, 15, 16, 2091}, + {0x0, 7, 9, 2092}, + {0x0, 2, 5, 2094}, + {0xf73, 16, 16, 2097}, + {0xf75, 16, 16, 2097}, {0x0, 0, 1, 2097}, - {0x0, 0, 1, 2098}, - {0x0, 3, 4, 2099}, - {0x0, 0, 5, 2100}, - {0x0, 0, 2, 2105}, - {0x1f3d, 16, 16, 2107}, - {0x0, 0, 1, 2107}, - {0x0, 3, 4, 2108}, - {0x0, 0, 5, 2109}, + {0xf81, 16, 16, 2098}, + {0x0, 0, 16, 2098}, {0x0, 2, 3, 2114}, - {0x1fd6, 16, 16, 2115}, - {0x0, 6, 15, 2115}, - {0x0, 0, 1, 2124}, - {0x0, 0, 1, 2125}, - {0x0, 3, 4, 2126}, - {0x0, 0, 5, 2127}, - {0x0, 0, 2, 2132}, - {0x1fde, 16, 16, 2134}, - {0x1fdd, 16, 16, 2134}, - {0x0, 0, 1, 2134}, - {0x0, 0, 1, 2135}, - {0x0, 3, 4, 2136}, - {0x0, 4, 5, 2137}, - {0x0, 5, 6, 2138}, - {0x1f95, 16, 16, 2139}, - {0x0, 4, 8, 2139}, - {0xf90b, 16, 16, 2143}, - {0x2f846, 16, 16, 2143}, - {0x0, 3, 6, 2143}, + {0x0, 5, 6, 2115}, + {0x0, 0, 1, 2116}, + {0x0, 1, 2, 2117}, + {0x0, 0, 1, 2118}, + {0x0, 2, 3, 2119}, + {0x0, 14, 15, 2120}, + {0x1026, 16, 16, 2121}, + {0x1e00, 16, 16, 2121}, + {0x1e01, 16, 16, 2121}, + {0x0, 0, 1, 2121}, + {0x0, 0, 1, 2122}, + {0x0, 3, 4, 2123}, + {0x0, 0, 4, 2124}, + {0x0, 7, 8, 2128}, + {0x1e02, 16, 16, 2129}, + {0x0, 0, 1, 2129}, + {0x0, 0, 1, 2130}, + {0x0, 3, 4, 2131}, + {0x0, 0, 4, 2132}, + {0x0, 7, 8, 2136}, + {0x1e03, 16, 16, 2137}, + {0x0, 3, 4, 2137}, + {0x1e04, 16, 16, 2138}, + {0x0, 3, 4, 2138}, + {0x1e05, 16, 16, 2139}, + {0x0, 1, 2, 2139}, + {0x1e06, 16, 16, 2140}, + {0x0, 1, 2, 2140}, + {0x1e07, 16, 16, 2141}, + {0x0, 0, 1, 2141}, + {0x0, 0, 1, 2142}, + {0x0, 3, 4, 2143}, + {0x0, 0, 1, 2144}, + {0x0, 1, 2, 2145}, + {0x1e08, 16, 16, 2146}, {0x0, 0, 1, 2146}, {0x0, 0, 1, 2147}, {0x0, 3, 4, 2148}, - {0x0, 3, 4, 2149}, - {0x0, 8, 9, 2150}, - {0x2224, 16, 16, 2151}, - {0x0, 0, 16, 2151}, - {0x0, 12, 13, 2167}, - {0xfa08, 16, 16, 2168}, - {0x0, 5, 6, 2168}, - {0x2f905, 16, 16, 2169}, - {0x0, 10, 11, 2169}, - {0xf995, 16, 16, 2170}, - {0x0, 0, 1, 2170}, - {0x0, 3, 4, 2171}, - {0x0, 0, 1, 2172}, - {0x0, 9, 10, 2173}, - {0x0, 9, 10, 2174}, - {0x30c7, 16, 16, 2175}, - {0x0, 0, 1, 2175}, - {0x0, 0, 1, 2176}, - {0x0, 3, 4, 2177}, - {0x0, 0, 5, 2178}, - {0x0, 0, 2, 2183}, - {0x1f22, 16, 16, 2185}, - {0x0, 5, 11, 2185}, - {0xf97f, 16, 16, 2191}, - {0x0, 9, 10, 2191}, - {0x2fa00, 16, 16, 2192}, - {0x0, 7, 16, 2192}, - {0x0, 2, 11, 2201}, - {0xf9e6, 16, 16, 2210}, - {0x0, 1, 16, 2210}, - {0x0, 10, 11, 2225}, - {0xfa17, 16, 16, 2226}, - {0xfa5a, 16, 16, 2226}, - {0x0, 10, 12, 2226}, - {0x0, 0, 1, 2228}, - {0x0, 0, 1, 2229}, - {0x0, 3, 4, 2230}, - {0x0, 0, 1, 2231}, - {0x0, 4, 5, 2232}, - {0x1e5d, 16, 16, 2233}, - {0x0, 7, 10, 2233}, - {0x2f9b5, 16, 16, 2236}, - {0x2f9b6, 16, 16, 2236}, - {0x0, 0, 12, 2236}, - {0x0, 0, 16, 2248}, - {0xf997, 16, 16, 2264}, - {0x0, 1, 12, 2264}, - {0x0, 11, 12, 2275}, - {0x0, 6, 7, 2276}, - {0x2fa01, 16, 16, 2277}, - {0x0, 10, 16, 2277}, - {0x0, 8, 15, 2283}, - {0xfa22, 16, 16, 2290}, - {0x0, 0, 10, 2290}, - {0x0, 0, 1, 2300}, - {0x0, 0, 1, 2301}, - {0x0, 3, 4, 2302}, - {0x0, 0, 1, 2303}, - {0x0, 0, 2, 2304}, - {0x1f4a, 16, 16, 2306}, - {0x0, 4, 13, 2306}, - {0x0, 6, 7, 2315}, - {0x0, 0, 1, 2316}, + {0x0, 0, 1, 2149}, + {0x0, 1, 2, 2150}, + {0x1e09, 16, 16, 2151}, + {0x1e0a, 16, 16, 2151}, + {0x1e0b, 16, 16, 2151}, + {0x0, 3, 14, 2151}, + {0x1e0c, 16, 16, 2162}, + {0x0, 3, 14, 2162}, + {0x1e0d, 16, 16, 2173}, + {0x0, 1, 2, 2173}, + {0x1e0e, 16, 16, 2174}, + {0x0, 1, 2, 2174}, + {0x1e0f, 16, 16, 2175}, + {0x1e10, 16, 16, 2175}, + {0x1e11, 16, 16, 2175}, + {0x1e12, 16, 16, 2175}, + {0x1e13, 16, 16, 2175}, + {0x0, 2, 4, 2175}, + {0x0, 0, 1, 2177}, + {0x0, 0, 1, 2178}, + {0x0, 3, 4, 2179}, + {0x0, 0, 1, 2180}, + {0x0, 0, 2, 2181}, + {0x1e14, 16, 16, 2183}, + {0x0, 0, 1, 2183}, + {0x0, 0, 1, 2184}, + {0x0, 3, 4, 2185}, + {0x0, 0, 1, 2186}, + {0x0, 0, 2, 2187}, + {0x1e15, 16, 16, 2189}, + {0x1e16, 16, 16, 2189}, + {0x1e17, 16, 16, 2189}, + {0x1e18, 16, 16, 2189}, + {0x1e19, 16, 16, 2189}, + {0x0, 0, 1, 2189}, + {0x1e1a, 16, 16, 2190}, + {0x0, 0, 1, 2190}, + {0x1e1b, 16, 16, 2191}, + {0x0, 0, 1, 2191}, + {0x0, 0, 1, 2192}, + {0x0, 3, 4, 2193}, + {0x0, 0, 1, 2194}, + {0x0, 6, 7, 2195}, + {0x1e1c, 16, 16, 2196}, + {0x0, 0, 1, 2196}, + {0x0, 0, 1, 2197}, + {0x0, 3, 4, 2198}, + {0x0, 0, 1, 2199}, + {0x0, 6, 7, 2200}, + {0x1e1d, 16, 16, 2201}, + {0x0, 0, 1, 2201}, + {0x0, 0, 1, 2202}, + {0x0, 3, 4, 2203}, + {0x0, 0, 1, 2204}, + {0x0, 7, 8, 2205}, + {0x1e1e, 16, 16, 2206}, + {0x0, 0, 1, 2206}, + {0x0, 0, 1, 2207}, + {0x0, 3, 4, 2208}, + {0x0, 0, 1, 2209}, + {0x0, 7, 8, 2210}, + {0x1e1f, 16, 16, 2211}, + {0x1e20, 16, 16, 2211}, + {0x1e21, 16, 16, 2211}, + {0x1e22, 16, 16, 2211}, + {0x1e23, 16, 16, 2211}, + {0x0, 3, 15, 2211}, + {0x1e24, 16, 16, 2223}, + {0x0, 3, 15, 2223}, + {0x1e25, 16, 16, 2235}, + {0x1e26, 16, 16, 2235}, + {0x1e27, 16, 16, 2235}, + {0x1e28, 16, 16, 2235}, + {0x1e29, 16, 16, 2235}, + {0x1e2a, 16, 16, 2235}, + {0x1e2b, 16, 16, 2235}, + {0x0, 0, 1, 2235}, + {0x1e2c, 16, 16, 2236}, + {0x0, 0, 1, 2236}, + {0x1e2d, 16, 16, 2237}, + {0x0, 0, 1, 2237}, + {0x0, 0, 1, 2238}, + {0x0, 3, 4, 2239}, + {0x0, 0, 1, 2240}, + {0x0, 1, 2, 2241}, + {0x1e2e, 16, 16, 2242}, + {0x0, 0, 1, 2242}, + {0x0, 0, 1, 2243}, + {0x0, 3, 4, 2244}, + {0x0, 0, 1, 2245}, + {0x0, 1, 2, 2246}, + {0x1e2f, 16, 16, 2247}, + {0x1e30, 16, 16, 2247}, + {0x1e31, 16, 16, 2247}, + {0x1e32, 16, 16, 2247}, + {0x1e33, 16, 16, 2247}, + {0x0, 1, 2, 2247}, + {0x1e34, 16, 16, 2248}, + {0x0, 1, 2, 2248}, + {0x1e35, 16, 16, 2249}, + {0x1e36, 16, 16, 2249}, + {0x1e37, 16, 16, 2249}, + {0x0, 3, 13, 2249}, + {0x0, 6, 8, 2259}, + {0x0, 0, 1, 2261}, + {0x0, 0, 1, 2262}, + {0x0, 3, 4, 2263}, + {0x0, 0, 1, 2264}, + {0x0, 4, 5, 2265}, + {0x1e38, 16, 16, 2266}, + {0x0, 0, 1, 2266}, + {0x0, 0, 1, 2267}, + {0x0, 3, 4, 2268}, + {0x0, 0, 1, 2269}, + {0x0, 4, 5, 2270}, + {0x1e39, 16, 16, 2271}, + {0x0, 1, 2, 2271}, + {0x1e3a, 16, 16, 2272}, + {0x0, 1, 2, 2272}, + {0x1e3b, 16, 16, 2273}, + {0x1e3c, 16, 16, 2273}, + {0x1e3d, 16, 16, 2273}, + {0x0, 0, 1, 2273}, + {0x0, 0, 1, 2274}, + {0x0, 3, 4, 2275}, + {0x0, 0, 3, 2276}, + {0x0, 1, 8, 2279}, + {0x1e3e, 16, 16, 2286}, + {0x0, 0, 1, 2286}, + {0x0, 0, 1, 2287}, + {0x0, 3, 4, 2288}, + {0x0, 0, 3, 2289}, + {0x0, 1, 8, 2292}, + {0x1e3f, 16, 16, 2299}, + {0x1e40, 16, 16, 2299}, + {0x1e41, 16, 16, 2299}, + {0x0, 3, 4, 2299}, + {0x1e42, 16, 16, 2300}, + {0x0, 3, 4, 2300}, + {0x1e43, 16, 16, 2301}, + {0x1e44, 16, 16, 2301}, + {0x1e45, 16, 16, 2301}, + {0x1e46, 16, 16, 2301}, + {0x1e47, 16, 16, 2301}, + {0x0, 1, 2, 2301}, + {0x1e48, 16, 16, 2302}, + {0x0, 1, 2, 2302}, + {0x1e49, 16, 16, 2303}, + {0x1e4a, 16, 16, 2303}, + {0x1e4b, 16, 16, 2303}, + {0x1e4c, 16, 16, 2303}, + {0x1e4d, 16, 16, 2303}, + {0x1e4e, 16, 16, 2303}, + {0x1e4f, 16, 16, 2303}, + {0x0, 12, 14, 2303}, + {0x0, 0, 1, 2305}, + {0x0, 0, 1, 2306}, + {0x0, 3, 4, 2307}, + {0x0, 0, 1, 2308}, + {0x0, 0, 2, 2309}, + {0x1e50, 16, 16, 2311}, + {0x0, 0, 1, 2311}, + {0x0, 0, 1, 2312}, + {0x0, 3, 4, 2313}, + {0x0, 0, 1, 2314}, + {0x0, 0, 2, 2315}, + {0x1e51, 16, 16, 2317}, + {0x1e52, 16, 16, 2317}, + {0x1e53, 16, 16, 2317}, {0x0, 0, 1, 2317}, - {0x0, 12, 13, 2318}, - {0x0, 5, 6, 2319}, - {0x0, 6, 7, 2320}, - {0xc48, 16, 16, 2321}, - {0x2f976, 16, 16, 2321}, - {0x0, 15, 16, 2321}, - {0xf97c, 16, 16, 2322}, - {0x0, 2, 13, 2322}, - {0x0, 4, 5, 2333}, - {0xf930, 16, 16, 2334}, - {0x212a, 0, 1, 2334}, - {0x0, 0, 1, 2335}, - {0x0, 3, 4, 2336}, - {0x0, 0, 4, 2337}, - {0x0, 1, 2, 2341}, - {0x1e34, 16, 16, 2342}, - {0x0, 2, 11, 2342}, - {0x0, 3, 4, 2351}, - {0x2f97c, 16, 16, 2352}, - {0x0, 2, 3, 2352}, - {0x2f85f, 16, 16, 2353}, - {0x0, 0, 1, 2353}, - {0x0, 0, 1, 2354}, - {0x0, 3, 4, 2355}, + {0x0, 0, 1, 2318}, + {0x0, 3, 4, 2319}, + {0x0, 0, 1, 2320}, + {0x0, 1, 8, 2321}, + {0x1e54, 16, 16, 2328}, + {0x0, 0, 1, 2328}, + {0x0, 0, 1, 2329}, + {0x0, 3, 4, 2330}, + {0x0, 0, 1, 2331}, + {0x0, 1, 8, 2332}, + {0x1e55, 16, 16, 2339}, + {0x1e56, 16, 16, 2339}, + {0x1e57, 16, 16, 2339}, + {0x1e58, 16, 16, 2339}, + {0x1e59, 16, 16, 2339}, + {0x1e5a, 16, 16, 2339}, + {0x1e5b, 16, 16, 2339}, + {0x0, 10, 12, 2339}, + {0x0, 0, 1, 2341}, + {0x0, 0, 1, 2342}, + {0x0, 3, 4, 2343}, + {0x0, 0, 1, 2344}, + {0x0, 4, 5, 2345}, + {0x1e5c, 16, 16, 2346}, + {0x0, 0, 1, 2346}, + {0x0, 0, 1, 2347}, + {0x0, 3, 4, 2348}, + {0x0, 0, 1, 2349}, + {0x0, 4, 5, 2350}, + {0x1e5d, 16, 16, 2351}, + {0x0, 1, 2, 2351}, + {0x1e5e, 16, 16, 2352}, + {0x0, 1, 2, 2352}, + {0x1e5f, 16, 16, 2353}, + {0x1e60, 16, 16, 2353}, + {0x1e61, 16, 16, 2353}, + {0x1e62, 16, 16, 2353}, + {0x1e63, 16, 16, 2353}, + {0x0, 10, 12, 2353}, + {0x0, 0, 1, 2355}, {0x0, 0, 1, 2356}, - {0x0, 6, 9, 2357}, - {0x4d1, 16, 16, 2360}, - {0x0, 1, 2, 2360}, - {0xfa55, 16, 16, 2361}, - {0x0, 5, 14, 2361}, - {0x0, 15, 16, 2370}, - {0x0, 10, 11, 2371}, - {0x2f9ed, 16, 16, 2372}, - {0x2f97d, 16, 16, 2372}, - {0x0, 9, 10, 2372}, - {0xf90e, 16, 16, 2373}, - {0x0, 0, 1, 2373}, - {0x0, 0, 1, 2374}, - {0x0, 3, 4, 2375}, - {0x0, 0, 5, 2376}, - {0x0, 0, 2, 2381}, - {0x1f0a, 16, 16, 2383}, - {0x1f0c, 16, 16, 2383}, + {0x0, 3, 4, 2357}, + {0x0, 0, 1, 2358}, + {0x0, 7, 8, 2359}, + {0x1e64, 16, 16, 2360}, + {0x0, 0, 1, 2360}, + {0x0, 0, 1, 2361}, + {0x0, 3, 4, 2362}, + {0x0, 0, 1, 2363}, + {0x0, 7, 8, 2364}, + {0x1e65, 16, 16, 2365}, + {0x0, 0, 12, 2365}, + {0x0, 0, 1, 2377}, + {0x0, 0, 1, 2378}, + {0x0, 3, 4, 2379}, + {0x0, 0, 1, 2380}, + {0x0, 7, 8, 2381}, + {0x1e66, 16, 16, 2382}, + {0x0, 0, 1, 2382}, {0x0, 0, 1, 2383}, - {0x0, 0, 1, 2384}, - {0x0, 3, 4, 2385}, - {0x0, 0, 5, 2386}, - {0x0, 2, 6, 2391}, - {0x1f67, 16, 16, 2395}, + {0x0, 3, 4, 2384}, + {0x0, 0, 1, 2385}, + {0x0, 7, 8, 2386}, + {0x1e67, 16, 16, 2387}, + {0x0, 2, 4, 2387}, + {0x0, 0, 1, 2389}, + {0x0, 0, 1, 2390}, + {0x0, 3, 4, 2391}, + {0x0, 0, 1, 2392}, + {0x0, 7, 8, 2393}, + {0x1e68, 16, 16, 2394}, + {0x0, 0, 1, 2394}, {0x0, 0, 1, 2395}, - {0x0, 0, 1, 2396}, - {0x0, 3, 4, 2397}, - {0x0, 0, 3, 2398}, - {0x0, 7, 8, 2401}, - {0xe7, 16, 16, 2402}, - {0x1fa1, 16, 16, 2402}, - {0x1eea, 16, 16, 2402}, - {0x0, 5, 11, 2402}, - {0x2f978, 16, 16, 2408}, - {0x0, 2, 3, 2408}, + {0x0, 3, 4, 2396}, + {0x0, 0, 1, 2397}, + {0x0, 7, 8, 2398}, + {0x1e69, 16, 16, 2399}, + {0x1e6a, 16, 16, 2399}, + {0x1e6b, 16, 16, 2399}, + {0x1e6c, 16, 16, 2399}, + {0x1e6d, 16, 16, 2399}, + {0x0, 1, 2, 2399}, + {0x1e6e, 16, 16, 2400}, + {0x0, 1, 2, 2400}, + {0x1e6f, 16, 16, 2401}, + {0x1e70, 16, 16, 2401}, + {0x1e71, 16, 16, 2401}, + {0x1e72, 16, 16, 2401}, + {0x1e73, 16, 16, 2401}, + {0x0, 0, 1, 2401}, + {0x1e74, 16, 16, 2402}, + {0x0, 0, 1, 2402}, + {0x1e75, 16, 16, 2403}, + {0x1e76, 16, 16, 2403}, + {0x1e77, 16, 16, 2403}, + {0x0, 0, 1, 2403}, + {0x0, 0, 1, 2404}, + {0x0, 3, 4, 2405}, + {0x0, 0, 1, 2406}, + {0x0, 1, 2, 2407}, + {0x1e78, 16, 16, 2408}, + {0x0, 0, 1, 2408}, {0x0, 0, 1, 2409}, - {0x0, 0, 1, 2410}, - {0x0, 3, 4, 2411}, - {0x0, 0, 1, 2412}, - {0x0, 1, 9, 2413}, - {0x3d4, 16, 16, 2421}, - {0x0, 4, 14, 2421}, - {0x0, 12, 13, 2431}, - {0x2f91e, 16, 16, 2432}, - {0x3d3, 16, 16, 2432}, - {0x0, 3, 14, 2432}, - {0x0, 7, 9, 2443}, - {0x2f9e9, 16, 16, 2445}, - {0x0, 0, 1, 2445}, - {0x0, 0, 1, 2446}, - {0x0, 3, 4, 2447}, - {0x0, 0, 3, 2448}, - {0x0, 0, 10, 2451}, - {0x176, 16, 16, 2461}, - {0xdd, 16, 16, 2461}, - {0x1ef2, 16, 16, 2461}, - {0x1e8e, 16, 16, 2461}, - {0x232, 16, 16, 2461}, - {0x0, 6, 16, 2461}, - {0x0, 0, 1, 2471}, - {0x0, 3, 4, 2472}, - {0x0, 0, 1, 2473}, - {0x0, 9, 10, 2474}, - {0x0, 9, 10, 2475}, - {0x3094, 16, 16, 2476}, - {0x1ef6, 16, 16, 2476}, - {0x178, 16, 16, 2476}, - {0x0, 0, 1, 2476}, - {0x0, 0, 1, 2477}, - {0x0, 3, 4, 2478}, + {0x0, 3, 4, 2410}, + {0x0, 0, 1, 2411}, + {0x0, 1, 2, 2412}, + {0x1e79, 16, 16, 2413}, + {0x0, 0, 1, 2413}, + {0x0, 0, 1, 2414}, + {0x0, 3, 4, 2415}, + {0x0, 0, 1, 2416}, + {0x0, 8, 9, 2417}, + {0x1e7a, 16, 16, 2418}, + {0x0, 0, 1, 2418}, + {0x0, 0, 1, 2419}, + {0x0, 3, 4, 2420}, + {0x0, 0, 1, 2421}, + {0x0, 8, 9, 2422}, + {0x1e7b, 16, 16, 2423}, + {0x0, 0, 1, 2423}, + {0x0, 0, 1, 2424}, + {0x0, 3, 4, 2425}, + {0x0, 0, 3, 2426}, + {0x0, 3, 4, 2429}, + {0x1e7c, 16, 16, 2430}, + {0x0, 0, 1, 2430}, + {0x0, 0, 1, 2431}, + {0x0, 3, 4, 2432}, + {0x0, 0, 3, 2433}, + {0x0, 3, 4, 2436}, + {0x1e7d, 16, 16, 2437}, + {0x0, 3, 4, 2437}, + {0x1e7e, 16, 16, 2438}, + {0x0, 3, 4, 2438}, + {0x1e7f, 16, 16, 2439}, + {0x1e80, 16, 16, 2439}, + {0x1e81, 16, 16, 2439}, + {0x1e82, 16, 16, 2439}, + {0x1e83, 16, 16, 2439}, + {0x1e84, 16, 16, 2439}, + {0x1e85, 16, 16, 2439}, + {0x1e86, 16, 16, 2439}, + {0x1e87, 16, 16, 2439}, + {0x0, 3, 4, 2439}, + {0x1e88, 16, 16, 2440}, + {0x0, 3, 4, 2440}, + {0x1e89, 16, 16, 2441}, + {0x0, 0, 1, 2441}, + {0x0, 0, 1, 2442}, + {0x0, 3, 4, 2443}, + {0x0, 0, 1, 2444}, + {0x0, 7, 9, 2445}, + {0x1e8a, 16, 16, 2447}, + {0x0, 0, 1, 2447}, + {0x0, 0, 1, 2448}, + {0x0, 3, 4, 2449}, + {0x0, 0, 1, 2450}, + {0x0, 7, 9, 2451}, + {0x1e8b, 16, 16, 2453}, + {0x1e8c, 16, 16, 2453}, + {0x1e8d, 16, 16, 2453}, + {0x1e8e, 16, 16, 2453}, + {0x1e8f, 16, 16, 2453}, + {0x1e90, 16, 16, 2453}, + {0x1e91, 16, 16, 2453}, + {0x0, 3, 4, 2453}, + {0x1e92, 16, 16, 2454}, + {0x0, 3, 4, 2454}, + {0x1e93, 16, 16, 2455}, + {0x0, 1, 2, 2455}, + {0x1e94, 16, 16, 2456}, + {0x0, 1, 2, 2456}, + {0x1e95, 16, 16, 2457}, + {0x0, 1, 2, 2457}, + {0x1e96, 16, 16, 2458}, + {0x1e97, 16, 16, 2458}, + {0x1e98, 16, 16, 2458}, + {0x1e99, 16, 16, 2458}, + {0x0, 15, 16, 2458}, + {0x0, 0, 1, 2459}, + {0x0, 0, 1, 2460}, + {0x0, 3, 4, 2461}, + {0x0, 0, 1, 2462}, + {0x0, 7, 8, 2463}, + {0x1e9b, 16, 16, 2464}, + {0x1ea0, 16, 16, 2464}, + {0x1ea1, 16, 16, 2464}, + {0x1ea2, 16, 16, 2464}, + {0x1ea3, 16, 16, 2464}, + {0x0, 0, 1, 2464}, + {0x0, 0, 1, 2465}, + {0x0, 3, 4, 2466}, + {0x0, 0, 1, 2467}, + {0x0, 0, 10, 2468}, + {0x1ea4, 16, 16, 2478}, + {0x0, 0, 1, 2478}, {0x0, 0, 1, 2479}, - {0x0, 7, 8, 2480}, - {0x1e68, 16, 16, 2481}, - {0x2f9e8, 16, 16, 2481}, - {0x0, 13, 14, 2481}, - {0x2f999, 16, 16, 2482}, - {0x0, 0, 1, 2482}, - {0x0, 0, 1, 2483}, - {0x0, 3, 4, 2484}, - {0x0, 0, 3, 2485}, - {0x0, 0, 9, 2488}, - {0x1e82, 16, 16, 2497}, - {0x0, 4, 16, 2497}, - {0x0, 14, 15, 2509}, - {0x2f94e, 16, 16, 2510}, - {0x174, 16, 16, 2510}, - {0x1e86, 16, 16, 2510}, - {0x0, 0, 1, 2510}, - {0x0, 0, 1, 2511}, - {0x0, 3, 4, 2512}, - {0x0, 0, 1, 2513}, - {0x0, 4, 5, 2514}, - {0x1de, 16, 16, 2515}, - {0xf9af, 16, 16, 2515}, - {0x0, 2, 15, 2515}, - {0x0, 3, 4, 2528}, - {0x2f89b, 16, 16, 2529}, - {0x0, 3, 5, 2529}, - {0x1f28, 16, 16, 2531}, - {0x1f29, 16, 16, 2531}, - {0x0, 8, 16, 2531}, - {0x0, 10, 11, 2539}, - {0x2f8f9, 16, 16, 2540}, - {0x0, 10, 11, 2540}, - {0x2f89c, 16, 16, 2541}, - {0x0, 1, 2, 2541}, - {0x1e07, 16, 16, 2542}, + {0x0, 3, 4, 2480}, + {0x0, 0, 1, 2481}, + {0x0, 0, 10, 2482}, + {0x1ea5, 16, 16, 2492}, + {0x1ea6, 16, 16, 2492}, + {0x1ea7, 16, 16, 2492}, + {0x1ea8, 16, 16, 2492}, + {0x1ea9, 16, 16, 2492}, + {0x1eaa, 16, 16, 2492}, + {0x1eab, 16, 16, 2492}, + {0x0, 0, 2, 2492}, + {0x0, 0, 1, 2494}, + {0x0, 0, 1, 2495}, + {0x0, 3, 4, 2496}, + {0x0, 0, 1, 2497}, + {0x0, 2, 7, 2498}, + {0x1eac, 16, 16, 2503}, + {0x0, 0, 1, 2503}, + {0x0, 0, 1, 2504}, + {0x0, 3, 4, 2505}, + {0x0, 0, 1, 2506}, + {0x0, 2, 7, 2507}, + {0x1ead, 16, 16, 2512}, + {0x0, 2, 4, 2512}, + {0x0, 0, 1, 2514}, + {0x0, 0, 1, 2515}, + {0x0, 3, 4, 2516}, + {0x0, 0, 1, 2517}, + {0x0, 0, 10, 2518}, + {0x1eae, 16, 16, 2528}, + {0x0, 0, 1, 2528}, + {0x0, 0, 1, 2529}, + {0x0, 3, 4, 2530}, + {0x0, 0, 1, 2531}, + {0x0, 0, 10, 2532}, + {0x1eaf, 16, 16, 2542}, + {0x1eb0, 16, 16, 2542}, + {0x1eb1, 16, 16, 2542}, + {0x1eb2, 16, 16, 2542}, + {0x1eb3, 16, 16, 2542}, + {0x1eb4, 16, 16, 2542}, + {0x1eb5, 16, 16, 2542}, + {0x1eb6, 16, 16, 2542}, + {0x1eb7, 16, 16, 2542}, + {0x1eb8, 16, 16, 2542}, + {0x1eb9, 16, 16, 2542}, + {0x1eba, 16, 16, 2542}, + {0x1ebb, 16, 16, 2542}, + {0x1ebc, 16, 16, 2542}, + {0x1ebd, 16, 16, 2542}, {0x0, 0, 1, 2542}, - {0x0, 3, 4, 2543}, - {0x0, 0, 1, 2544}, - {0x0, 9, 10, 2545}, - {0x0, 9, 11, 2546}, - {0x30d0, 16, 16, 2548}, - {0x0, 11, 12, 2548}, - {0x2f9d6, 16, 16, 2549}, - {0x0, 0, 13, 2549}, - {0x0, 0, 15, 2562}, - {0xfa3c, 16, 16, 2577}, - {0x0, 7, 8, 2577}, - {0x2f92e, 16, 16, 2578}, + {0x0, 0, 1, 2543}, + {0x0, 3, 4, 2544}, + {0x0, 0, 1, 2545}, + {0x0, 0, 10, 2546}, + {0x1ebe, 16, 16, 2556}, + {0x0, 0, 1, 2556}, + {0x0, 0, 1, 2557}, + {0x0, 3, 4, 2558}, + {0x0, 0, 1, 2559}, + {0x0, 0, 10, 2560}, + {0x1ebf, 16, 16, 2570}, + {0x1ec0, 16, 16, 2570}, + {0x1ec1, 16, 16, 2570}, + {0x1ec2, 16, 16, 2570}, + {0x1ec3, 16, 16, 2570}, + {0x1ec4, 16, 16, 2570}, + {0x1ec5, 16, 16, 2570}, + {0x0, 8, 10, 2570}, + {0x0, 0, 1, 2572}, + {0x0, 0, 1, 2573}, + {0x0, 3, 4, 2574}, + {0x0, 0, 1, 2575}, + {0x0, 2, 3, 2576}, + {0x1ec6, 16, 16, 2577}, + {0x0, 0, 1, 2577}, {0x0, 0, 1, 2578}, {0x0, 3, 4, 2579}, {0x0, 0, 1, 2580}, - {0x0, 9, 10, 2581}, - {0x0, 9, 10, 2582}, - {0x30ae, 16, 16, 2583}, - {0x0, 1, 16, 2583}, - {0x0, 0, 1, 2598}, - {0x0, 3, 4, 2599}, - {0x0, 0, 1, 2600}, - {0x0, 9, 10, 2601}, - {0x0, 9, 10, 2602}, - {0x3058, 16, 16, 2603}, - {0x0, 0, 1, 2603}, - {0x0, 0, 1, 2604}, - {0x0, 3, 4, 2605}, - {0x0, 0, 4, 2606}, - {0x0, 0, 16, 2610}, - {0xcb, 16, 16, 2626}, - {0x1eba, 16, 16, 2626}, - {0xca, 16, 16, 2626}, - {0x1ebc, 16, 16, 2626}, - {0xc8, 16, 16, 2626}, - {0xc9, 16, 16, 2626}, - {0x114, 16, 16, 2626}, - {0x116, 16, 16, 2626}, - {0x112, 16, 16, 2626}, - {0xf94b, 16, 16, 2626}, - {0x2f877, 16, 16, 2626}, - {0xf9df, 16, 16, 2626}, - {0xfa3b, 16, 16, 2626}, - {0x0, 0, 1, 2626}, - {0x0, 0, 1, 2627}, - {0x0, 3, 4, 2628}, - {0x0, 0, 1, 2629}, - {0x0, 6, 7, 2630}, - {0x1e1c, 16, 16, 2631}, - {0x0, 4, 16, 2631}, - {0x0, 4, 5, 2643}, - {0x2f93d, 16, 16, 2644}, - {0x0, 0, 1, 2644}, - {0x0, 0, 1, 2645}, - {0x0, 3, 4, 2646}, - {0x0, 0, 1, 2647}, - {0x0, 1, 2, 2648}, - {0x1fb, 16, 16, 2649}, - {0x0, 6, 7, 2649}, - {0x0, 13, 14, 2650}, - {0x2f8e3, 16, 16, 2651}, - {0x0, 2, 8, 2651}, - {0x2f85b, 16, 16, 2657}, - {0x2f85a, 16, 16, 2657}, - {0x307c, 16, 16, 2657}, - {0x0, 0, 1, 2657}, - {0x0, 0, 1, 2658}, - {0x0, 3, 4, 2659}, - {0x0, 0, 5, 2660}, - {0x0, 2, 6, 2665}, - {0x1f06, 16, 16, 2669}, - {0x11a, 16, 16, 2669}, - {0x204, 16, 16, 2669}, - {0x1f80, 16, 16, 2669}, - {0x307a, 16, 16, 2669}, - {0x0, 0, 1, 2669}, - {0x0, 8, 9, 2670}, - {0x2f923, 16, 16, 2671}, + {0x0, 2, 3, 2581}, + {0x1ec7, 16, 16, 2582}, + {0x1ec8, 16, 16, 2582}, + {0x1ec9, 16, 16, 2582}, + {0x1eca, 16, 16, 2582}, + {0x1ecb, 16, 16, 2582}, + {0x1ecc, 16, 16, 2582}, + {0x1ecd, 16, 16, 2582}, + {0x1ece, 16, 16, 2582}, + {0x1ecf, 16, 16, 2582}, + {0x0, 0, 1, 2582}, + {0x0, 0, 1, 2583}, + {0x0, 3, 4, 2584}, + {0x0, 0, 1, 2585}, + {0x0, 0, 10, 2586}, + {0x1ed0, 16, 16, 2596}, + {0x0, 0, 1, 2596}, + {0x0, 0, 1, 2597}, + {0x0, 3, 4, 2598}, + {0x0, 0, 1, 2599}, + {0x0, 0, 10, 2600}, + {0x1ed1, 16, 16, 2610}, + {0x1ed2, 16, 16, 2610}, + {0x1ed3, 16, 16, 2610}, + {0x1ed4, 16, 16, 2610}, + {0x1ed5, 16, 16, 2610}, + {0x1ed6, 16, 16, 2610}, + {0x1ed7, 16, 16, 2610}, + {0x0, 12, 14, 2610}, + {0x0, 0, 1, 2612}, + {0x0, 0, 1, 2613}, + {0x0, 3, 4, 2614}, + {0x0, 0, 1, 2615}, + {0x0, 2, 3, 2616}, + {0x1ed8, 16, 16, 2617}, + {0x0, 0, 1, 2617}, + {0x0, 0, 1, 2618}, + {0x0, 3, 4, 2619}, + {0x0, 0, 1, 2620}, + {0x0, 2, 3, 2621}, + {0x1ed9, 16, 16, 2622}, + {0x0, 0, 16, 2622}, + {0x0, 0, 1, 2638}, + {0x0, 0, 1, 2639}, + {0x0, 3, 4, 2640}, + {0x0, 0, 3, 2641}, + {0x0, 0, 10, 2644}, + {0x1eda, 16, 16, 2654}, + {0x0, 0, 1, 2654}, + {0x0, 0, 1, 2655}, + {0x0, 3, 4, 2656}, + {0x0, 0, 3, 2657}, + {0x0, 0, 10, 2660}, + {0x1edb, 16, 16, 2670}, + {0x1edc, 16, 16, 2670}, + {0x1edd, 16, 16, 2670}, + {0x1ede, 16, 16, 2670}, + {0x1edf, 16, 16, 2670}, + {0x1ee0, 16, 16, 2670}, + {0x1ee1, 16, 16, 2670}, + {0x0, 3, 4, 2670}, + {0x1ee2, 16, 16, 2671}, {0x0, 3, 4, 2671}, - {0x2f944, 16, 16, 2672}, - {0x0, 10, 11, 2672}, - {0xf94d, 16, 16, 2673}, - {0x0, 3, 4, 2673}, - {0x1ef0, 16, 16, 2674}, - {0x0, 11, 12, 2674}, - {0xf9d4, 16, 16, 2675}, - {0x0, 0, 16, 2675}, - {0x113, 16, 16, 2691}, - {0x115, 16, 16, 2691}, - {0x117, 16, 16, 2691}, - {0xe8, 16, 16, 2691}, - {0xe9, 16, 16, 2691}, - {0xea, 16, 16, 2691}, - {0x1ebd, 16, 16, 2691}, - {0x0, 0, 1, 2691}, - {0x0, 0, 1, 2692}, - {0x0, 3, 4, 2693}, - {0x0, 0, 1, 2694}, - {0x0, 1, 2, 2695}, - {0x1e08, 16, 16, 2696}, - {0xeb, 16, 16, 2696}, - {0x1ebb, 16, 16, 2696}, - {0x0, 12, 14, 2696}, - {0x0, 0, 1, 2698}, - {0x0, 0, 1, 2699}, - {0x0, 3, 4, 2700}, - {0x0, 0, 1, 2701}, - {0x0, 0, 2, 2702}, - {0x1e52, 16, 16, 2704}, - {0x0, 9, 14, 2704}, - {0x0, 0, 5, 2709}, - {0x0, 0, 1, 2714}, - {0x0, 0, 1, 2715}, - {0x0, 3, 4, 2716}, - {0x0, 3, 4, 2717}, - {0x0, 8, 9, 2718}, - {0x21cf, 16, 16, 2719}, - {0x0, 0, 1, 2719}, - {0x0, 0, 1, 2720}, - {0x0, 3, 4, 2721}, - {0x0, 0, 1, 2722}, - {0x0, 2, 3, 2723}, - {0x134, 16, 16, 2724}, - {0x0, 0, 1, 2724}, - {0x0, 0, 1, 2725}, - {0x0, 3, 4, 2726}, - {0x0, 0, 5, 2727}, - {0x0, 0, 2, 2732}, - {0x1f54, 16, 16, 2734}, - {0x1f52, 16, 16, 2734}, - {0x0, 1, 2, 2734}, - {0x1e5e, 16, 16, 2735}, - {0x0, 8, 9, 2735}, - {0xf99f, 16, 16, 2736}, - {0x0, 1, 5, 2736}, - {0x0, 14, 15, 2740}, - {0x2f8f2, 16, 16, 2741}, - {0x205, 16, 16, 2741}, - {0x11b, 16, 16, 2741}, - {0x2f88b, 16, 16, 2741}, - {0x2f88c, 16, 16, 2741}, - {0x0, 3, 8, 2741}, - {0x2f81e, 16, 16, 2746}, - {0x0, 0, 1, 2746}, - {0x0, 0, 1, 2747}, - {0x0, 3, 4, 2748}, - {0x0, 0, 5, 2749}, - {0x0, 3, 5, 2754}, - {0x1f01, 16, 16, 2756}, - {0xfa00, 16, 16, 2756}, - {0x0, 3, 16, 2756}, - {0x2f830, 16, 16, 2769}, - {0x0, 2, 13, 2769}, - {0x0, 0, 4, 2780}, - {0x0, 0, 1, 2784}, - {0x0, 0, 1, 2785}, - {0x0, 9, 10, 2786}, - {0x0, 3, 4, 2787}, - {0x0, 12, 13, 2788}, - {0x931, 16, 16, 2789}, - {0x2f833, 16, 16, 2789}, - {0x0, 0, 1, 2789}, - {0x0, 0, 1, 2790}, - {0x0, 3, 4, 2791}, - {0x0, 0, 1, 2792}, - {0x0, 8, 9, 2793}, - {0x1e7a, 16, 16, 2794}, - {0x0, 14, 15, 2794}, - {0xf9d0, 16, 16, 2795}, - {0x0, 9, 14, 2795}, - {0x2f847, 16, 16, 2800}, - {0x0, 13, 14, 2800}, - {0x0, 2, 3, 2801}, - {0x2f9b1, 16, 16, 2802}, - {0x0, 4, 13, 2802}, - {0x0, 7, 8, 2811}, + {0x1ee3, 16, 16, 2672}, + {0x1ee4, 16, 16, 2672}, + {0x1ee5, 16, 16, 2672}, + {0x1ee6, 16, 16, 2672}, + {0x1ee7, 16, 16, 2672}, + {0x0, 0, 1, 2672}, + {0x0, 0, 1, 2673}, + {0x0, 3, 4, 2674}, + {0x0, 0, 3, 2675}, + {0x0, 0, 10, 2678}, + {0x1ee8, 16, 16, 2688}, + {0x0, 0, 1, 2688}, + {0x0, 0, 1, 2689}, + {0x0, 3, 4, 2690}, + {0x0, 0, 3, 2691}, + {0x0, 0, 10, 2694}, + {0x1ee9, 16, 16, 2704}, + {0x1eea, 16, 16, 2704}, + {0x1eeb, 16, 16, 2704}, + {0x1eec, 16, 16, 2704}, + {0x1eed, 16, 16, 2704}, + {0x1eee, 16, 16, 2704}, + {0x1eef, 16, 16, 2704}, + {0x0, 3, 4, 2704}, + {0x1ef0, 16, 16, 2705}, + {0x0, 3, 4, 2705}, + {0x1ef1, 16, 16, 2706}, + {0x1ef2, 16, 16, 2706}, + {0x1ef3, 16, 16, 2706}, + {0x0, 3, 4, 2706}, + {0x1ef4, 16, 16, 2707}, + {0x0, 3, 4, 2707}, + {0x1ef5, 16, 16, 2708}, + {0x1ef6, 16, 16, 2708}, + {0x1ef7, 16, 16, 2708}, + {0x1ef8, 16, 16, 2708}, + {0x1ef9, 16, 16, 2708}, + {0x0, 3, 5, 2708}, + {0x1f00, 16, 16, 2710}, + {0x1f01, 16, 16, 2710}, + {0x0, 0, 16, 2710}, + {0x0, 0, 16, 2726}, + {0x0, 0, 1, 2742}, + {0x0, 0, 1, 2743}, + {0x0, 3, 4, 2744}, + {0x0, 0, 5, 2745}, + {0x0, 0, 2, 2750}, + {0x1f02, 16, 16, 2752}, + {0x0, 0, 1, 2752}, + {0x0, 0, 1, 2753}, + {0x0, 3, 4, 2754}, + {0x0, 0, 5, 2755}, + {0x0, 0, 2, 2760}, + {0x1f03, 16, 16, 2762}, + {0x1f04, 16, 16, 2762}, + {0x1f05, 16, 16, 2762}, + {0x0, 2, 6, 2762}, + {0x1f06, 16, 16, 2766}, + {0x0, 2, 6, 2766}, + {0x1f07, 16, 16, 2770}, + {0x0, 3, 5, 2770}, + {0x1f08, 16, 16, 2772}, + {0x1f09, 16, 16, 2772}, + {0x0, 0, 1, 2772}, + {0x0, 0, 1, 2773}, + {0x0, 3, 4, 2774}, + {0x0, 0, 5, 2775}, + {0x0, 0, 2, 2780}, + {0x1f0a, 16, 16, 2782}, + {0x0, 0, 1, 2782}, + {0x0, 0, 1, 2783}, + {0x0, 3, 4, 2784}, + {0x0, 0, 5, 2785}, + {0x0, 0, 2, 2790}, + {0x1f0b, 16, 16, 2792}, + {0x1f0c, 16, 16, 2792}, + {0x1f0d, 16, 16, 2792}, + {0x0, 2, 6, 2792}, + {0x1f0e, 16, 16, 2796}, + {0x0, 2, 6, 2796}, + {0x1f0f, 16, 16, 2800}, + {0x0, 3, 5, 2800}, + {0x1f10, 16, 16, 2802}, + {0x1f11, 16, 16, 2802}, + {0x0, 0, 10, 2802}, {0x0, 0, 1, 2812}, {0x0, 0, 1, 2813}, - {0x0, 11, 12, 2814}, - {0x0, 3, 6, 2815}, - {0x0, 14, 15, 2818}, - {0xb4b, 16, 16, 2819}, - {0x0, 6, 8, 2819}, + {0x0, 3, 4, 2814}, + {0x0, 0, 1, 2815}, + {0x0, 0, 2, 2816}, + {0x1f12, 16, 16, 2818}, + {0x0, 0, 1, 2818}, + {0x0, 0, 1, 2819}, + {0x0, 3, 4, 2820}, {0x0, 0, 1, 2821}, - {0x0, 0, 1, 2822}, - {0x0, 3, 4, 2823}, - {0x0, 0, 1, 2824}, - {0x0, 4, 5, 2825}, - {0x1e39, 16, 16, 2826}, + {0x0, 0, 2, 2822}, + {0x1f13, 16, 16, 2824}, + {0x1f14, 16, 16, 2824}, + {0x1f15, 16, 16, 2824}, + {0x0, 3, 5, 2824}, + {0x1f18, 16, 16, 2826}, + {0x1f19, 16, 16, 2826}, {0x0, 0, 1, 2826}, {0x0, 0, 1, 2827}, {0x0, 3, 4, 2828}, {0x0, 0, 1, 2829}, - {0x0, 2, 13, 2830}, - {0x135, 16, 16, 2841}, - {0x0, 13, 14, 2841}, - {0x2f9d0, 16, 16, 2842}, - {0x0, 4, 14, 2842}, - {0x0, 0, 15, 2852}, - {0x0, 4, 7, 2867}, - {0x2f87d, 16, 16, 2870}, - {0x2f87b, 16, 16, 2870}, - {0x0, 7, 8, 2870}, - {0x0, 0, 1, 2871}, - {0x0, 0, 1, 2872}, - {0x0, 9, 10, 2873}, - {0x0, 11, 14, 2874}, - {0x0, 14, 15, 2877}, - {0x9cb, 16, 16, 2878}, - {0x0, 1, 6, 2878}, - {0x0, 0, 1, 2883}, - {0x0, 0, 1, 2884}, - {0x0, 3, 4, 2885}, - {0x0, 3, 4, 2886}, - {0x0, 8, 9, 2887}, - {0x2270, 16, 16, 2888}, - {0x0, 5, 9, 2888}, - {0xf959, 16, 16, 2892}, - {0xfa36, 16, 16, 2892}, - {0x0, 0, 1, 2892}, - {0x0, 0, 1, 2893}, - {0x0, 3, 4, 2894}, - {0x0, 3, 4, 2895}, - {0x0, 8, 9, 2896}, - {0x2271, 16, 16, 2897}, - {0x0, 9, 10, 2897}, - {0xfa5e, 16, 16, 2898}, - {0x0, 0, 1, 2898}, - {0x0, 0, 1, 2899}, - {0x0, 3, 4, 2900}, - {0x0, 0, 1, 2901}, - {0x0, 1, 2, 2902}, - {0x453, 16, 16, 2903}, - {0xf9d3, 16, 16, 2903}, - {0x0, 12, 14, 2903}, - {0x0, 0, 1, 2905}, - {0x0, 0, 1, 2906}, - {0x0, 3, 4, 2907}, - {0x0, 0, 1, 2908}, - {0x0, 2, 3, 2909}, - {0x1ed8, 16, 16, 2910}, - {0x0, 2, 16, 2910}, - {0xf9e7, 16, 16, 2924}, - {0xf91c, 16, 16, 2924}, - {0x0, 1, 16, 2924}, - {0x0, 4, 9, 2939}, - {0xf901, 16, 16, 2944}, - {0x2f82f, 16, 16, 2944}, - {0x0, 15, 16, 2944}, - {0x2f883, 16, 16, 2945}, - {0x0, 0, 5, 2945}, + {0x0, 0, 2, 2830}, + {0x1f1a, 16, 16, 2832}, + {0x0, 0, 1, 2832}, + {0x0, 0, 1, 2833}, + {0x0, 3, 4, 2834}, + {0x0, 0, 1, 2835}, + {0x0, 0, 2, 2836}, + {0x1f1b, 16, 16, 2838}, + {0x1f1c, 16, 16, 2838}, + {0x1f1d, 16, 16, 2838}, + {0x0, 3, 5, 2838}, + {0x1f20, 16, 16, 2840}, + {0x1f21, 16, 16, 2840}, + {0x0, 0, 16, 2840}, + {0x0, 0, 1, 2856}, + {0x0, 0, 1, 2857}, + {0x0, 3, 4, 2858}, + {0x0, 0, 5, 2859}, + {0x0, 0, 2, 2864}, + {0x1f22, 16, 16, 2866}, + {0x0, 0, 1, 2866}, + {0x0, 0, 1, 2867}, + {0x0, 3, 4, 2868}, + {0x0, 0, 5, 2869}, + {0x0, 0, 2, 2874}, + {0x1f23, 16, 16, 2876}, + {0x1f24, 16, 16, 2876}, + {0x1f25, 16, 16, 2876}, + {0x0, 2, 6, 2876}, + {0x1f26, 16, 16, 2880}, + {0x0, 2, 6, 2880}, + {0x1f27, 16, 16, 2884}, + {0x0, 3, 5, 2884}, + {0x1f28, 16, 16, 2886}, + {0x1f29, 16, 16, 2886}, + {0x0, 0, 1, 2886}, + {0x0, 0, 1, 2887}, + {0x0, 3, 4, 2888}, + {0x0, 0, 5, 2889}, + {0x0, 0, 2, 2894}, + {0x1f2a, 16, 16, 2896}, + {0x0, 0, 1, 2896}, + {0x0, 0, 1, 2897}, + {0x0, 3, 4, 2898}, + {0x0, 0, 5, 2899}, + {0x0, 0, 2, 2904}, + {0x1f2b, 16, 16, 2906}, + {0x1f2c, 16, 16, 2906}, + {0x1f2d, 16, 16, 2906}, + {0x0, 2, 6, 2906}, + {0x1f2e, 16, 16, 2910}, + {0x0, 2, 6, 2910}, + {0x1f2f, 16, 16, 2914}, + {0x0, 3, 5, 2914}, + {0x1f30, 16, 16, 2916}, + {0x1f31, 16, 16, 2916}, + {0x0, 0, 10, 2916}, + {0x0, 0, 1, 2926}, + {0x0, 0, 1, 2927}, + {0x0, 3, 4, 2928}, + {0x0, 0, 5, 2929}, + {0x0, 0, 2, 2934}, + {0x1f32, 16, 16, 2936}, + {0x0, 0, 1, 2936}, + {0x0, 0, 1, 2937}, + {0x0, 3, 4, 2938}, + {0x0, 0, 5, 2939}, + {0x0, 0, 2, 2944}, + {0x1f33, 16, 16, 2946}, + {0x1f34, 16, 16, 2946}, + {0x1f35, 16, 16, 2946}, + {0x0, 2, 3, 2946}, + {0x1f36, 16, 16, 2947}, + {0x0, 2, 3, 2947}, + {0x1f37, 16, 16, 2948}, + {0x0, 3, 5, 2948}, + {0x1f38, 16, 16, 2950}, + {0x1f39, 16, 16, 2950}, {0x0, 0, 1, 2950}, {0x0, 0, 1, 2951}, {0x0, 3, 4, 2952}, - {0x0, 3, 4, 2953}, - {0x0, 8, 9, 2954}, - {0x21ae, 16, 16, 2955}, - {0x0, 11, 12, 2955}, - {0x0, 12, 13, 2956}, - {0x2f8fb, 16, 16, 2957}, - {0x0, 0, 1, 2957}, - {0x0, 0, 1, 2958}, - {0x0, 3, 4, 2959}, - {0x0, 0, 5, 2960}, - {0x0, 3, 5, 2965}, - {0x1f21, 16, 16, 2967}, - {0x1f0, 16, 16, 2967}, - {0x1f20, 16, 16, 2967}, - {0x0, 0, 11, 2967}, - {0x0, 0, 1, 2978}, - {0x2f967, 16, 16, 2979}, - {0x0, 3, 9, 2979}, - {0x12f, 16, 16, 2985}, - {0x0, 7, 15, 2985}, - {0x2f9c7, 16, 16, 2993}, - {0x1ecb, 16, 16, 2993}, - {0x0, 2, 12, 2993}, - {0x0, 0, 1, 3003}, - {0x0, 3, 4, 3004}, + {0x0, 0, 5, 2953}, + {0x0, 0, 2, 2958}, + {0x1f3a, 16, 16, 2960}, + {0x0, 0, 1, 2960}, + {0x0, 0, 1, 2961}, + {0x0, 3, 4, 2962}, + {0x0, 0, 5, 2963}, + {0x0, 0, 2, 2968}, + {0x1f3b, 16, 16, 2970}, + {0x1f3c, 16, 16, 2970}, + {0x1f3d, 16, 16, 2970}, + {0x0, 2, 3, 2970}, + {0x1f3e, 16, 16, 2971}, + {0x0, 2, 3, 2971}, + {0x1f3f, 16, 16, 2972}, + {0x0, 3, 5, 2972}, + {0x1f40, 16, 16, 2974}, + {0x1f41, 16, 16, 2974}, + {0x0, 0, 10, 2974}, + {0x0, 0, 1, 2984}, + {0x0, 0, 1, 2985}, + {0x0, 3, 4, 2986}, + {0x0, 0, 1, 2987}, + {0x0, 0, 2, 2988}, + {0x1f42, 16, 16, 2990}, + {0x0, 0, 1, 2990}, + {0x0, 0, 1, 2991}, + {0x0, 3, 4, 2992}, + {0x0, 0, 1, 2993}, + {0x0, 0, 2, 2994}, + {0x1f43, 16, 16, 2996}, + {0x1f44, 16, 16, 2996}, + {0x1f45, 16, 16, 2996}, + {0x0, 3, 5, 2996}, + {0x1f48, 16, 16, 2998}, + {0x1f49, 16, 16, 2998}, + {0x0, 0, 1, 2998}, + {0x0, 0, 1, 2999}, + {0x0, 3, 4, 3000}, + {0x0, 0, 1, 3001}, + {0x0, 0, 2, 3002}, + {0x1f4a, 16, 16, 3004}, + {0x0, 0, 1, 3004}, {0x0, 0, 1, 3005}, - {0x0, 9, 10, 3006}, - {0x0, 9, 11, 3007}, - {0x30dc, 16, 16, 3009}, - {0x0, 6, 11, 3009}, - {0x0, 0, 1, 3014}, - {0x0, 0, 1, 3015}, - {0x0, 12, 13, 3016}, - {0x0, 13, 14, 3017}, - {0x0, 5, 6, 3018}, - {0xccb, 16, 16, 3019}, - {0x0, 4, 9, 3019}, - {0x2f9e7, 16, 16, 3024}, - {0x0, 3, 8, 3024}, - {0x1e32, 16, 16, 3029}, - {0x0, 0, 1, 3029}, - {0x0, 0, 1, 3030}, - {0x0, 3, 4, 3031}, - {0x0, 0, 5, 3032}, - {0x0, 2, 3, 3037}, - {0x1f36, 16, 16, 3038}, - {0x0, 3, 14, 3038}, - {0x0, 0, 1, 3049}, - {0x0, 0, 1, 3050}, - {0x0, 3, 4, 3051}, - {0x0, 0, 1, 3052}, - {0x0, 4, 12, 3053}, - {0x45e, 16, 16, 3061}, - {0x136, 16, 16, 3061}, - {0x0, 6, 8, 3061}, - {0x0, 0, 1, 3063}, - {0x0, 0, 1, 3064}, - {0x0, 11, 12, 3065}, - {0x0, 11, 14, 3066}, - {0x0, 7, 8, 3069}, - {0xbcc, 16, 16, 3070}, - {0x0, 3, 4, 3070}, - {0xf981, 16, 16, 3071}, - {0x0, 0, 1, 3071}, - {0x0, 0, 1, 3072}, - {0x0, 3, 4, 3073}, - {0x0, 0, 4, 3074}, - {0x0, 0, 16, 3078}, - {0x1ec8, 16, 16, 3094}, - {0x0, 3, 4, 3094}, - {0x343, 16, 16, 3095}, - {0x12c, 16, 16, 3095}, - {0x0, 3, 16, 3095}, - {0x2f870, 16, 16, 3108}, - {0xf9b1, 16, 16, 3108}, - {0x0, 0, 15, 3108}, - {0x2f97f, 16, 16, 3123}, - {0x2f8cc, 16, 16, 3123}, - {0x0, 0, 1, 3123}, - {0x0, 0, 1, 3124}, - {0x0, 3, 4, 3125}, - {0x0, 0, 1, 3126}, - {0x0, 4, 5, 3127}, - {0x1ed, 16, 16, 3128}, - {0x30dd, 16, 16, 3128}, - {0x0, 0, 7, 3128}, - {0x0, 11, 12, 3135}, - {0x2f984, 16, 16, 3136}, - {0x0, 1, 12, 3136}, - {0x0, 13, 14, 3147}, + {0x0, 3, 4, 3006}, + {0x0, 0, 1, 3007}, + {0x0, 0, 2, 3008}, + {0x1f4b, 16, 16, 3010}, + {0x1f4c, 16, 16, 3010}, + {0x1f4d, 16, 16, 3010}, + {0x0, 3, 5, 3010}, + {0x1f50, 16, 16, 3012}, + {0x1f51, 16, 16, 3012}, + {0x0, 0, 10, 3012}, + {0x0, 0, 1, 3022}, + {0x0, 0, 1, 3023}, + {0x0, 3, 4, 3024}, + {0x0, 0, 5, 3025}, + {0x0, 0, 2, 3030}, + {0x1f52, 16, 16, 3032}, + {0x0, 0, 1, 3032}, + {0x0, 0, 1, 3033}, + {0x0, 3, 4, 3034}, + {0x0, 0, 5, 3035}, + {0x0, 0, 2, 3040}, + {0x1f53, 16, 16, 3042}, + {0x1f54, 16, 16, 3042}, + {0x1f55, 16, 16, 3042}, + {0x0, 2, 3, 3042}, + {0x1f56, 16, 16, 3043}, + {0x0, 2, 3, 3043}, + {0x1f57, 16, 16, 3044}, + {0x0, 4, 5, 3044}, + {0x1f59, 16, 16, 3045}, + {0x0, 0, 1, 3045}, + {0x0, 0, 1, 3046}, + {0x0, 3, 4, 3047}, + {0x0, 0, 5, 3048}, + {0x0, 0, 2, 3053}, + {0x1f5b, 16, 16, 3055}, + {0x1f5d, 16, 16, 3055}, + {0x0, 2, 3, 3055}, + {0x1f5f, 16, 16, 3056}, + {0x0, 3, 5, 3056}, + {0x1f60, 16, 16, 3058}, + {0x1f61, 16, 16, 3058}, + {0x0, 0, 16, 3058}, + {0x0, 0, 1, 3074}, + {0x0, 0, 1, 3075}, + {0x0, 3, 4, 3076}, + {0x0, 0, 5, 3077}, + {0x0, 0, 2, 3082}, + {0x1f62, 16, 16, 3084}, + {0x0, 0, 1, 3084}, + {0x0, 0, 1, 3085}, + {0x0, 3, 4, 3086}, + {0x0, 0, 5, 3087}, + {0x0, 0, 2, 3092}, + {0x1f63, 16, 16, 3094}, + {0x1f64, 16, 16, 3094}, + {0x1f65, 16, 16, 3094}, + {0x0, 2, 6, 3094}, + {0x1f66, 16, 16, 3098}, + {0x0, 2, 6, 3098}, + {0x1f67, 16, 16, 3102}, + {0x0, 3, 5, 3102}, + {0x1f68, 16, 16, 3104}, + {0x1f69, 16, 16, 3104}, + {0x0, 0, 1, 3104}, + {0x0, 0, 1, 3105}, + {0x0, 3, 4, 3106}, + {0x0, 0, 5, 3107}, + {0x0, 0, 2, 3112}, + {0x1f6a, 16, 16, 3114}, + {0x0, 0, 1, 3114}, + {0x0, 0, 1, 3115}, + {0x0, 3, 4, 3116}, + {0x0, 0, 5, 3117}, + {0x0, 0, 2, 3122}, + {0x1f6b, 16, 16, 3124}, + {0x1f6c, 16, 16, 3124}, + {0x1f6d, 16, 16, 3124}, + {0x0, 2, 6, 3124}, + {0x1f6e, 16, 16, 3128}, + {0x0, 2, 6, 3128}, + {0x1f6f, 16, 16, 3132}, + {0x1f70, 16, 16, 3132}, + {0x1f71, 0, 1, 3132}, + {0x1f72, 16, 16, 3133}, + {0x1f73, 16, 16, 3133}, + {0x1f74, 16, 16, 3133}, + {0x1f75, 0, 1, 3133}, + {0x1f76, 16, 16, 3134}, + {0x1f77, 16, 16, 3134}, + {0x1f78, 16, 16, 3134}, + {0x1f79, 16, 16, 3134}, + {0x1f7a, 16, 16, 3134}, + {0x1f7b, 16, 16, 3134}, + {0x1f7c, 16, 16, 3134}, + {0x1f7d, 0, 1, 3134}, + {0x1f80, 16, 16, 3135}, + {0x1f81, 16, 16, 3135}, + {0x0, 0, 1, 3135}, + {0x0, 0, 1, 3136}, + {0x0, 3, 4, 3137}, + {0x0, 4, 5, 3138}, + {0x0, 5, 6, 3139}, + {0x1f82, 16, 16, 3140}, + {0x0, 0, 1, 3140}, + {0x0, 0, 1, 3141}, + {0x0, 3, 4, 3142}, + {0x0, 4, 5, 3143}, + {0x0, 5, 6, 3144}, + {0x1f83, 16, 16, 3145}, + {0x0, 0, 1, 3145}, + {0x0, 0, 1, 3146}, + {0x0, 3, 4, 3147}, {0x0, 4, 5, 3148}, - {0x2f8a4, 16, 16, 3149}, - {0x2f9c6, 16, 16, 3149}, - {0x2f872, 16, 16, 3149}, - {0x0, 2, 16, 3149}, - {0x0, 12, 13, 3163}, - {0xf9c3, 16, 16, 3164}, - {0xf945, 16, 16, 3164}, + {0x0, 5, 6, 3149}, + {0x1f84, 16, 16, 3150}, + {0x0, 0, 1, 3150}, + {0x0, 0, 1, 3151}, + {0x0, 3, 4, 3152}, + {0x0, 4, 5, 3153}, + {0x0, 5, 6, 3154}, + {0x1f85, 16, 16, 3155}, + {0x0, 0, 1, 3155}, + {0x0, 0, 1, 3156}, + {0x0, 3, 4, 3157}, + {0x0, 4, 5, 3158}, + {0x0, 5, 6, 3159}, + {0x1f86, 16, 16, 3160}, + {0x0, 0, 1, 3160}, + {0x0, 0, 1, 3161}, + {0x0, 3, 4, 3162}, + {0x0, 4, 5, 3163}, {0x0, 5, 6, 3164}, - {0xf90f, 16, 16, 3165}, - {0x0, 1, 16, 3165}, - {0x0, 13, 14, 3180}, - {0x2f884, 16, 16, 3181}, + {0x1f87, 16, 16, 3165}, + {0x1f88, 16, 16, 3165}, + {0x1f89, 16, 16, 3165}, + {0x0, 0, 1, 3165}, + {0x0, 0, 1, 3166}, + {0x0, 3, 4, 3167}, + {0x0, 4, 5, 3168}, + {0x0, 5, 6, 3169}, + {0x1f8a, 16, 16, 3170}, + {0x0, 0, 1, 3170}, + {0x0, 0, 1, 3171}, + {0x0, 3, 4, 3172}, + {0x0, 4, 5, 3173}, + {0x0, 5, 6, 3174}, + {0x1f8b, 16, 16, 3175}, + {0x0, 0, 1, 3175}, + {0x0, 0, 1, 3176}, + {0x0, 3, 4, 3177}, + {0x0, 4, 5, 3178}, + {0x0, 5, 6, 3179}, + {0x1f8c, 16, 16, 3180}, + {0x0, 0, 1, 3180}, {0x0, 0, 1, 3181}, - {0x0, 0, 1, 3182}, - {0x0, 3, 4, 3183}, - {0x0, 0, 1, 3184}, - {0x0, 8, 9, 3185}, - {0x4f9, 16, 16, 3186}, - {0x0, 5, 6, 3186}, - {0x2f921, 16, 16, 3187}, - {0x0, 8, 10, 3187}, - {0xfa4d, 16, 16, 3189}, - {0xfa4e, 16, 16, 3189}, - {0x0, 1, 16, 3189}, - {0x0, 11, 12, 3204}, - {0x2fa15, 16, 16, 3205}, - {0x0, 7, 16, 3205}, - {0xf988, 16, 16, 3214}, - {0x0, 11, 12, 3214}, - {0x2f863, 16, 16, 3215}, - {0x0, 0, 5, 3215}, - {0x0, 7, 8, 3220}, - {0xf950, 16, 16, 3221}, - {0x0, 0, 16, 3221}, - {0x0, 9, 16, 3237}, - {0xf95b, 16, 16, 3244}, - {0x0, 0, 1, 3244}, + {0x0, 3, 4, 3182}, + {0x0, 4, 5, 3183}, + {0x0, 5, 6, 3184}, + {0x1f8d, 16, 16, 3185}, + {0x0, 0, 1, 3185}, + {0x0, 0, 1, 3186}, + {0x0, 3, 4, 3187}, + {0x0, 4, 5, 3188}, + {0x0, 5, 6, 3189}, + {0x1f8e, 16, 16, 3190}, + {0x0, 0, 1, 3190}, + {0x0, 0, 1, 3191}, + {0x0, 3, 4, 3192}, + {0x0, 4, 5, 3193}, + {0x0, 5, 6, 3194}, + {0x1f8f, 16, 16, 3195}, + {0x1f90, 16, 16, 3195}, + {0x1f91, 16, 16, 3195}, + {0x0, 0, 1, 3195}, + {0x0, 0, 1, 3196}, + {0x0, 3, 4, 3197}, + {0x0, 4, 5, 3198}, + {0x0, 5, 6, 3199}, + {0x1f92, 16, 16, 3200}, + {0x0, 0, 1, 3200}, + {0x0, 0, 1, 3201}, + {0x0, 3, 4, 3202}, + {0x0, 4, 5, 3203}, + {0x0, 5, 6, 3204}, + {0x1f93, 16, 16, 3205}, + {0x0, 0, 1, 3205}, + {0x0, 0, 1, 3206}, + {0x0, 3, 4, 3207}, + {0x0, 4, 5, 3208}, + {0x0, 5, 6, 3209}, + {0x1f94, 16, 16, 3210}, + {0x0, 0, 1, 3210}, + {0x0, 0, 1, 3211}, + {0x0, 3, 4, 3212}, + {0x0, 4, 5, 3213}, + {0x0, 5, 6, 3214}, + {0x1f95, 16, 16, 3215}, + {0x0, 0, 1, 3215}, + {0x0, 0, 1, 3216}, + {0x0, 3, 4, 3217}, + {0x0, 4, 5, 3218}, + {0x0, 5, 6, 3219}, + {0x1f96, 16, 16, 3220}, + {0x0, 0, 1, 3220}, + {0x0, 0, 1, 3221}, + {0x0, 3, 4, 3222}, + {0x0, 4, 5, 3223}, + {0x0, 5, 6, 3224}, + {0x1f97, 16, 16, 3225}, + {0x1f98, 16, 16, 3225}, + {0x1f99, 16, 16, 3225}, + {0x0, 0, 1, 3225}, + {0x0, 0, 1, 3226}, + {0x0, 3, 4, 3227}, + {0x0, 4, 5, 3228}, + {0x0, 5, 6, 3229}, + {0x1f9a, 16, 16, 3230}, + {0x0, 0, 1, 3230}, + {0x0, 0, 1, 3231}, + {0x0, 3, 4, 3232}, + {0x0, 4, 5, 3233}, + {0x0, 5, 6, 3234}, + {0x1f9b, 16, 16, 3235}, + {0x0, 0, 1, 3235}, + {0x0, 0, 1, 3236}, + {0x0, 3, 4, 3237}, + {0x0, 4, 5, 3238}, + {0x0, 5, 6, 3239}, + {0x1f9c, 16, 16, 3240}, + {0x0, 0, 1, 3240}, + {0x0, 0, 1, 3241}, + {0x0, 3, 4, 3242}, + {0x0, 4, 5, 3243}, + {0x0, 5, 6, 3244}, + {0x1f9d, 16, 16, 3245}, {0x0, 0, 1, 3245}, - {0x0, 3, 4, 3246}, - {0x0, 0, 1, 3247}, - {0x0, 7, 9, 3248}, - {0x1e8a, 16, 16, 3250}, + {0x0, 0, 1, 3246}, + {0x0, 3, 4, 3247}, + {0x0, 4, 5, 3248}, + {0x0, 5, 6, 3249}, + {0x1f9e, 16, 16, 3250}, {0x0, 0, 1, 3250}, {0x0, 0, 1, 3251}, {0x0, 3, 4, 3252}, - {0x0, 0, 5, 3253}, - {0x0, 0, 2, 3258}, - {0x3b0, 16, 16, 3260}, - {0x1fe2, 16, 16, 3260}, - {0x0, 1, 15, 3260}, - {0x0, 2, 3, 3274}, - {0x2f8e8, 16, 16, 3275}, - {0xf9f3, 16, 16, 3275}, - {0x1e8c, 16, 16, 3275}, + {0x0, 4, 5, 3253}, + {0x0, 5, 6, 3254}, + {0x1f9f, 16, 16, 3255}, + {0x1fa0, 16, 16, 3255}, + {0x1fa1, 16, 16, 3255}, + {0x0, 0, 1, 3255}, + {0x0, 0, 1, 3256}, + {0x0, 3, 4, 3257}, + {0x0, 4, 5, 3258}, + {0x0, 5, 6, 3259}, + {0x1fa2, 16, 16, 3260}, + {0x0, 0, 1, 3260}, + {0x0, 0, 1, 3261}, + {0x0, 3, 4, 3262}, + {0x0, 4, 5, 3263}, + {0x0, 5, 6, 3264}, + {0x1fa3, 16, 16, 3265}, + {0x0, 0, 1, 3265}, + {0x0, 0, 1, 3266}, + {0x0, 3, 4, 3267}, + {0x0, 4, 5, 3268}, + {0x0, 5, 6, 3269}, + {0x1fa4, 16, 16, 3270}, + {0x0, 0, 1, 3270}, + {0x0, 0, 1, 3271}, + {0x0, 3, 4, 3272}, + {0x0, 4, 5, 3273}, + {0x0, 5, 6, 3274}, + {0x1fa5, 16, 16, 3275}, {0x0, 0, 1, 3275}, - {0x0, 3, 4, 3276}, - {0x0, 0, 1, 3277}, - {0x0, 9, 10, 3278}, - {0x0, 9, 10, 3279}, - {0x30bc, 16, 16, 3280}, + {0x0, 0, 1, 3276}, + {0x0, 3, 4, 3277}, + {0x0, 4, 5, 3278}, + {0x0, 5, 6, 3279}, + {0x1fa6, 16, 16, 3280}, {0x0, 0, 1, 3280}, {0x0, 0, 1, 3281}, {0x0, 3, 4, 3282}, - {0x0, 0, 1, 3283}, - {0x0, 4, 5, 3284}, - {0x1e38, 16, 16, 3285}, - {0x0, 9, 10, 3285}, - {0xf966, 16, 16, 3286}, - {0x0, 2, 3, 3286}, - {0x0, 14, 15, 3287}, - {0x2f9e5, 16, 16, 3288}, - {0x0, 1, 2, 3288}, - {0x206, 16, 16, 3289}, - {0x0, 5, 16, 3289}, - {0x1fcb, 16, 16, 3300}, - {0x0, 3, 4, 3300}, - {0x1e42, 16, 16, 3301}, - {0x0, 4, 16, 3301}, - {0x0, 0, 1, 3313}, - {0x2fa0b, 16, 16, 3314}, - {0x0, 13, 14, 3314}, - {0x2f89d, 16, 16, 3315}, - {0x0, 1, 15, 3315}, - {0xfa44, 16, 16, 3329}, - {0x0, 8, 13, 3329}, - {0xfa3a, 16, 16, 3334}, - {0x0, 1, 15, 3334}, - {0x0, 2, 13, 3348}, - {0xf960, 16, 16, 3359}, - {0x0, 1, 2, 3359}, - {0x0, 13, 14, 3360}, - {0x2f94d, 16, 16, 3361}, - {0x0, 13, 14, 3361}, - {0xf923, 16, 16, 3362}, - {0x0, 4, 5, 3362}, - {0xf91d, 16, 16, 3363}, - {0x0, 12, 13, 3363}, - {0x0, 14, 15, 3364}, - {0x2fa10, 16, 16, 3365}, - {0x0, 0, 1, 3365}, - {0x0, 0, 1, 3366}, - {0x0, 3, 4, 3367}, - {0x0, 0, 5, 3368}, - {0x0, 0, 2, 3373}, - {0x1f33, 16, 16, 3375}, - {0x0, 0, 1, 3375}, - {0x0, 0, 1, 3376}, - {0x0, 3, 4, 3377}, + {0x0, 4, 5, 3283}, + {0x0, 5, 6, 3284}, + {0x1fa7, 16, 16, 3285}, + {0x1fa8, 16, 16, 3285}, + {0x1fa9, 16, 16, 3285}, + {0x0, 0, 1, 3285}, + {0x0, 0, 1, 3286}, + {0x0, 3, 4, 3287}, + {0x0, 4, 5, 3288}, + {0x0, 5, 6, 3289}, + {0x1faa, 16, 16, 3290}, + {0x0, 0, 1, 3290}, + {0x0, 0, 1, 3291}, + {0x0, 3, 4, 3292}, + {0x0, 4, 5, 3293}, + {0x0, 5, 6, 3294}, + {0x1fab, 16, 16, 3295}, + {0x0, 0, 1, 3295}, + {0x0, 0, 1, 3296}, + {0x0, 3, 4, 3297}, + {0x0, 4, 5, 3298}, + {0x0, 5, 6, 3299}, + {0x1fac, 16, 16, 3300}, + {0x0, 0, 1, 3300}, + {0x0, 0, 1, 3301}, + {0x0, 3, 4, 3302}, + {0x0, 4, 5, 3303}, + {0x0, 5, 6, 3304}, + {0x1fad, 16, 16, 3305}, + {0x0, 0, 1, 3305}, + {0x0, 0, 1, 3306}, + {0x0, 3, 4, 3307}, + {0x0, 4, 5, 3308}, + {0x0, 5, 6, 3309}, + {0x1fae, 16, 16, 3310}, + {0x0, 0, 1, 3310}, + {0x0, 0, 1, 3311}, + {0x0, 3, 4, 3312}, + {0x0, 4, 5, 3313}, + {0x0, 5, 6, 3314}, + {0x1faf, 16, 16, 3315}, + {0x1fb0, 16, 16, 3315}, + {0x1fb1, 16, 16, 3315}, + {0x0, 0, 13, 3315}, + {0x0, 0, 1, 3328}, + {0x0, 0, 1, 3329}, + {0x0, 3, 4, 3330}, + {0x0, 4, 5, 3331}, + {0x0, 5, 6, 3332}, + {0x1fb2, 16, 16, 3333}, + {0x0, 2, 6, 3333}, + {0x1fb3, 16, 16, 3337}, + {0x0, 0, 1, 3337}, + {0x0, 3, 4, 3338}, + {0x0, 4, 5, 3339}, + {0x0, 5, 6, 3340}, + {0x1fb4, 16, 16, 3341}, + {0x1fb6, 16, 16, 3341}, + {0x0, 6, 16, 3341}, + {0x0, 0, 1, 3351}, + {0x0, 0, 1, 3352}, + {0x0, 3, 4, 3353}, + {0x0, 4, 5, 3354}, + {0x0, 5, 6, 3355}, + {0x1fb7, 16, 16, 3356}, + {0x1fb8, 16, 16, 3356}, + {0x1fb9, 16, 16, 3356}, + {0x1fba, 16, 16, 3356}, + {0x0, 5, 16, 3356}, + {0x1fbb, 16, 16, 3367}, + {0x0, 5, 6, 3367}, + {0x1fbc, 16, 16, 3368}, + {0x0, 2, 3, 3368}, + {0x1fc1, 16, 16, 3369}, + {0x0, 0, 1, 3369}, + {0x0, 0, 1, 3370}, + {0x0, 3, 4, 3371}, + {0x0, 4, 5, 3372}, + {0x0, 5, 6, 3373}, + {0x1fc2, 16, 16, 3374}, + {0x0, 2, 6, 3374}, + {0x1fc3, 16, 16, 3378}, {0x0, 0, 1, 3378}, - {0x0, 7, 8, 3379}, - {0x1e1e, 16, 16, 3380}, - {0x1f35, 16, 16, 3380}, - {0x0, 15, 16, 3380}, - {0xfa41, 16, 16, 3381}, - {0xf9ac, 16, 16, 3381}, - {0x2f858, 16, 16, 3381}, - {0x0, 0, 1, 3381}, - {0x0, 0, 1, 3382}, - {0x0, 3, 4, 3383}, - {0x0, 4, 5, 3384}, - {0x0, 5, 6, 3385}, - {0x1f82, 16, 16, 3386}, - {0x0, 11, 12, 3386}, - {0xf9d8, 16, 16, 3387}, - {0x0, 0, 15, 3387}, - {0x0, 0, 1, 3402}, - {0x0, 0, 1, 3403}, - {0x0, 3, 4, 3404}, - {0x0, 0, 1, 3405}, - {0x0, 0, 9, 3406}, - {0x4d6, 16, 16, 3415}, - {0x0, 5, 6, 3415}, - {0xf983, 16, 16, 3416}, - {0x400, 16, 16, 3416}, - {0x0, 0, 1, 3416}, - {0x0, 0, 1, 3417}, - {0x0, 3, 4, 3418}, - {0x0, 0, 5, 3419}, - {0x0, 0, 2, 3424}, - {0x1f0d, 16, 16, 3426}, - {0x1f0b, 16, 16, 3426}, - {0x401, 16, 16, 3426}, - {0x0, 10, 14, 3426}, - {0x2f8c5, 16, 16, 3430}, - {0xf991, 16, 16, 3430}, - {0x0, 1, 2, 3430}, - {0x207, 16, 16, 3431}, - {0x0, 10, 12, 3431}, - {0x0, 0, 1, 3433}, - {0x0, 0, 1, 3434}, - {0x0, 3, 4, 3435}, + {0x0, 3, 4, 3379}, + {0x0, 4, 5, 3380}, + {0x0, 5, 6, 3381}, + {0x1fc4, 16, 16, 3382}, + {0x1fc6, 16, 16, 3382}, + {0x0, 6, 7, 3382}, + {0x0, 0, 1, 3383}, + {0x0, 0, 1, 3384}, + {0x0, 3, 4, 3385}, + {0x0, 4, 5, 3386}, + {0x0, 5, 6, 3387}, + {0x1fc7, 16, 16, 3388}, + {0x1fc8, 16, 16, 3388}, + {0x1fc9, 16, 16, 3388}, + {0x1fca, 16, 16, 3388}, + {0x1fcb, 16, 16, 3388}, + {0x0, 5, 6, 3388}, + {0x1fcc, 16, 16, 3389}, + {0x0, 0, 1, 3389}, + {0x0, 0, 1, 3390}, + {0x0, 3, 4, 3391}, + {0x0, 0, 5, 3392}, + {0x0, 0, 2, 3397}, + {0x1fcd, 16, 16, 3399}, + {0x1fce, 16, 16, 3399}, + {0x0, 2, 3, 3399}, + {0x1fcf, 16, 16, 3400}, + {0x1fd0, 16, 16, 3400}, + {0x1fd1, 16, 16, 3400}, + {0x1fd2, 16, 16, 3400}, + {0x1fd3, 16, 16, 3400}, + {0x0, 2, 3, 3400}, + {0x1fd6, 16, 16, 3401}, + {0x0, 2, 3, 3401}, + {0x1fd7, 16, 16, 3402}, + {0x1fd8, 16, 16, 3402}, + {0x1fd9, 16, 16, 3402}, + {0x1fda, 16, 16, 3402}, + {0x1fdb, 16, 16, 3402}, + {0x0, 6, 15, 3402}, + {0x0, 0, 1, 3411}, + {0x0, 0, 1, 3412}, + {0x0, 3, 4, 3413}, + {0x0, 0, 5, 3414}, + {0x0, 0, 2, 3419}, + {0x1fdd, 16, 16, 3421}, + {0x1fde, 16, 16, 3421}, + {0x0, 2, 3, 3421}, + {0x1fdf, 16, 16, 3422}, + {0x1fe0, 16, 16, 3422}, + {0x1fe1, 16, 16, 3422}, + {0x1fe2, 16, 16, 3422}, + {0x1fe3, 16, 16, 3422}, + {0x0, 0, 1, 3422}, + {0x0, 0, 1, 3423}, + {0x0, 3, 4, 3424}, + {0x0, 1, 2, 3425}, + {0x0, 3, 5, 3426}, + {0x1fe4, 16, 16, 3428}, + {0x1fe5, 16, 16, 3428}, + {0x0, 2, 3, 3428}, + {0x1fe6, 16, 16, 3429}, + {0x0, 2, 3, 3429}, + {0x1fe7, 16, 16, 3430}, + {0x1fe8, 16, 16, 3430}, + {0x1fe9, 16, 16, 3430}, + {0x1fea, 16, 16, 3430}, + {0x1feb, 16, 16, 3430}, + {0x0, 0, 1, 3430}, + {0x0, 0, 1, 3431}, + {0x0, 3, 4, 3432}, + {0x0, 1, 2, 3433}, + {0x0, 4, 5, 3434}, + {0x1fec, 16, 16, 3435}, + {0x1fed, 16, 16, 3435}, + {0x1fee, 16, 16, 3435}, + {0x1fef, 16, 16, 3435}, + {0x0, 0, 1, 3435}, {0x0, 0, 1, 3436}, - {0x0, 7, 8, 3437}, - {0x1e64, 16, 16, 3438}, - {0x0, 5, 6, 3438}, - {0x2f9a6, 16, 16, 3439}, - {0x0, 4, 8, 3439}, - {0x387, 16, 16, 3443}, - {0x1ffd, 16, 16, 3443}, - {0x0, 9, 11, 3443}, - {0xf928, 16, 16, 3445}, - {0x0, 0, 1, 3445}, - {0x0, 0, 1, 3446}, - {0x0, 3, 4, 3447}, - {0x0, 0, 3, 3448}, - {0x0, 3, 4, 3451}, - {0x1ee2, 16, 16, 3452}, - {0x0, 4, 16, 3452}, - {0x0, 4, 14, 3464}, - {0xf9d1, 16, 16, 3474}, - {0x0, 1, 14, 3474}, - {0x0, 1, 12, 3487}, - {0x2f9e6, 16, 16, 3498}, - {0x0, 13, 14, 3498}, - {0x2fa0c, 16, 16, 3499}, - {0x0, 0, 1, 3499}, + {0x0, 3, 4, 3437}, + {0x0, 4, 5, 3438}, + {0x0, 5, 6, 3439}, + {0x1ff2, 16, 16, 3440}, + {0x0, 2, 6, 3440}, + {0x1ff3, 16, 16, 3444}, + {0x0, 0, 1, 3444}, + {0x0, 3, 4, 3445}, + {0x0, 4, 5, 3446}, + {0x0, 5, 6, 3447}, + {0x1ff4, 16, 16, 3448}, + {0x1ff6, 16, 16, 3448}, + {0x0, 0, 1, 3448}, + {0x0, 0, 1, 3449}, + {0x0, 3, 4, 3450}, + {0x0, 4, 5, 3451}, + {0x0, 5, 6, 3452}, + {0x1ff7, 16, 16, 3453}, + {0x1ff8, 16, 16, 3453}, + {0x1ff9, 16, 16, 3453}, + {0x1ffa, 16, 16, 3453}, + {0x1ffb, 16, 16, 3453}, + {0x0, 5, 6, 3453}, + {0x1ffc, 16, 16, 3454}, + {0x1ffd, 16, 16, 3454}, + {0x0, 0, 3, 3454}, + {0x0, 0, 1, 3457}, + {0x0, 2, 4, 3458}, + {0x2000, 16, 16, 3460}, + {0x2001, 16, 16, 3460}, + {0x0, 9, 14, 3460}, + {0x0, 0, 5, 3465}, + {0x0, 0, 1, 3470}, + {0x0, 0, 1, 3471}, + {0x0, 3, 4, 3472}, + {0x0, 3, 4, 3473}, + {0x0, 8, 9, 3474}, + {0x219a, 16, 16, 3475}, + {0x0, 0, 1, 3475}, + {0x0, 0, 1, 3476}, + {0x0, 3, 4, 3477}, + {0x0, 3, 4, 3478}, + {0x0, 8, 9, 3479}, + {0x219b, 16, 16, 3480}, + {0x0, 0, 1, 3480}, + {0x0, 0, 1, 3481}, + {0x0, 3, 4, 3482}, + {0x0, 3, 4, 3483}, + {0x0, 8, 9, 3484}, + {0x21ae, 16, 16, 3485}, + {0x0, 0, 5, 3485}, + {0x0, 0, 1, 3490}, + {0x0, 0, 1, 3491}, + {0x0, 3, 4, 3492}, + {0x0, 3, 4, 3493}, + {0x0, 8, 9, 3494}, + {0x21cd, 16, 16, 3495}, + {0x0, 0, 1, 3495}, + {0x0, 0, 1, 3496}, + {0x0, 3, 4, 3497}, + {0x0, 3, 4, 3498}, + {0x0, 8, 9, 3499}, + {0x21ce, 16, 16, 3500}, {0x0, 0, 1, 3500}, - {0x0, 3, 4, 3501}, - {0x0, 0, 1, 3502}, - {0x0, 4, 5, 3503}, - {0x230, 16, 16, 3504}, - {0x0, 0, 1, 3504}, - {0x0, 0, 1, 3505}, - {0x0, 3, 4, 3506}, - {0x0, 4, 5, 3507}, - {0x0, 5, 6, 3508}, - {0x1faf, 16, 16, 3509}, - {0x0, 14, 15, 3509}, - {0xf9a6, 16, 16, 3510}, - {0x0, 13, 14, 3510}, - {0x2f87a, 16, 16, 3511}, - {0x0, 0, 7, 3511}, - {0x3ac, 16, 16, 3518}, - {0x1f70, 16, 16, 3518}, - {0x0, 7, 8, 3518}, - {0x0, 0, 1, 3519}, - {0x0, 0, 1, 3520}, - {0x0, 6, 7, 3521}, - {0x0, 5, 6, 3522}, - {0x0, 3, 6, 3523}, - {0x623, 16, 16, 3526}, - {0x625, 16, 16, 3526}, - {0x1fb1, 16, 16, 3526}, - {0x1fb0, 16, 16, 3526}, - {0xf9a2, 16, 16, 3526}, - {0x0, 10, 11, 3526}, - {0xf9d6, 16, 16, 3527}, - {0x0, 3, 4, 3527}, - {0x2f844, 16, 16, 3528}, - {0x0, 1, 2, 3528}, - {0x1e0f, 16, 16, 3529}, - {0x0, 14, 15, 3529}, - {0xf9c0, 16, 16, 3530}, - {0x0, 6, 7, 3530}, - {0xf9dc, 16, 16, 3531}, - {0x2f810, 16, 16, 3531}, - {0x2f814, 16, 16, 3531}, - {0xf978, 16, 16, 3531}, - {0x2f9e4, 16, 16, 3531}, - {0x0, 0, 16, 3531}, - {0x0, 13, 14, 3547}, - {0xf9ed, 16, 16, 3548}, - {0x0, 0, 1, 3548}, - {0x0, 3, 4, 3549}, + {0x0, 0, 1, 3501}, + {0x0, 3, 4, 3502}, + {0x0, 3, 4, 3503}, + {0x0, 8, 9, 3504}, + {0x21cf, 16, 16, 3505}, + {0x0, 0, 12, 3505}, + {0x0, 3, 12, 3517}, + {0x0, 0, 1, 3526}, + {0x0, 0, 1, 3527}, + {0x0, 3, 4, 3528}, + {0x0, 3, 4, 3529}, + {0x0, 8, 9, 3530}, + {0x2204, 16, 16, 3531}, + {0x0, 0, 1, 3531}, + {0x0, 0, 1, 3532}, + {0x0, 3, 4, 3533}, + {0x0, 3, 4, 3534}, + {0x0, 8, 9, 3535}, + {0x2209, 16, 16, 3536}, + {0x0, 0, 1, 3536}, + {0x0, 0, 1, 3537}, + {0x0, 3, 4, 3538}, + {0x0, 3, 4, 3539}, + {0x0, 8, 9, 3540}, + {0x220c, 16, 16, 3541}, + {0x0, 3, 6, 3541}, + {0x0, 0, 1, 3544}, + {0x0, 0, 1, 3545}, + {0x0, 3, 4, 3546}, + {0x0, 3, 4, 3547}, + {0x0, 8, 9, 3548}, + {0x2224, 16, 16, 3549}, + {0x0, 0, 1, 3549}, {0x0, 0, 1, 3550}, - {0x0, 9, 10, 3551}, - {0x0, 9, 11, 3552}, - {0x3071, 16, 16, 3554}, - {0x0, 2, 16, 3554}, - {0x0, 1, 12, 3568}, - {0x2f9af, 16, 16, 3579}, - {0x0, 0, 1, 3579}, - {0x0, 0, 1, 3580}, - {0x0, 3, 4, 3581}, - {0x0, 0, 4, 3582}, - {0x0, 3, 14, 3586}, - {0x1e4b, 16, 16, 3597}, + {0x0, 3, 4, 3551}, + {0x0, 3, 4, 3552}, + {0x0, 8, 9, 3553}, + {0x2226, 16, 16, 3554}, + {0x0, 12, 13, 3554}, + {0x0, 0, 1, 3555}, + {0x0, 0, 1, 3556}, + {0x0, 3, 4, 3557}, + {0x0, 3, 4, 3558}, + {0x0, 8, 9, 3559}, + {0x2241, 16, 16, 3560}, + {0x0, 3, 14, 3560}, + {0x0, 0, 1, 3571}, + {0x0, 0, 1, 3572}, + {0x0, 3, 4, 3573}, + {0x0, 3, 4, 3574}, + {0x0, 8, 9, 3575}, + {0x2244, 16, 16, 3576}, + {0x0, 0, 1, 3576}, + {0x0, 0, 1, 3577}, + {0x0, 3, 4, 3578}, + {0x0, 3, 4, 3579}, + {0x0, 8, 9, 3580}, + {0x2247, 16, 16, 3581}, + {0x0, 0, 1, 3581}, + {0x0, 0, 1, 3582}, + {0x0, 3, 4, 3583}, + {0x0, 3, 4, 3584}, + {0x0, 8, 9, 3585}, + {0x2249, 16, 16, 3586}, + {0x0, 0, 1, 3586}, + {0x0, 0, 1, 3587}, + {0x0, 3, 4, 3588}, + {0x0, 3, 4, 3589}, + {0x0, 8, 9, 3590}, + {0x2260, 16, 16, 3591}, + {0x0, 1, 6, 3591}, + {0x0, 0, 1, 3596}, {0x0, 0, 1, 3597}, - {0x0, 0, 1, 3598}, + {0x0, 3, 4, 3598}, {0x0, 3, 4, 3599}, - {0x0, 4, 5, 3600}, - {0x0, 5, 6, 3601}, - {0x1f9a, 16, 16, 3602}, - {0x0, 5, 7, 3602}, - {0x2f829, 16, 16, 3604}, - {0x2f82a, 16, 16, 3604}, - {0x0, 3, 16, 3604}, - {0x0, 14, 15, 3617}, - {0xf999, 16, 16, 3618}, - {0x0, 7, 15, 3618}, - {0xf9bc, 16, 16, 3626}, - {0x0, 0, 1, 3626}, - {0x0, 0, 1, 3627}, - {0x0, 3, 4, 3628}, - {0x0, 3, 4, 3629}, - {0x0, 8, 9, 3630}, - {0x21cd, 16, 16, 3631}, - {0x0, 0, 1, 3631}, - {0x0, 0, 1, 3632}, - {0x0, 3, 4, 3633}, - {0x0, 3, 4, 3634}, - {0x0, 8, 9, 3635}, - {0x2262, 16, 16, 3636}, - {0x0, 0, 2, 3636}, - {0x3ae, 16, 16, 3638}, - {0x1f74, 16, 16, 3638}, + {0x0, 8, 9, 3600}, + {0x2262, 16, 16, 3601}, + {0x0, 0, 1, 3601}, + {0x0, 0, 1, 3602}, + {0x0, 3, 4, 3603}, + {0x0, 3, 4, 3604}, + {0x0, 8, 9, 3605}, + {0x226d, 16, 16, 3606}, + {0x0, 0, 1, 3606}, + {0x0, 0, 1, 3607}, + {0x0, 3, 4, 3608}, + {0x0, 3, 4, 3609}, + {0x0, 8, 9, 3610}, + {0x226e, 16, 16, 3611}, + {0x0, 0, 1, 3611}, + {0x0, 0, 1, 3612}, + {0x0, 3, 4, 3613}, + {0x0, 3, 4, 3614}, + {0x0, 8, 9, 3615}, + {0x226f, 16, 16, 3616}, + {0x0, 0, 1, 3616}, + {0x0, 0, 1, 3617}, + {0x0, 3, 4, 3618}, + {0x0, 3, 4, 3619}, + {0x0, 8, 9, 3620}, + {0x2270, 16, 16, 3621}, + {0x0, 0, 1, 3621}, + {0x0, 0, 1, 3622}, + {0x0, 3, 4, 3623}, + {0x0, 3, 4, 3624}, + {0x0, 8, 9, 3625}, + {0x2271, 16, 16, 3626}, + {0x0, 2, 14, 3626}, {0x0, 0, 1, 3638}, {0x0, 0, 1, 3639}, {0x0, 3, 4, 3640}, - {0x0, 0, 4, 3641}, - {0x0, 1, 2, 3645}, - {0x1e96, 16, 16, 3646}, - {0x0, 0, 1, 3646}, - {0x0, 3, 4, 3647}, + {0x0, 3, 4, 3641}, + {0x0, 8, 9, 3642}, + {0x2274, 16, 16, 3643}, + {0x0, 0, 1, 3643}, + {0x0, 0, 1, 3644}, + {0x0, 3, 4, 3645}, + {0x0, 3, 4, 3646}, + {0x0, 8, 9, 3647}, + {0x2275, 16, 16, 3648}, {0x0, 0, 1, 3648}, - {0x0, 9, 10, 3649}, - {0x0, 9, 10, 3650}, - {0x30b8, 16, 16, 3651}, - {0x0, 2, 7, 3651}, - {0xf97d, 16, 16, 3656}, - {0xf941, 16, 16, 3656}, - {0x1e47, 16, 16, 3656}, - {0x146, 16, 16, 3656}, - {0x0, 0, 1, 3656}, - {0x1e2d, 16, 16, 3657}, - {0x2f9b2, 16, 16, 3657}, - {0x0, 0, 1, 3657}, - {0xf9fa, 16, 16, 3658}, - {0x3070, 16, 16, 3658}, - {0x0, 8, 9, 3658}, - {0xf90c, 16, 16, 3659}, + {0x0, 0, 1, 3649}, + {0x0, 3, 4, 3650}, + {0x0, 3, 4, 3651}, + {0x0, 8, 9, 3652}, + {0x2278, 16, 16, 3653}, + {0x0, 0, 1, 3653}, + {0x0, 0, 1, 3654}, + {0x0, 3, 4, 3655}, + {0x0, 3, 4, 3656}, + {0x0, 8, 9, 3657}, + {0x2279, 16, 16, 3658}, + {0x0, 0, 1, 3658}, {0x0, 0, 1, 3659}, - {0x0, 0, 1, 3660}, + {0x0, 3, 4, 3660}, {0x0, 3, 4, 3661}, - {0x0, 0, 1, 3662}, - {0x0, 0, 10, 3663}, - {0x1ea6, 16, 16, 3673}, - {0x1ea4, 16, 16, 3673}, - {0x1eaa, 16, 16, 3673}, - {0x0, 14, 15, 3673}, - {0xf92c, 16, 16, 3674}, - {0x1ea8, 16, 16, 3674}, + {0x0, 8, 9, 3662}, + {0x2280, 16, 16, 3663}, + {0x0, 0, 1, 3663}, + {0x0, 0, 1, 3664}, + {0x0, 3, 4, 3665}, + {0x0, 3, 4, 3666}, + {0x0, 8, 9, 3667}, + {0x2281, 16, 16, 3668}, + {0x0, 2, 8, 3668}, {0x0, 0, 1, 3674}, - {0x0, 3, 4, 3675}, - {0x0, 0, 1, 3676}, - {0x0, 9, 10, 3677}, - {0x0, 9, 10, 3678}, - {0x30c2, 16, 16, 3679}, - {0x0, 0, 9, 3679}, - {0x340, 16, 16, 3688}, - {0x341, 16, 16, 3688}, - {0x0, 0, 15, 3688}, - {0x0, 6, 7, 3703}, - {0x2f94c, 16, 16, 3704}, - {0x0, 3, 4, 3704}, - {0x2f8e9, 16, 16, 3705}, - {0x0, 6, 7, 3705}, - {0xf9fe, 16, 16, 3706}, - {0x0, 8, 9, 3706}, - {0x0, 0, 1, 3707}, - {0x2f965, 16, 16, 3708}, - {0x0, 12, 13, 3708}, + {0x0, 0, 1, 3675}, + {0x0, 3, 4, 3676}, + {0x0, 3, 4, 3677}, + {0x0, 8, 9, 3678}, + {0x2284, 16, 16, 3679}, + {0x0, 0, 1, 3679}, + {0x0, 0, 1, 3680}, + {0x0, 3, 4, 3681}, + {0x0, 3, 4, 3682}, + {0x0, 8, 9, 3683}, + {0x2285, 16, 16, 3684}, + {0x0, 0, 1, 3684}, + {0x0, 0, 1, 3685}, + {0x0, 3, 4, 3686}, + {0x0, 3, 4, 3687}, + {0x0, 8, 9, 3688}, + {0x2288, 16, 16, 3689}, + {0x0, 0, 1, 3689}, + {0x0, 0, 1, 3690}, + {0x0, 3, 4, 3691}, + {0x0, 3, 4, 3692}, + {0x0, 8, 9, 3693}, + {0x2289, 16, 16, 3694}, + {0x0, 2, 12, 3694}, + {0x0, 0, 1, 3704}, + {0x0, 0, 1, 3705}, + {0x0, 3, 4, 3706}, + {0x0, 3, 4, 3707}, + {0x0, 8, 9, 3708}, + {0x22ac, 16, 16, 3709}, {0x0, 0, 1, 3709}, {0x0, 0, 1, 3710}, {0x0, 3, 4, 3711}, {0x0, 3, 4, 3712}, {0x0, 8, 9, 3713}, - {0x2241, 16, 16, 3714}, - {0x1f75, 0, 1, 3714}, + {0x22ad, 16, 16, 3714}, + {0x0, 0, 1, 3714}, {0x0, 0, 1, 3715}, {0x0, 3, 4, 3716}, - {0x0, 4, 5, 3717}, - {0x0, 5, 6, 3718}, - {0x1fc4, 16, 16, 3719}, - {0x0, 8, 9, 3719}, - {0x0, 1, 2, 3720}, - {0x2f876, 16, 16, 3721}, - {0x0, 0, 15, 3721}, - {0xfa19, 16, 16, 3736}, - {0x0, 15, 16, 3736}, + {0x0, 3, 4, 3717}, + {0x0, 8, 9, 3718}, + {0x22ae, 16, 16, 3719}, + {0x0, 0, 1, 3719}, + {0x0, 0, 1, 3720}, + {0x0, 3, 4, 3721}, + {0x0, 3, 4, 3722}, + {0x0, 8, 9, 3723}, + {0x22af, 16, 16, 3724}, + {0x0, 0, 1, 3724}, + {0x0, 0, 1, 3725}, + {0x0, 3, 4, 3726}, + {0x0, 3, 4, 3727}, + {0x0, 8, 9, 3728}, + {0x22e0, 16, 16, 3729}, + {0x0, 0, 1, 3729}, + {0x0, 0, 1, 3730}, + {0x0, 3, 4, 3731}, + {0x0, 3, 4, 3732}, + {0x0, 8, 9, 3733}, + {0x22e1, 16, 16, 3734}, + {0x0, 1, 3, 3734}, + {0x0, 0, 1, 3736}, {0x0, 0, 1, 3737}, {0x0, 3, 4, 3738}, - {0x0, 0, 1, 3739}, - {0x0, 9, 10, 3740}, - {0x0, 9, 10, 3741}, - {0x30f7, 16, 16, 3742}, - {0x0, 1, 2, 3742}, - {0xf9e8, 16, 16, 3743}, - {0x0, 1, 16, 3743}, - {0x154, 16, 16, 3758}, - {0x0, 7, 8, 3758}, - {0x0, 12, 13, 3759}, - {0x2f95c, 16, 16, 3760}, - {0x0, 7, 8, 3760}, - {0xf933, 16, 16, 3761}, - {0x0, 0, 16, 3761}, - {0x0, 3, 11, 3777}, - {0x2f8df, 16, 16, 3785}, - {0xfa50, 16, 16, 3785}, - {0xfa4f, 16, 16, 3785}, - {0x0, 8, 12, 3785}, - {0x2f920, 16, 16, 3789}, - {0x0, 3, 4, 3789}, - {0x1e88, 16, 16, 3790}, - {0x0, 0, 1, 3790}, - {0x0, 3, 4, 3791}, - {0x0, 0, 1, 3792}, - {0x0, 9, 10, 3793}, - {0x0, 9, 11, 3794}, - {0x3077, 16, 16, 3796}, - {0x0, 10, 11, 3796}, - {0x2f917, 16, 16, 3797}, - {0x0, 14, 16, 3797}, - {0x0, 12, 13, 3799}, - {0x2f868, 16, 16, 3800}, - {0x0, 1, 7, 3800}, - {0x0, 2, 3, 3806}, - {0x2fa0a, 16, 16, 3807}, - {0x0, 0, 1, 3807}, - {0x0, 0, 1, 3808}, - {0x0, 3, 4, 3809}, - {0x0, 4, 5, 3810}, - {0x0, 5, 6, 3811}, - {0x1f86, 16, 16, 3812}, - {0x0, 1, 6, 3812}, - {0xfa59, 16, 16, 3817}, - {0x2f970, 16, 16, 3817}, + {0x0, 3, 4, 3739}, + {0x0, 8, 9, 3740}, + {0x22e2, 16, 16, 3741}, + {0x0, 0, 1, 3741}, + {0x0, 0, 1, 3742}, + {0x0, 3, 4, 3743}, + {0x0, 3, 4, 3744}, + {0x0, 8, 9, 3745}, + {0x22e3, 16, 16, 3746}, + {0x0, 2, 6, 3746}, + {0x0, 0, 1, 3750}, + {0x0, 0, 1, 3751}, + {0x0, 3, 4, 3752}, + {0x0, 3, 4, 3753}, + {0x0, 8, 9, 3754}, + {0x22ea, 16, 16, 3755}, + {0x0, 0, 1, 3755}, + {0x0, 0, 1, 3756}, + {0x0, 3, 4, 3757}, + {0x0, 3, 4, 3758}, + {0x0, 8, 9, 3759}, + {0x22eb, 16, 16, 3760}, + {0x0, 0, 1, 3760}, + {0x0, 0, 1, 3761}, + {0x0, 3, 4, 3762}, + {0x0, 3, 4, 3763}, + {0x0, 8, 9, 3764}, + {0x22ec, 16, 16, 3765}, + {0x0, 0, 1, 3765}, + {0x0, 0, 1, 3766}, + {0x0, 3, 4, 3767}, + {0x0, 3, 4, 3768}, + {0x0, 8, 9, 3769}, + {0x22ed, 16, 16, 3770}, + {0x0, 0, 16, 3770}, + {0x0, 0, 16, 3786}, + {0x0, 8, 10, 3802}, + {0x2329, 16, 16, 3804}, + {0x232a, 16, 16, 3804}, + {0x0, 6, 16, 3804}, + {0x0, 0, 1, 3814}, + {0x0, 3, 4, 3815}, + {0x0, 0, 1, 3816}, {0x0, 9, 10, 3817}, - {0x2f887, 16, 16, 3818}, - {0x0, 0, 9, 3818}, - {0x0, 8, 9, 3827}, - {0xf9fc, 16, 16, 3828}, - {0x0, 7, 8, 3828}, - {0xf9f4, 16, 16, 3829}, - {0x0, 8, 10, 3829}, - {0x0, 0, 1, 3831}, - {0x0, 0, 1, 3832}, - {0x0, 3, 4, 3833}, - {0x0, 0, 1, 3834}, - {0x0, 8, 9, 3835}, - {0x4da, 16, 16, 3836}, - {0x0, 1, 2, 3836}, - {0xf9b9, 16, 16, 3837}, - {0x0, 3, 13, 3837}, - {0x0, 14, 15, 3847}, - {0x2f9cd, 16, 16, 3848}, - {0x0, 6, 7, 3848}, - {0x2f866, 16, 16, 3849}, - {0x0, 8, 10, 3849}, + {0x0, 9, 10, 3818}, + {0x304c, 16, 16, 3819}, + {0x0, 0, 1, 3819}, + {0x0, 3, 4, 3820}, + {0x0, 0, 1, 3821}, + {0x0, 9, 10, 3822}, + {0x0, 9, 10, 3823}, + {0x304e, 16, 16, 3824}, + {0x0, 0, 1, 3824}, + {0x0, 3, 4, 3825}, + {0x0, 0, 1, 3826}, + {0x0, 9, 10, 3827}, + {0x0, 9, 10, 3828}, + {0x3050, 16, 16, 3829}, + {0x0, 1, 16, 3829}, + {0x0, 0, 1, 3844}, + {0x0, 3, 4, 3845}, + {0x0, 0, 1, 3846}, + {0x0, 9, 10, 3847}, + {0x0, 9, 10, 3848}, + {0x3052, 16, 16, 3849}, + {0x0, 0, 1, 3849}, + {0x0, 3, 4, 3850}, {0x0, 0, 1, 3851}, - {0x0, 0, 1, 3852}, - {0x0, 3, 4, 3853}, + {0x0, 9, 10, 3852}, + {0x0, 9, 10, 3853}, + {0x3054, 16, 16, 3854}, {0x0, 0, 1, 3854}, - {0x0, 2, 3, 3855}, - {0x1ec7, 16, 16, 3856}, - {0x0, 14, 15, 3856}, - {0x2f867, 16, 16, 3857}, - {0x0, 3, 14, 3857}, - {0x118, 16, 16, 3868}, - {0x0, 0, 1, 3868}, + {0x0, 3, 4, 3855}, + {0x0, 0, 1, 3856}, + {0x0, 9, 10, 3857}, + {0x0, 9, 10, 3858}, + {0x3056, 16, 16, 3859}, + {0x0, 0, 1, 3859}, + {0x0, 3, 4, 3860}, + {0x0, 0, 1, 3861}, + {0x0, 9, 10, 3862}, + {0x0, 9, 10, 3863}, + {0x3058, 16, 16, 3864}, + {0x0, 0, 1, 3864}, + {0x0, 3, 4, 3865}, + {0x0, 0, 1, 3866}, + {0x0, 9, 10, 3867}, + {0x0, 9, 10, 3868}, + {0x305a, 16, 16, 3869}, {0x0, 0, 1, 3869}, {0x0, 3, 4, 3870}, - {0x0, 0, 5, 3871}, - {0x0, 0, 2, 3876}, - {0x1f2d, 16, 16, 3878}, - {0x228, 16, 16, 3878}, - {0x0, 4, 15, 3878}, - {0x0, 7, 8, 3889}, - {0x2f8fe, 16, 16, 3890}, - {0x1eb8, 16, 16, 3890}, - {0x0, 2, 13, 3890}, + {0x0, 0, 1, 3871}, + {0x0, 9, 10, 3872}, + {0x0, 9, 10, 3873}, + {0x305c, 16, 16, 3874}, + {0x0, 0, 1, 3874}, + {0x0, 3, 4, 3875}, + {0x0, 0, 1, 3876}, + {0x0, 9, 10, 3877}, + {0x0, 9, 10, 3878}, + {0x305e, 16, 16, 3879}, + {0x0, 0, 1, 3879}, + {0x0, 3, 4, 3880}, + {0x0, 0, 1, 3881}, + {0x0, 9, 10, 3882}, + {0x0, 9, 10, 3883}, + {0x3060, 16, 16, 3884}, + {0x0, 1, 16, 3884}, + {0x0, 0, 1, 3899}, + {0x0, 3, 4, 3900}, {0x0, 0, 1, 3901}, - {0xf9f8, 16, 16, 3902}, - {0x0, 14, 15, 3902}, - {0xf989, 16, 16, 3903}, - {0x0, 2, 8, 3903}, - {0x2f8f3, 16, 16, 3909}, - {0x0, 6, 7, 3909}, - {0x2f873, 16, 16, 3910}, - {0x0, 0, 16, 3910}, - {0x0, 1, 2, 3926}, - {0x2f8be, 16, 16, 3927}, - {0x0, 12, 15, 3927}, - {0xfa18, 16, 16, 3930}, - {0x0, 8, 9, 3930}, - {0xf969, 16, 16, 3931}, - {0x0, 5, 13, 3931}, - {0x0, 3, 13, 3939}, - {0x2f98a, 16, 16, 3949}, - {0x0, 9, 10, 3949}, - {0xf9cd, 16, 16, 3950}, - {0x1e18, 16, 16, 3950}, - {0x0, 0, 1, 3950}, - {0x0, 0, 1, 3951}, - {0x0, 3, 4, 3952}, + {0x0, 9, 10, 3902}, + {0x0, 9, 10, 3903}, + {0x3062, 16, 16, 3904}, + {0x0, 0, 1, 3904}, + {0x0, 3, 4, 3905}, + {0x0, 0, 1, 3906}, + {0x0, 9, 10, 3907}, + {0x0, 9, 10, 3908}, + {0x3065, 16, 16, 3909}, + {0x0, 0, 1, 3909}, + {0x0, 3, 4, 3910}, + {0x0, 0, 1, 3911}, + {0x0, 9, 10, 3912}, + {0x0, 9, 10, 3913}, + {0x3067, 16, 16, 3914}, + {0x0, 0, 1, 3914}, + {0x0, 3, 4, 3915}, + {0x0, 0, 1, 3916}, + {0x0, 9, 10, 3917}, + {0x0, 9, 10, 3918}, + {0x3069, 16, 16, 3919}, + {0x0, 0, 1, 3919}, + {0x0, 3, 4, 3920}, + {0x0, 0, 1, 3921}, + {0x0, 9, 10, 3922}, + {0x0, 9, 11, 3923}, + {0x3070, 16, 16, 3925}, + {0x3071, 16, 16, 3925}, + {0x0, 2, 12, 3925}, + {0x0, 0, 1, 3935}, + {0x0, 3, 4, 3936}, + {0x0, 0, 1, 3937}, + {0x0, 9, 10, 3938}, + {0x0, 9, 11, 3939}, + {0x3073, 16, 16, 3941}, + {0x3074, 16, 16, 3941}, + {0x0, 0, 1, 3941}, + {0x0, 3, 4, 3942}, + {0x0, 0, 1, 3943}, + {0x0, 9, 10, 3944}, + {0x0, 9, 11, 3945}, + {0x3076, 16, 16, 3947}, + {0x3077, 16, 16, 3947}, + {0x0, 0, 1, 3947}, + {0x0, 3, 4, 3948}, + {0x0, 0, 1, 3949}, + {0x0, 9, 10, 3950}, + {0x0, 9, 11, 3951}, + {0x3079, 16, 16, 3953}, + {0x307a, 16, 16, 3953}, {0x0, 0, 1, 3953}, - {0x0, 4, 5, 3954}, - {0x1e5c, 16, 16, 3955}, - {0xf98c, 16, 16, 3955}, - {0x0, 12, 16, 3955}, - {0x0, 13, 14, 3959}, - {0x2fa0e, 16, 16, 3960}, - {0x0, 9, 14, 3960}, - {0x0, 15, 16, 3965}, - {0x2f81f, 16, 16, 3966}, - {0x0, 2, 13, 3966}, - {0x0, 6, 7, 3977}, - {0x2f952, 16, 16, 3978}, - {0x0, 0, 1, 3978}, - {0x0, 0, 1, 3979}, - {0x0, 3, 4, 3980}, - {0x0, 0, 3, 3981}, - {0x0, 1, 13, 3984}, - {0x160, 16, 16, 3996}, - {0x0, 0, 1, 3996}, - {0x0, 3, 4, 3997}, - {0x0, 0, 1, 3998}, - {0x0, 9, 10, 3999}, - {0x0, 9, 10, 4000}, - {0x30ac, 16, 16, 4001}, - {0x0, 9, 10, 4001}, - {0xf9d5, 16, 16, 4002}, - {0x0, 0, 1, 4002}, - {0x0, 0, 1, 4003}, - {0x0, 3, 4, 4004}, - {0x0, 0, 5, 4005}, - {0x0, 0, 2, 4010}, - {0x3ce, 16, 16, 4012}, - {0x0, 11, 12, 4012}, - {0x2f8f8, 16, 16, 4013}, - {0x0, 0, 1, 4013}, - {0x0, 0, 1, 4014}, - {0x0, 3, 4, 4015}, - {0x0, 0, 1, 4016}, - {0x0, 0, 9, 4017}, - {0x451, 16, 16, 4026}, - {0x450, 16, 16, 4026}, - {0x0, 3, 13, 4026}, + {0x0, 3, 4, 3954}, + {0x0, 0, 1, 3955}, + {0x0, 9, 10, 3956}, + {0x0, 9, 11, 3957}, + {0x307c, 16, 16, 3959}, + {0x307d, 16, 16, 3959}, + {0x0, 0, 1, 3959}, + {0x0, 3, 4, 3960}, + {0x0, 0, 1, 3961}, + {0x0, 9, 10, 3962}, + {0x0, 9, 10, 3963}, + {0x3094, 16, 16, 3964}, + {0x0, 13, 14, 3964}, + {0x0, 0, 1, 3965}, + {0x0, 3, 4, 3966}, + {0x0, 0, 1, 3967}, + {0x0, 9, 10, 3968}, + {0x0, 9, 10, 3969}, + {0x309e, 16, 16, 3970}, + {0x0, 6, 16, 3970}, + {0x0, 0, 1, 3980}, + {0x0, 3, 4, 3981}, + {0x0, 0, 1, 3982}, + {0x0, 9, 10, 3983}, + {0x0, 9, 10, 3984}, + {0x30ac, 16, 16, 3985}, + {0x0, 0, 1, 3985}, + {0x0, 3, 4, 3986}, + {0x0, 0, 1, 3987}, + {0x0, 9, 10, 3988}, + {0x0, 9, 10, 3989}, + {0x30ae, 16, 16, 3990}, + {0x0, 0, 1, 3990}, + {0x0, 3, 4, 3991}, + {0x0, 0, 1, 3992}, + {0x0, 9, 10, 3993}, + {0x0, 9, 10, 3994}, + {0x30b0, 16, 16, 3995}, + {0x0, 1, 16, 3995}, + {0x0, 0, 1, 4010}, + {0x0, 3, 4, 4011}, + {0x0, 0, 1, 4012}, + {0x0, 9, 10, 4013}, + {0x0, 9, 10, 4014}, + {0x30b2, 16, 16, 4015}, + {0x0, 0, 1, 4015}, + {0x0, 3, 4, 4016}, + {0x0, 0, 1, 4017}, + {0x0, 9, 10, 4018}, + {0x0, 9, 10, 4019}, + {0x30b4, 16, 16, 4020}, + {0x0, 0, 1, 4020}, + {0x0, 3, 4, 4021}, + {0x0, 0, 1, 4022}, + {0x0, 9, 10, 4023}, + {0x0, 9, 10, 4024}, + {0x30b6, 16, 16, 4025}, + {0x0, 0, 1, 4025}, + {0x0, 3, 4, 4026}, + {0x0, 0, 1, 4027}, + {0x0, 9, 10, 4028}, + {0x0, 9, 10, 4029}, + {0x30b8, 16, 16, 4030}, + {0x0, 0, 1, 4030}, + {0x0, 3, 4, 4031}, + {0x0, 0, 1, 4032}, + {0x0, 9, 10, 4033}, + {0x0, 9, 10, 4034}, + {0x30ba, 16, 16, 4035}, + {0x0, 0, 1, 4035}, {0x0, 3, 4, 4036}, - {0x2fa03, 16, 16, 4037}, - {0x4d7, 16, 16, 4037}, - {0xf9c9, 16, 16, 4037}, - {0x1e60, 16, 16, 4037}, - {0x15a, 16, 16, 4037}, - {0x15c, 16, 16, 4037}, - {0xf91e, 16, 16, 4037}, {0x0, 0, 1, 4037}, - {0x0, 0, 1, 4038}, - {0x0, 3, 4, 4039}, + {0x0, 9, 10, 4038}, + {0x0, 9, 10, 4039}, + {0x30bc, 16, 16, 4040}, {0x0, 0, 1, 4040}, - {0x0, 0, 10, 4041}, - {0x1eab, 16, 16, 4051}, - {0x1ea7, 16, 16, 4051}, - {0x1ea5, 16, 16, 4051}, - {0x1ea9, 16, 16, 4051}, - {0x0, 2, 14, 4051}, - {0x0, 10, 11, 4063}, - {0xfa16, 16, 16, 4064}, - {0x0, 11, 12, 4064}, - {0xf9a4, 16, 16, 4065}, + {0x0, 3, 4, 4041}, + {0x0, 0, 1, 4042}, + {0x0, 9, 10, 4043}, + {0x0, 9, 10, 4044}, + {0x30be, 16, 16, 4045}, + {0x0, 0, 1, 4045}, + {0x0, 3, 4, 4046}, + {0x0, 0, 1, 4047}, + {0x0, 9, 10, 4048}, + {0x0, 9, 10, 4049}, + {0x30c0, 16, 16, 4050}, + {0x0, 1, 16, 4050}, {0x0, 0, 1, 4065}, - {0x0, 0, 1, 4066}, - {0x0, 3, 4, 4067}, - {0x0, 3, 4, 4068}, - {0x0, 8, 9, 4069}, - {0x226d, 16, 16, 4070}, + {0x0, 3, 4, 4066}, + {0x0, 0, 1, 4067}, + {0x0, 9, 10, 4068}, + {0x0, 9, 10, 4069}, + {0x30c2, 16, 16, 4070}, {0x0, 0, 1, 4070}, - {0x0, 0, 1, 4071}, - {0x0, 3, 4, 4072}, - {0x0, 4, 5, 4073}, - {0x0, 5, 6, 4074}, - {0x1f9f, 16, 16, 4075}, + {0x0, 3, 4, 4071}, + {0x0, 0, 1, 4072}, + {0x0, 9, 10, 4073}, + {0x0, 9, 10, 4074}, + {0x30c5, 16, 16, 4075}, {0x0, 0, 1, 4075}, - {0x0, 0, 1, 4076}, - {0x0, 3, 4, 4077}, - {0x0, 4, 5, 4078}, - {0x0, 5, 6, 4079}, - {0x1fad, 16, 16, 4080}, + {0x0, 3, 4, 4076}, + {0x0, 0, 1, 4077}, + {0x0, 9, 10, 4078}, + {0x0, 9, 10, 4079}, + {0x30c7, 16, 16, 4080}, {0x0, 0, 1, 4080}, - {0x0, 0, 1, 4081}, - {0x0, 3, 4, 4082}, - {0x0, 0, 3, 4083}, + {0x0, 3, 4, 4081}, + {0x0, 0, 1, 4082}, + {0x0, 9, 10, 4083}, + {0x0, 9, 10, 4084}, + {0x30c9, 16, 16, 4085}, + {0x0, 0, 1, 4085}, {0x0, 3, 4, 4086}, - {0x1ee3, 16, 16, 4087}, - {0x0, 13, 14, 4087}, - {0x2f9ae, 16, 16, 4088}, - {0x0, 3, 15, 4088}, - {0x1e2b, 16, 16, 4100}, - {0x0, 12, 13, 4100}, - {0x2f9ea, 16, 16, 4101}, - {0x0, 12, 13, 4101}, - {0x0, 10, 11, 4102}, - {0x2f9ab, 16, 16, 4103}, + {0x0, 0, 1, 4087}, + {0x0, 9, 10, 4088}, + {0x0, 9, 11, 4089}, + {0x30d0, 16, 16, 4091}, + {0x30d1, 16, 16, 4091}, + {0x0, 2, 12, 4091}, + {0x0, 0, 1, 4101}, + {0x0, 3, 4, 4102}, {0x0, 0, 1, 4103}, - {0x0, 0, 1, 4104}, - {0x0, 3, 4, 4105}, - {0x0, 0, 5, 4106}, - {0x0, 0, 7, 4111}, - {0x1fba, 16, 16, 4118}, - {0x386, 16, 16, 4118}, - {0x1fb8, 16, 16, 4118}, - {0x0, 7, 8, 4118}, - {0x2f811, 16, 16, 4119}, - {0x1fb9, 16, 16, 4119}, - {0x0, 1, 14, 4119}, - {0x0, 14, 15, 4132}, - {0x2f909, 16, 16, 4133}, - {0x0, 0, 13, 4133}, - {0xf936, 16, 16, 4146}, - {0x0, 6, 7, 4146}, - {0x0, 0, 1, 4147}, - {0x0, 0, 1, 4148}, - {0x0, 3, 4, 4149}, - {0x0, 4, 5, 4150}, - {0x0, 5, 6, 4151}, - {0x1fc7, 16, 16, 4152}, - {0x0, 0, 11, 4152}, - {0x0, 0, 1, 4163}, - {0x0, 0, 1, 4164}, - {0x0, 3, 4, 4165}, - {0x0, 0, 1, 4166}, - {0x0, 7, 9, 4167}, - {0x1e8b, 16, 16, 4169}, - {0x0, 1, 8, 4169}, - {0x1e3f, 16, 16, 4176}, - {0x1e41, 16, 16, 4176}, - {0x0, 0, 16, 4176}, - {0x0, 4, 5, 4192}, - {0xf93f, 16, 16, 4193}, - {0x0, 7, 8, 4193}, - {0x2f964, 16, 16, 4194}, - {0x0, 6, 7, 4194}, - {0x2f9be, 16, 16, 4195}, - {0x1e8d, 16, 16, 4195}, - {0x0, 0, 1, 4195}, - {0x0, 0, 1, 4196}, - {0x0, 3, 4, 4197}, - {0x0, 0, 1, 4198}, - {0x0, 0, 2, 4199}, - {0x1e14, 16, 16, 4201}, - {0x0, 7, 8, 4201}, - {0xfa31, 16, 16, 4202}, - {0x0, 0, 1, 4202}, - {0x0, 0, 1, 4203}, - {0x0, 3, 4, 4204}, - {0x0, 0, 1, 4205}, - {0x0, 1, 2, 4206}, - {0x1e2f, 16, 16, 4207}, - {0x0, 7, 8, 4207}, - {0xf963, 16, 16, 4208}, - {0x2f9b3, 16, 16, 4208}, - {0x0, 0, 1, 4208}, - {0x0, 0, 1, 4209}, - {0x0, 3, 4, 4210}, - {0x0, 0, 5, 4211}, - {0x0, 2, 3, 4216}, - {0x1f3e, 16, 16, 4217}, - {0x0, 0, 1, 4217}, - {0x0, 0, 1, 4218}, - {0x0, 3, 4, 4219}, - {0x0, 0, 1, 4220}, - {0x0, 1, 2, 4221}, - {0x1e2e, 16, 16, 4222}, - {0x1e29, 16, 16, 4222}, - {0x0, 0, 1, 4222}, - {0x0, 0, 1, 4223}, - {0x0, 3, 4, 4224}, - {0x0, 0, 4, 4225}, - {0x0, 1, 2, 4229}, - {0x1e06, 16, 16, 4230}, - {0x1e25, 16, 16, 4230}, - {0xec, 16, 16, 4230}, - {0xed, 16, 16, 4230}, - {0xee, 16, 16, 4230}, - {0x129, 16, 16, 4230}, - {0x12b, 16, 16, 4230}, - {0x12d, 16, 16, 4230}, - {0xef, 16, 16, 4230}, - {0x1ec9, 16, 16, 4230}, - {0x0, 6, 16, 4230}, - {0x2f83b, 16, 16, 4240}, - {0x0, 1, 2, 4240}, - {0xf909, 16, 16, 4241}, - {0x2f969, 16, 16, 4241}, - {0x0, 8, 11, 4241}, - {0x2f9c9, 16, 16, 4244}, - {0x0, 1, 13, 4244}, - {0x1e30, 16, 16, 4256}, - {0x1a1, 16, 16, 4256}, - {0x0, 3, 12, 4256}, - {0x0, 0, 1, 4265}, - {0x0, 0, 1, 4266}, - {0x0, 3, 4, 4267}, - {0x0, 3, 4, 4268}, - {0x0, 8, 9, 4269}, - {0x2209, 16, 16, 4270}, - {0x0, 13, 14, 4270}, - {0xf918, 16, 16, 4271}, - {0xf97b, 16, 16, 4271}, - {0x0, 1, 13, 4271}, - {0x2f9a9, 16, 16, 4283}, - {0x2f9a8, 16, 16, 4283}, - {0x0, 8, 9, 4283}, - {0x2f86e, 16, 16, 4284}, - {0x0, 4, 5, 4284}, - {0x2f9e2, 16, 16, 4285}, - {0xf9de, 16, 16, 4285}, - {0x1e8, 16, 16, 4285}, - {0x0, 3, 4, 4285}, - {0x2f99c, 16, 16, 4286}, - {0x0, 6, 7, 4286}, - {0x2f94b, 16, 16, 4287}, - {0x209, 16, 16, 4287}, - {0x0, 2, 3, 4287}, - {0xfa4a, 16, 16, 4288}, - {0xf9c2, 16, 16, 4288}, - {0x0, 0, 1, 4288}, - {0x0, 0, 1, 4289}, - {0x0, 3, 4, 4290}, - {0x0, 0, 1, 4291}, - {0x0, 8, 9, 4292}, - {0x4db, 16, 16, 4293}, - {0x0, 5, 6, 4293}, - {0xfa1a, 16, 16, 4294}, - {0x0, 4, 15, 4294}, - {0x2f8a9, 16, 16, 4305}, - {0x0, 3, 14, 4305}, - {0x0, 0, 1, 4316}, - {0x0, 0, 1, 4317}, - {0x0, 3, 4, 4318}, - {0x0, 0, 1, 4319}, - {0x0, 4, 12, 4320}, - {0x4f0, 16, 16, 4328}, - {0x0, 5, 10, 4328}, - {0xf993, 16, 16, 4333}, - {0x2f8a8, 16, 16, 4333}, - {0x2f91c, 16, 16, 4333}, - {0x40e, 16, 16, 4333}, - {0x4ee, 16, 16, 4333}, - {0x0, 5, 6, 4333}, - {0x2f986, 16, 16, 4334}, - {0x0, 11, 12, 4334}, - {0xf922, 16, 16, 4335}, - {0x0, 5, 6, 4335}, - {0x1fcc, 16, 16, 4336}, - {0x0, 0, 1, 4336}, - {0x0, 3, 4, 4337}, - {0x0, 0, 1, 4338}, - {0x0, 9, 10, 4339}, - {0x0, 9, 10, 4340}, - {0x3056, 16, 16, 4341}, - {0x0, 7, 16, 4341}, - {0xf9da, 16, 16, 4350}, - {0x0, 7, 8, 4350}, - {0x2f96e, 16, 16, 4351}, - {0xf9d9, 16, 16, 4351}, - {0x4f2, 16, 16, 4351}, - {0x2f8a6, 16, 16, 4351}, - {0x0, 8, 9, 4351}, - {0x2f869, 16, 16, 4352}, - {0x0, 8, 9, 4352}, - {0xf9ef, 16, 16, 4353}, - {0x0, 5, 6, 4353}, - {0x2f8e0, 16, 16, 4354}, - {0x0, 0, 9, 4354}, - {0x0, 11, 12, 4363}, - {0x2f94a, 16, 16, 4364}, - {0x0, 0, 10, 4364}, - {0x0, 13, 14, 4374}, - {0xf9c4, 16, 16, 4375}, - {0x2f8e5, 16, 16, 4375}, - {0x0, 0, 1, 4375}, - {0x1e1a, 16, 16, 4376}, - {0x0, 10, 11, 4376}, - {0x0, 11, 12, 4377}, - {0x2f91f, 16, 16, 4378}, - {0x0, 0, 1, 4378}, - {0x0, 0, 1, 4379}, - {0x0, 3, 4, 4380}, - {0x0, 0, 3, 4381}, - {0x0, 0, 16, 4384}, - {0x200, 16, 16, 4400}, - {0x1cd, 16, 16, 4400}, - {0xc5, 16, 16, 4400}, - {0x0, 13, 14, 4400}, - {0x2f8d6, 16, 16, 4401}, - {0x0, 5, 6, 4401}, - {0xf976, 16, 16, 4402}, - {0x0, 6, 12, 4402}, - {0xf9b5, 16, 16, 4408}, - {0x0, 0, 1, 4408}, - {0x0, 0, 1, 4409}, - {0x0, 3, 4, 4410}, - {0x0, 0, 4, 4411}, - {0x0, 3, 14, 4415}, - {0x21a, 16, 16, 4426}, - {0x162, 16, 16, 4426}, - {0x1e6c, 16, 16, 4426}, - {0x0, 0, 2, 4426}, - {0x1f05, 16, 16, 4428}, - {0x1f03, 16, 16, 4428}, - {0x0, 1, 2, 4428}, - {0x2f8ef, 16, 16, 4429}, - {0x0, 7, 8, 4429}, - {0x2f9ce, 16, 16, 4430}, - {0xf92d, 16, 16, 4430}, - {0x0, 10, 15, 4430}, - {0x0, 8, 9, 4435}, - {0x2f860, 16, 16, 4436}, - {0x1e70, 16, 16, 4436}, - {0x0, 4, 5, 4436}, - {0xfa2d, 16, 16, 4437}, - {0x0, 12, 13, 4437}, - {0x2f8c9, 16, 16, 4438}, - {0x102, 16, 16, 4438}, - {0x226, 16, 16, 4438}, - {0x100, 16, 16, 4438}, - {0xc2, 16, 16, 4438}, - {0xc3, 16, 16, 4438}, - {0xc0, 16, 16, 4438}, - {0xc1, 16, 16, 4438}, - {0x0, 2, 3, 4438}, - {0x2fa06, 16, 16, 4439}, - {0x0, 2, 3, 4439}, - {0x1f57, 16, 16, 4440}, - {0x0, 5, 6, 4440}, - {0x2f9d2, 16, 16, 4441}, - {0xc4, 16, 16, 4441}, - {0x1ea2, 16, 16, 4441}, - {0x0, 8, 9, 4441}, - {0x2f8bb, 16, 16, 4442}, - {0x0, 15, 16, 4442}, - {0xf910, 16, 16, 4443}, - {0x0, 0, 1, 4443}, - {0x0, 0, 1, 4444}, - {0x0, 3, 4, 4445}, - {0x0, 0, 1, 4446}, - {0x0, 1, 8, 4447}, - {0x1e57, 16, 16, 4454}, - {0x1e55, 16, 16, 4454}, - {0x0, 3, 4, 4454}, - {0xf9e0, 16, 16, 4455}, - {0x0, 0, 1, 4455}, - {0x0, 0, 1, 4456}, - {0x0, 3, 4, 4457}, - {0x0, 0, 3, 4458}, - {0x0, 0, 16, 4461}, - {0xd5, 16, 16, 4477}, - {0x0, 0, 10, 4477}, - {0x1ee0, 16, 16, 4487}, - {0x1eda, 16, 16, 4487}, - {0x1edc, 16, 16, 4487}, - {0x0, 0, 1, 4487}, - {0x0, 0, 1, 4488}, - {0x0, 3, 4, 4489}, - {0x0, 3, 4, 4490}, - {0x0, 8, 9, 4491}, - {0x22ea, 16, 16, 4492}, - {0x1ede, 16, 16, 4492}, - {0x0, 1, 16, 4492}, - {0x0, 14, 15, 4507}, - {0x2f852, 16, 16, 4508}, - {0x0, 0, 12, 4508}, - {0x2f8b2, 16, 16, 4520}, - {0x0, 12, 14, 4520}, - {0x0, 4, 5, 4522}, - {0x2f9de, 16, 16, 4523}, - {0x0, 12, 13, 4523}, - {0x2f88a, 16, 16, 4524}, - {0x0, 0, 14, 4524}, - {0xfa32, 16, 16, 4538}, - {0x0, 0, 1, 4538}, - {0x0, 0, 1, 4539}, - {0x0, 3, 4, 4540}, - {0x0, 0, 1, 4541}, - {0x0, 7, 8, 4542}, - {0x1e67, 16, 16, 4543}, - {0x0, 8, 9, 4543}, - {0x2f9b8, 16, 16, 4544}, - {0x0, 9, 10, 4544}, - {0x2f8de, 16, 16, 4545}, - {0x1f7c, 16, 16, 4545}, - {0x0, 2, 3, 4545}, - {0x1fdf, 16, 16, 4546}, - {0x0, 6, 7, 4546}, - {0x0, 11, 12, 4547}, - {0x2f9a5, 16, 16, 4548}, - {0x0, 6, 7, 4548}, - {0xfa01, 16, 16, 4549}, - {0x0, 9, 10, 4549}, - {0x2f809, 16, 16, 4550}, - {0x0, 4, 14, 4550}, - {0x0, 15, 16, 4560}, - {0x2f81c, 16, 16, 4561}, - {0x0, 9, 10, 4561}, - {0x2f9b7, 16, 16, 4562}, - {0x0, 12, 15, 4562}, - {0xf973, 16, 16, 4565}, - {0x0, 0, 1, 4565}, - {0x0, 3, 4, 4566}, - {0x0, 0, 1, 4567}, - {0x0, 9, 10, 4568}, - {0x0, 9, 10, 4569}, - {0x30c0, 16, 16, 4570}, - {0x0, 3, 5, 4570}, - {0x1f08, 16, 16, 4572}, - {0x2f8b3, 16, 16, 4572}, - {0x1f09, 16, 16, 4572}, - {0x2f8ba, 16, 16, 4572}, - {0x0, 0, 1, 4572}, - {0x0, 0, 1, 4573}, - {0x0, 3, 4, 4574}, - {0x0, 0, 5, 4575}, - {0x0, 0, 2, 4580}, - {0x1fd2, 16, 16, 4582}, - {0x390, 16, 16, 4582}, - {0xfa0c, 16, 16, 4582}, - {0x0, 0, 1, 4582}, - {0x0, 0, 1, 4583}, - {0x0, 3, 4, 4584}, - {0x0, 0, 1, 4585}, - {0x0, 1, 2, 4586}, - {0x1e79, 16, 16, 4587}, - {0x0, 4, 16, 4587}, - {0x2f8ad, 16, 16, 4599}, - {0x0, 2, 3, 4599}, - {0x0, 15, 16, 4600}, - {0x2f958, 16, 16, 4601}, - {0x0, 5, 8, 4601}, - {0x2f81b, 16, 16, 4604}, - {0x0, 0, 1, 4604}, - {0x0, 0, 1, 4605}, - {0x0, 3, 4, 4606}, - {0x0, 3, 4, 4607}, - {0x0, 8, 9, 4608}, - {0x2275, 16, 16, 4609}, - {0x0, 0, 13, 4609}, - {0x148, 16, 16, 4622}, - {0x0, 0, 15, 4622}, - {0x0, 14, 15, 4637}, - {0x2f985, 16, 16, 4638}, - {0x0, 0, 7, 4638}, - {0xfa66, 16, 16, 4645}, - {0xf971, 16, 16, 4645}, - {0x0, 1, 2, 4645}, - {0x20b, 16, 16, 4646}, - {0x0, 0, 1, 4646}, - {0x0, 0, 1, 4647}, - {0x0, 3, 4, 4648}, - {0x0, 0, 5, 4649}, - {0x0, 2, 3, 4654}, - {0x1fe6, 16, 16, 4655}, - {0x0, 2, 3, 4655}, - {0x1f3f, 16, 16, 4656}, - {0x0, 7, 8, 4656}, - {0x0, 1, 2, 4657}, - {0x0, 0, 1, 4658}, - {0x0, 0, 1, 4659}, - {0x0, 15, 16, 4660}, - {0x0, 7, 9, 4661}, - {0x0, 0, 1, 4663}, - {0xf81, 16, 16, 4664}, - {0x0, 0, 1, 4664}, - {0x0, 0, 1, 4665}, - {0x0, 3, 4, 4666}, - {0x0, 4, 5, 4667}, - {0x0, 5, 6, 4668}, - {0x1fb2, 16, 16, 4669}, - {0x0, 3, 4, 4669}, - {0x1e04, 16, 16, 4670}, - {0x0, 1, 2, 4670}, - {0x2f96d, 16, 16, 4671}, - {0x0, 0, 16, 4671}, - {0x2f95b, 16, 16, 4687}, - {0x2f95a, 16, 16, 4687}, - {0x1e45, 16, 16, 4687}, - {0x1f9, 16, 16, 4687}, - {0x144, 16, 16, 4687}, - {0x0, 9, 10, 4687}, - {0x2f9eb, 16, 16, 4688}, - {0xf1, 16, 16, 4688}, - {0x0, 0, 1, 4688}, - {0x0, 0, 1, 4689}, - {0x0, 3, 4, 4690}, - {0x0, 0, 1, 4691}, - {0x0, 2, 7, 4692}, - {0x1ead, 16, 16, 4697}, - {0x0, 9, 10, 4697}, - {0x2f913, 16, 16, 4698}, - {0x1eb7, 16, 16, 4698}, - {0x0, 0, 1, 4698}, - {0x0, 0, 1, 4699}, - {0x0, 3, 4, 4700}, - {0x0, 0, 4, 4701}, - {0x0, 0, 13, 4705}, - {0x147, 16, 16, 4718}, - {0x0, 11, 14, 4718}, - {0xfa09, 16, 16, 4721}, - {0x0, 8, 9, 4721}, - {0x2f83d, 16, 16, 4722}, - {0x0, 10, 12, 4722}, - {0x0, 7, 8, 4724}, - {0x2f987, 16, 16, 4725}, - {0x0, 3, 4, 4725}, - {0x2f951, 16, 16, 4726}, - {0x0, 5, 9, 4726}, - {0x0, 14, 15, 4730}, - {0x2f910, 16, 16, 4731}, - {0xfa54, 16, 16, 4731}, - {0x0, 10, 11, 4731}, - {0xfa46, 16, 16, 4732}, - {0x0, 3, 4, 4732}, - {0x2f86d, 16, 16, 4733}, - {0x0, 0, 16, 4733}, - {0x1ecf, 16, 16, 4749}, - {0xf6, 16, 16, 4749}, - {0x14d, 16, 16, 4749}, - {0x0, 3, 4, 4749}, - {0x2f9a0, 16, 16, 4750}, - {0x14f, 16, 16, 4750}, - {0xf3, 16, 16, 4750}, - {0xf2, 16, 16, 4750}, - {0xf5, 16, 16, 4750}, - {0xf4, 16, 16, 4750}, - {0x0, 5, 6, 4750}, - {0x2f8c0, 16, 16, 4751}, - {0x0, 6, 7, 4751}, - {0x2f841, 16, 16, 4752}, - {0x0, 0, 1, 4752}, - {0x0, 0, 1, 4753}, - {0x0, 3, 4, 4754}, - {0x0, 4, 5, 4755}, - {0x0, 5, 6, 4756}, - {0x1f9d, 16, 16, 4757}, - {0x0, 15, 16, 4757}, - {0xf93c, 16, 16, 4758}, - {0x0, 0, 13, 4758}, - {0xf9fd, 16, 16, 4771}, - {0x0, 0, 2, 4771}, - {0x1f65, 16, 16, 4773}, - {0x1f63, 16, 16, 4773}, - {0x2f8ae, 16, 16, 4773}, - {0x0, 0, 1, 4773}, - {0x0, 0, 1, 4774}, - {0x0, 3, 4, 4775}, - {0x0, 0, 1, 4776}, - {0x0, 4, 5, 4777}, - {0x231, 16, 16, 4778}, - {0x0, 2, 4, 4778}, - {0x2f942, 16, 16, 4780}, - {0x2f941, 16, 16, 4780}, - {0xf951, 16, 16, 4780}, - {0x0, 8, 9, 4780}, - {0x2f8ee, 16, 16, 4781}, - {0x2f819, 16, 16, 4781}, - {0x20d, 16, 16, 4781}, - {0x1d2, 16, 16, 4781}, - {0x151, 16, 16, 4781}, - {0x0, 0, 1, 4781}, - {0x0, 0, 1, 4782}, - {0x0, 3, 4, 4783}, - {0x0, 0, 3, 4784}, - {0x0, 3, 4, 4787}, - {0x1e7f, 16, 16, 4788}, - {0x0, 14, 15, 4788}, - {0x2f80c, 16, 16, 4789}, - {0x2f828, 16, 16, 4789}, - {0x0, 15, 16, 4789}, - {0x2f980, 16, 16, 4790}, - {0x0, 5, 10, 4790}, - {0x2f931, 16, 16, 4795}, - {0x0, 14, 15, 4795}, - {0x2f98d, 16, 16, 4796}, - {0x0, 9, 10, 4796}, - {0xfa63, 16, 16, 4797}, - {0xf994, 16, 16, 4797}, - {0x0, 14, 16, 4797}, - {0x2f947, 16, 16, 4799}, - {0x0, 2, 8, 4799}, - {0x0, 0, 1, 4805}, - {0x0, 0, 1, 4806}, - {0x0, 3, 4, 4807}, - {0x0, 3, 4, 4808}, - {0x0, 8, 9, 4809}, - {0x2289, 16, 16, 4810}, - {0x0, 13, 14, 4810}, - {0x0, 1, 2, 4811}, - {0x2f90d, 16, 16, 4812}, - {0x0, 7, 8, 4812}, - {0x2f8a5, 16, 16, 4813}, - {0x0, 5, 11, 4813}, - {0xf9a7, 16, 16, 4819}, - {0x0, 9, 12, 4819}, - {0x2f813, 16, 16, 4822}, - {0x0, 8, 10, 4822}, - {0x0, 15, 16, 4824}, - {0x2f939, 16, 16, 4825}, - {0x0, 0, 1, 4825}, - {0x0, 0, 1, 4826}, - {0x0, 3, 4, 4827}, - {0x0, 0, 1, 4828}, - {0x0, 0, 10, 4829}, - {0x1ec1, 16, 16, 4839}, - {0x0, 10, 11, 4839}, - {0xf911, 16, 16, 4840}, - {0x2f928, 16, 16, 4840}, - {0x0, 11, 12, 4840}, - {0xf9c8, 16, 16, 4841}, - {0x0, 0, 1, 4841}, - {0xf962, 16, 16, 4842}, - {0x0, 14, 15, 4842}, - {0xf957, 16, 16, 4843}, - {0x0, 0, 1, 4843}, - {0x0, 0, 1, 4844}, - {0x0, 3, 4, 4845}, - {0x0, 0, 1, 4846}, - {0x0, 4, 5, 4847}, - {0x1e1, 16, 16, 4848}, - {0x0, 1, 2, 4848}, - {0x1e6e, 16, 16, 4849}, - {0x0, 10, 11, 4849}, - {0x2f8aa, 16, 16, 4850}, - {0x0, 8, 9, 4850}, - {0xf9c5, 16, 16, 4851}, - {0x0, 0, 1, 4851}, - {0x0, 0, 1, 4852}, - {0x0, 3, 4, 4853}, - {0x0, 0, 1, 4854}, - {0x0, 4, 5, 4855}, - {0x1df, 16, 16, 4856}, - {0x0, 0, 2, 4856}, - {0x1f02, 16, 16, 4858}, - {0x1f04, 16, 16, 4858}, - {0x0, 14, 15, 4858}, - {0xf984, 16, 16, 4859}, - {0x0, 2, 3, 4859}, - {0x0, 5, 6, 4860}, - {0x0, 0, 1, 4861}, - {0x0, 1, 2, 4862}, - {0x0, 0, 1, 4863}, - {0x0, 2, 3, 4864}, - {0x0, 14, 15, 4865}, - {0x1026, 16, 16, 4866}, - {0x0, 14, 15, 4866}, - {0x2f8fa, 16, 16, 4867}, - {0x2f9ca, 16, 16, 4867}, - {0x0, 0, 1, 4867}, - {0x0, 0, 1, 4868}, - {0x0, 3, 4, 4869}, - {0x0, 0, 5, 4870}, - {0x0, 0, 2, 4875}, - {0x1f25, 16, 16, 4877}, - {0x0, 11, 16, 4877}, - {0x2f806, 16, 16, 4882}, - {0x0, 1, 2, 4882}, - {0x202, 16, 16, 4883}, - {0x0, 0, 1, 4883}, - {0x2f8b7, 16, 16, 4884}, - {0x0, 2, 3, 4884}, - {0x2f982, 16, 16, 4885}, - {0x0, 8, 10, 4885}, - {0x0, 0, 1, 4887}, - {0x0, 0, 1, 4888}, - {0x0, 3, 4, 4889}, - {0x0, 0, 1, 4890}, - {0x0, 8, 9, 4891}, - {0x4ea, 16, 16, 4892}, - {0x0, 0, 1, 4892}, - {0xf98f, 16, 16, 4893}, - {0x0, 13, 15, 4893}, - {0x0, 13, 14, 4895}, - {0x2f9e1, 16, 16, 4896}, - {0x0, 0, 1, 4896}, - {0x0, 0, 1, 4897}, - {0x0, 3, 4, 4898}, - {0x0, 0, 2, 4899}, - {0x0, 0, 2, 4901}, - {0x38c, 16, 16, 4903}, - {0x0, 2, 7, 4903}, - {0xf90d, 16, 16, 4908}, - {0x0, 2, 3, 4908}, - {0x2f875, 16, 16, 4909}, - {0x0, 14, 15, 4909}, - {0xf9d2, 16, 16, 4910}, - {0x0, 10, 11, 4910}, - {0xf902, 16, 16, 4911}, - {0x22f, 16, 16, 4911}, - {0x0, 2, 3, 4911}, - {0x1f56, 16, 16, 4912}, - {0x0, 3, 8, 4912}, - {0x15e, 16, 16, 4917}, - {0x218, 16, 16, 4917}, - {0x1e62, 16, 16, 4917}, - {0x0, 2, 7, 4917}, - {0xf9ba, 16, 16, 4922}, - {0xf91b, 16, 16, 4922}, - {0x0, 3, 10, 4922}, - {0x0, 6, 7, 4929}, - {0x2f916, 16, 16, 4930}, - {0x0, 0, 1, 4930}, - {0x0, 0, 1, 4931}, - {0x0, 3, 4, 4932}, - {0x0, 3, 4, 4933}, - {0x0, 8, 9, 4934}, - {0x22ae, 16, 16, 4935}, - {0x0, 7, 8, 4935}, - {0x2f973, 16, 16, 4936}, - {0x0, 0, 1, 4936}, - {0x0, 0, 1, 4937}, - {0x0, 3, 4, 4938}, - {0x0, 4, 5, 4939}, - {0x0, 5, 6, 4940}, - {0x1fa6, 16, 16, 4941}, - {0x0, 0, 1, 4941}, - {0x0, 0, 1, 4942}, - {0x0, 3, 4, 4943}, - {0x0, 0, 1, 4944}, - {0x0, 0, 2, 4945}, - {0x1f42, 16, 16, 4947}, - {0x1f44, 16, 16, 4947}, - {0x0, 3, 4, 4947}, - {0x2f843, 16, 16, 4948}, - {0x0, 10, 11, 4948}, - {0x0, 3, 4, 4949}, - {0x2f8ec, 16, 16, 4950}, - {0x0, 0, 10, 4950}, - {0x1edd, 16, 16, 4960}, - {0x1edb, 16, 16, 4960}, - {0x0, 15, 16, 4960}, - {0xf9eb, 16, 16, 4961}, - {0x1ee1, 16, 16, 4961}, - {0x1edf, 16, 16, 4961}, - {0x622, 16, 16, 4961}, - {0x0, 0, 1, 4961}, - {0x0, 3, 4, 4962}, - {0x0, 0, 1, 4963}, - {0x0, 9, 10, 4964}, - {0x0, 9, 11, 4965}, - {0x30d3, 16, 16, 4967}, - {0x0, 1, 4, 4967}, - {0x0, 12, 13, 4970}, - {0x2f8a2, 16, 16, 4971}, - {0x0, 0, 1, 4971}, - {0xf944, 16, 16, 4972}, - {0x0, 0, 1, 4972}, - {0x1e2c, 16, 16, 4973}, - {0x0, 0, 1, 4973}, - {0x0, 0, 1, 4974}, - {0x0, 3, 4, 4975}, - {0x0, 0, 4, 4976}, - {0x0, 3, 8, 4980}, - {0x1e33, 16, 16, 4985}, - {0x0, 2, 3, 4985}, - {0x2f888, 16, 16, 4986}, - {0x0, 4, 5, 4986}, - {0x2f80f, 16, 16, 4987}, - {0x0, 0, 10, 4987}, - {0x0, 14, 15, 4997}, - {0x2fa13, 16, 16, 4998}, - {0x0, 2, 3, 4998}, - {0x2f960, 16, 16, 4999}, - {0x0, 8, 9, 4999}, - {0x0, 0, 1, 5000}, - {0x0, 0, 1, 5001}, - {0x0, 9, 10, 5002}, - {0x0, 3, 4, 5003}, - {0x0, 12, 13, 5004}, - {0x929, 16, 16, 5005}, - {0x0, 0, 1, 5005}, - {0x0, 10, 11, 5006}, - {0x2f8ca, 16, 16, 5007}, - {0x0, 0, 1, 5007}, - {0x0, 0, 1, 5008}, - {0x0, 3, 4, 5009}, - {0x0, 0, 5, 5010}, - {0x0, 2, 6, 5015}, - {0x1fa8, 16, 16, 5019}, - {0x0, 0, 1, 5019}, - {0x0, 0, 1, 5020}, - {0x0, 3, 4, 5021}, - {0x0, 4, 5, 5022}, - {0x0, 5, 6, 5023}, - {0x1f9e, 16, 16, 5024}, - {0x0, 0, 1, 5024}, - {0x0, 3, 4, 5025}, - {0x0, 0, 1, 5026}, - {0x0, 9, 10, 5027}, - {0x0, 9, 10, 5028}, - {0x30fe, 16, 16, 5029}, - {0x0, 2, 13, 5029}, - {0x1e27, 16, 16, 5040}, - {0x1e23, 16, 16, 5040}, - {0x125, 16, 16, 5040}, - {0x0, 4, 5, 5040}, - {0x2f8f1, 16, 16, 5041}, - {0x0, 3, 5, 5041}, - {0x1f60, 16, 16, 5043}, - {0x0, 4, 5, 5043}, - {0x2f971, 16, 16, 5044}, - {0x30d4, 16, 16, 5044}, - {0x1f61, 16, 16, 5044}, - {0x0, 0, 1, 5044}, - {0x0, 3, 4, 5045}, - {0x0, 0, 1, 5046}, - {0x0, 9, 10, 5047}, - {0x0, 9, 10, 5048}, - {0x304c, 16, 16, 5049}, - {0x0, 0, 1, 5049}, - {0x0, 0, 1, 5050}, - {0x0, 3, 4, 5051}, - {0x0, 0, 1, 5052}, - {0x0, 1, 2, 5053}, - {0x1e78, 16, 16, 5054}, - {0x0, 0, 1, 5054}, - {0x0, 3, 4, 5055}, - {0x0, 0, 1, 5056}, - {0x0, 9, 10, 5057}, - {0x0, 9, 11, 5058}, - {0x30d9, 16, 16, 5060}, - {0x0, 8, 9, 5060}, - {0xf9b3, 16, 16, 5061}, - {0x0, 11, 15, 5061}, - {0x2f914, 16, 16, 5065}, - {0x0, 8, 14, 5065}, - {0xfa5c, 16, 16, 5071}, - {0x0, 0, 2, 5071}, - {0x1f34, 16, 16, 5073}, - {0x2f915, 16, 16, 5073}, - {0x0, 0, 1, 5073}, - {0x0, 0, 1, 5074}, - {0x0, 3, 4, 5075}, - {0x0, 4, 5, 5076}, - {0x0, 5, 6, 5077}, - {0x1f85, 16, 16, 5078}, - {0x0, 4, 15, 5078}, - {0x2f907, 16, 16, 5089}, - {0x0, 2, 3, 5089}, - {0x2f8bf, 16, 16, 5090}, - {0x0, 15, 16, 5090}, - {0xf937, 16, 16, 5091}, - {0x2126, 0, 1, 5091}, - {0x0, 0, 1, 5092}, - {0x0, 3, 4, 5093}, - {0x0, 0, 5, 5094}, - {0x0, 0, 2, 5099}, - {0x1ffa, 16, 16, 5101}, - {0x38f, 16, 16, 5101}, - {0x0, 4, 13, 5101}, - {0x0, 0, 1, 5110}, - {0x0, 0, 1, 5111}, - {0x0, 3, 4, 5112}, - {0x0, 0, 1, 5113}, - {0x0, 1, 2, 5114}, - {0x1ff, 16, 16, 5115}, - {0x0, 0, 1, 5115}, - {0x0, 0, 1, 5116}, - {0x0, 3, 4, 5117}, - {0x0, 4, 5, 5118}, - {0x0, 5, 6, 5119}, - {0x1f84, 16, 16, 5120}, - {0xf9f6, 16, 16, 5120}, - {0x0, 8, 10, 5120}, - {0x2329, 16, 16, 5122}, - {0x232a, 16, 16, 5122}, - {0x0, 0, 1, 5122}, - {0x0, 0, 1, 5123}, - {0x0, 3, 4, 5124}, - {0x0, 3, 4, 5125}, - {0x0, 8, 9, 5126}, - {0x2274, 16, 16, 5127}, - {0x30da, 16, 16, 5127}, - {0x0, 4, 13, 5127}, - {0x0, 0, 1, 5136}, - {0x0, 0, 1, 5137}, - {0x0, 3, 4, 5138}, - {0x0, 0, 1, 5139}, - {0x0, 0, 10, 5140}, - {0x1ed4, 16, 16, 5150}, - {0x0, 4, 5, 5150}, - {0xfa34, 16, 16, 5151}, - {0x1ed0, 16, 16, 5151}, - {0x1ed2, 16, 16, 5151}, - {0x1ed6, 16, 16, 5151}, - {0x2f900, 16, 16, 5151}, - {0x0, 4, 5, 5151}, - {0x2f940, 16, 16, 5152}, - {0x0, 0, 1, 5152}, - {0x0, 0, 1, 5153}, - {0x0, 3, 4, 5154}, - {0x0, 0, 1, 5155}, - {0x0, 1, 9, 5156}, - {0x1e4e, 16, 16, 5164}, - {0x1e4c, 16, 16, 5164}, - {0x22c, 16, 16, 5164}, - {0x0, 9, 15, 5164}, - {0x2fa18, 16, 16, 5170}, - {0x0, 12, 13, 5170}, - {0x0, 8, 9, 5171}, - {0x2f86c, 16, 16, 5172}, - {0x0, 7, 8, 5172}, - {0x2fa0f, 16, 16, 5173}, - {0x0, 1, 3, 5173}, - {0x0, 0, 1, 5175}, - {0x0, 0, 1, 5176}, - {0x0, 3, 4, 5177}, - {0x0, 3, 4, 5178}, - {0x0, 8, 9, 5179}, - {0x22e2, 16, 16, 5180}, - {0x0, 4, 5, 5180}, - {0xfa06, 16, 16, 5181}, - {0x0, 0, 1, 5181}, - {0x0, 0, 1, 5182}, - {0x0, 3, 4, 5183}, - {0x0, 0, 4, 5184}, - {0x0, 1, 16, 5188}, - {0x155, 16, 16, 5203}, - {0x0, 8, 9, 5203}, - {0xfa3e, 16, 16, 5204}, - {0x0, 0, 1, 5204}, - {0xf93d, 16, 16, 5205}, - {0x0, 0, 8, 5205}, - {0x0, 0, 1, 5213}, - {0x0, 0, 1, 5214}, - {0x0, 3, 4, 5215}, - {0x0, 0, 3, 5216}, - {0x0, 3, 4, 5219}, - {0x1ef1, 16, 16, 5220}, - {0x0, 6, 7, 5220}, - {0x2f935, 16, 16, 5221}, - {0x2fa17, 16, 16, 5221}, - {0x0, 14, 15, 5221}, - {0xfa48, 16, 16, 5222}, - {0x0, 15, 16, 5222}, - {0xf939, 16, 16, 5223}, - {0x0, 0, 1, 5223}, - {0x0, 0, 1, 5224}, - {0x0, 3, 4, 5225}, - {0x0, 0, 1, 5226}, - {0x0, 12, 13, 5227}, - {0x1ee, 16, 16, 5228}, - {0x0, 8, 9, 5228}, - {0x2fa11, 16, 16, 5229}, - {0x0, 8, 9, 5229}, - {0x2f97e, 16, 16, 5230}, - {0x0, 4, 5, 5230}, - {0xfa12, 16, 16, 5231}, - {0x0, 0, 1, 5231}, - {0x0, 3, 4, 5232}, - {0x0, 0, 1, 5233}, - {0x0, 9, 10, 5234}, - {0x0, 9, 10, 5235}, - {0x305c, 16, 16, 5236}, - {0x0, 10, 11, 5236}, - {0x2f954, 16, 16, 5237}, - {0x0, 7, 13, 5237}, - {0x1e6a, 16, 16, 5243}, - {0x0, 0, 1, 5243}, - {0x0, 0, 1, 5244}, - {0x0, 3, 4, 5245}, - {0x0, 0, 1, 5246}, - {0x0, 1, 2, 5247}, - {0x344, 16, 16, 5248}, - {0x0, 0, 1, 5248}, - {0x0, 0, 1, 5249}, - {0x0, 3, 4, 5250}, - {0x0, 0, 1, 5251}, - {0x0, 0, 2, 5252}, - {0x1f45, 16, 16, 5254}, - {0x1f43, 16, 16, 5254}, - {0x0, 0, 1, 5254}, - {0x0, 0, 1, 5255}, - {0x0, 3, 4, 5256}, - {0x0, 0, 4, 5257}, - {0x0, 1, 2, 5261}, - {0x1e94, 16, 16, 5262}, - {0x0, 15, 16, 5262}, - {0xf9bd, 16, 16, 5263}, - {0x0, 1, 13, 5263}, - {0xfa43, 16, 16, 5275}, - {0x0, 0, 1, 5275}, - {0x0, 0, 1, 5276}, - {0x0, 3, 4, 5277}, - {0x0, 0, 1, 5278}, - {0x0, 0, 2, 5279}, - {0x1e51, 16, 16, 5281}, - {0x1e53, 16, 16, 5281}, - {0x0, 3, 4, 5281}, - {0x2f889, 16, 16, 5282}, - {0x0, 3, 9, 5282}, - {0x104, 16, 16, 5288}, - {0x164, 16, 16, 5288}, - {0x0, 7, 8, 5288}, - {0x2fa05, 16, 16, 5289}, - {0x1ea0, 16, 16, 5289}, - {0x1e00, 16, 16, 5289}, - {0x0, 13, 14, 5289}, - {0x0, 0, 1, 5290}, - {0x0, 3, 4, 5291}, - {0x0, 0, 1, 5292}, - {0x0, 9, 10, 5293}, - {0x0, 9, 10, 5294}, - {0x309e, 16, 16, 5295}, - {0x0, 2, 3, 5295}, - {0x2f840, 16, 16, 5296}, - {0x0, 10, 11, 5296}, - {0x2f948, 16, 16, 5297}, - {0x2f8d5, 16, 16, 5297}, - {0x0, 11, 12, 5297}, - {0xf9f7, 16, 16, 5298}, - {0x0, 0, 1, 5298}, - {0x0, 0, 1, 5299}, - {0x0, 3, 4, 5300}, - {0x0, 0, 1, 5301}, - {0x0, 6, 9, 5302}, - {0x4c1, 16, 16, 5305}, - {0x1f24, 16, 16, 5305}, - {0x0, 0, 1, 5305}, - {0x0, 0, 1, 5306}, - {0x0, 3, 4, 5307}, - {0x0, 0, 5, 5308}, - {0x0, 2, 6, 5313}, - {0x1f6f, 16, 16, 5317}, - {0x4dc, 16, 16, 5317}, - {0x0, 0, 1, 5317}, - {0x0, 0, 1, 5318}, - {0x0, 3, 4, 5319}, - {0x0, 0, 1, 5320}, - {0x0, 1, 2, 5321}, - {0x1fe, 16, 16, 5322}, - {0x1fa9, 16, 16, 5322}, - {0x0, 13, 14, 5322}, - {0x2f99b, 16, 16, 5323}, - {0x0, 0, 1, 5323}, - {0x0, 0, 1, 5324}, - {0x0, 3, 4, 5325}, - {0x0, 3, 4, 5326}, - {0x0, 8, 9, 5327}, - {0x2204, 16, 16, 5328}, - {0x0, 10, 12, 5328}, - {0x0, 8, 9, 5330}, - {0x2f92d, 16, 16, 5331}, - {0x0, 0, 1, 5331}, - {0x0, 0, 1, 5332}, - {0x0, 3, 4, 5333}, - {0x0, 0, 1, 5334}, - {0x0, 0, 10, 5335}, - {0x1ec2, 16, 16, 5345}, - {0x1ebe, 16, 16, 5345}, - {0x1ec0, 16, 16, 5345}, - {0x1ec4, 16, 16, 5345}, - {0x0, 2, 3, 5345}, - {0x2f9e0, 16, 16, 5346}, - {0x0, 2, 3, 5346}, - {0x0, 12, 13, 5347}, - {0x2f834, 16, 16, 5348}, - {0x0, 7, 9, 5348}, - {0x2f904, 16, 16, 5350}, - {0x0, 6, 7, 5350}, - {0x0, 0, 1, 5351}, - {0x0, 0, 1, 5352}, - {0x0, 3, 4, 5353}, - {0x0, 0, 1, 5354}, - {0x0, 8, 9, 5355}, - {0x457, 16, 16, 5356}, - {0x0, 0, 1, 5356}, - {0x0, 0, 1, 5357}, - {0x0, 3, 4, 5358}, - {0x0, 0, 2, 5359}, - {0x0, 0, 2, 5361}, - {0x3ad, 16, 16, 5363}, - {0x0, 0, 14, 5363}, - {0x0, 8, 9, 5377}, - {0x2f8eb, 16, 16, 5378}, - {0x0, 0, 1, 5378}, - {0x0, 0, 1, 5379}, - {0x0, 3, 4, 5380}, - {0x0, 0, 3, 5381}, - {0x0, 3, 8, 5384}, - {0x1e63, 16, 16, 5389}, - {0x15f, 16, 16, 5389}, - {0x219, 16, 16, 5389}, - {0x0, 0, 1, 5389}, - {0x0, 0, 1, 5390}, - {0x0, 3, 4, 5391}, - {0x0, 3, 4, 5392}, - {0x0, 8, 9, 5393}, - {0x2285, 16, 16, 5394}, - {0x4ef, 16, 16, 5394}, - {0xcf, 16, 16, 5394}, - {0x0, 0, 1, 5394}, - {0x0, 0, 1, 5395}, - {0x0, 13, 14, 5396}, - {0x0, 12, 14, 5397}, - {0x0, 15, 16, 5399}, - {0xdde, 16, 16, 5400}, - {0x4f1, 16, 16, 5400}, - {0x130, 16, 16, 5400}, - {0x12a, 16, 16, 5400}, - {0xce, 16, 16, 5400}, - {0x128, 16, 16, 5400}, - {0xcc, 16, 16, 5400}, - {0xcd, 16, 16, 5400}, - {0x0, 10, 11, 5400}, - {0x2f8ea, 16, 16, 5401}, - {0x0, 2, 6, 5401}, - {0x1fc3, 16, 16, 5405}, - {0x0, 7, 8, 5405}, - {0x1e02, 16, 16, 5406}, - {0x1fc6, 16, 16, 5406}, - {0x0, 2, 4, 5406}, - {0x0, 0, 1, 5408}, - {0x0, 0, 1, 5409}, - {0x0, 3, 4, 5410}, - {0x0, 0, 1, 5411}, - {0x0, 0, 10, 5412}, - {0x1eaf, 16, 16, 5422}, - {0x0, 2, 16, 5422}, - {0x2fa02, 16, 16, 5436}, - {0x0, 2, 6, 5436}, - {0x1fb3, 16, 16, 5440}, - {0x0, 0, 1, 5440}, - {0x0, 0, 1, 5441}, - {0x0, 3, 4, 5442}, - {0x0, 0, 1, 5443}, - {0x0, 8, 9, 5444}, - {0x4f4, 16, 16, 5445}, - {0x1fb6, 16, 16, 5445}, - {0x0, 6, 7, 5445}, - {0xfa1c, 16, 16, 5446}, - {0x0, 2, 3, 5446}, - {0x1f37, 16, 16, 5447}, - {0x0, 13, 14, 5447}, - {0x2f815, 16, 16, 5448}, - {0x0, 11, 12, 5448}, - {0x2f855, 16, 16, 5449}, - {0x0, 12, 14, 5449}, - {0x2f8fd, 16, 16, 5451}, - {0x4f3, 16, 16, 5451}, - {0xf968, 16, 16, 5451}, - {0x208, 16, 16, 5451}, - {0x0, 1, 2, 5451}, - {0xf90a, 16, 16, 5452}, - {0x1cf, 16, 16, 5452}, - {0x0, 14, 15, 5452}, - {0xf9c6, 16, 16, 5453}, - {0xfa2a, 16, 16, 5453}, - {0x0, 3, 5, 5453}, - {0x1f68, 16, 16, 5455}, - {0x1f69, 16, 16, 5455}, - {0x0, 1, 5, 5455}, - {0x2f98c, 16, 16, 5459}, - {0x2f893, 16, 16, 5459}, - {0x0, 8, 9, 5459}, - {0xf926, 16, 16, 5460}, - {0x0, 3, 9, 5460}, - {0x1ecd, 16, 16, 5466}, - {0x0, 0, 1, 5466}, - {0x0, 3, 4, 5467}, - {0x0, 0, 1, 5468}, - {0x0, 9, 10, 5469}, - {0x0, 9, 10, 5470}, - {0x3052, 16, 16, 5471}, - {0x1eb, 16, 16, 5471}, - {0x0, 0, 10, 5471}, - {0xf975, 16, 16, 5481}, - {0x2f8c1, 16, 16, 5481}, - {0x0, 0, 1, 5481}, - {0x0, 0, 1, 5482}, - {0x0, 3, 4, 5483}, - {0x0, 0, 4, 5484}, - {0x0, 7, 13, 5488}, - {0x1e0a, 16, 16, 5494}, - {0x0, 0, 1, 5494}, - {0x2f9dc, 16, 16, 5495}, - {0x0, 0, 1, 5495}, - {0x1e1b, 16, 16, 5496}, - {0x0, 2, 15, 5496}, - {0xf952, 16, 16, 5509}, - {0x0, 13, 14, 5509}, - {0xfa1e, 16, 16, 5510}, - {0x0, 4, 5, 5510}, - {0x2f8d1, 16, 16, 5511}, - {0x10e, 16, 16, 5511}, - {0x0, 14, 15, 5511}, - {0xf977, 16, 16, 5512}, - {0x0, 0, 1, 5512}, - {0xfa60, 16, 16, 5513}, - {0x0, 10, 12, 5513}, - {0x0, 1, 2, 5515}, - {0x2f93b, 16, 16, 5516}, - {0x0, 3, 4, 5516}, - {0x1e7d, 16, 16, 5517}, - {0x0, 0, 1, 5517}, - {0x0, 0, 1, 5518}, - {0x0, 3, 4, 5519}, - {0x0, 4, 5, 5520}, - {0x0, 5, 6, 5521}, - {0x1fac, 16, 16, 5522}, - {0x0, 1, 2, 5522}, - {0x0, 8, 9, 5523}, - {0x2f871, 16, 16, 5524}, - {0x0, 10, 13, 5524}, - {0xf947, 16, 16, 5527}, - {0x2f950, 16, 16, 5527}, - {0x0, 0, 1, 5527}, - {0x0, 0, 1, 5528}, - {0x0, 3, 4, 5529}, - {0x0, 4, 5, 5530}, - {0x0, 5, 6, 5531}, - {0x1ff7, 16, 16, 5532}, - {0x0, 10, 15, 5532}, - {0xf96c, 16, 16, 5537}, - {0x0, 0, 1, 5537}, - {0x0, 0, 1, 5538}, - {0x0, 3, 4, 5539}, - {0x0, 0, 1, 5540}, - {0x0, 8, 9, 5541}, - {0x4ec, 16, 16, 5542}, - {0xfa10, 16, 16, 5542}, - {0x0, 0, 10, 5542}, - {0x0, 10, 11, 5552}, - {0x2f9fb, 16, 16, 5553}, - {0xf92f, 16, 16, 5553}, - {0x0, 6, 7, 5553}, - {0xf98b, 16, 16, 5554}, - {0x0, 4, 5, 5554}, - {0x2f8e6, 16, 16, 5555}, - {0x0, 0, 1, 5555}, - {0x0, 0, 1, 5556}, - {0x0, 3, 4, 5557}, - {0x0, 4, 5, 5558}, - {0x0, 5, 6, 5559}, - {0x1fab, 16, 16, 5560}, - {0x0, 7, 8, 5560}, - {0x0, 7, 8, 5561}, - {0x2f9f1, 16, 16, 5562}, - {0x0, 0, 1, 5562}, - {0x0, 0, 1, 5563}, - {0x0, 3, 4, 5564}, - {0x0, 0, 1, 5565}, - {0x0, 4, 5, 5566}, - {0x22a, 16, 16, 5567}, - {0x0, 0, 1, 5567}, - {0x0, 0, 1, 5568}, - {0x0, 3, 4, 5569}, - {0x0, 3, 4, 5570}, - {0x0, 8, 9, 5571}, - {0x219a, 16, 16, 5572}, - {0xf92e, 16, 16, 5572}, - {0xf965, 16, 16, 5572}, - {0x0, 0, 1, 5572}, - {0x0, 0, 1, 5573}, - {0x0, 3, 4, 5574}, - {0x0, 0, 4, 5575}, - {0x0, 7, 13, 5579}, - {0x165, 16, 16, 5585}, - {0x0, 2, 6, 5585}, - {0x1f99, 16, 16, 5589}, - {0x1f2f, 16, 16, 5589}, - {0x0, 0, 1, 5589}, - {0x0, 0, 1, 5590}, - {0x0, 3, 4, 5591}, - {0x0, 0, 1, 5592}, - {0x0, 8, 9, 5593}, - {0x4de, 16, 16, 5594}, - {0x0, 14, 15, 5594}, - {0xfa1d, 16, 16, 5595}, - {0x1ec3, 16, 16, 5595}, - {0x0, 0, 1, 5595}, - {0x0, 0, 1, 5596}, - {0x0, 3, 4, 5597}, - {0x0, 0, 2, 5598}, - {0x0, 0, 2, 5600}, - {0x1f78, 16, 16, 5602}, - {0x3cc, 16, 16, 5602}, - {0x1ec5, 16, 16, 5602}, - {0x1ebf, 16, 16, 5602}, - {0x0, 11, 12, 5602}, - {0x2fa1c, 16, 16, 5603}, - {0x0, 3, 15, 5603}, - {0x2f8db, 16, 16, 5615}, - {0x0, 1, 2, 5615}, - {0xf904, 16, 16, 5616}, - {0x0, 3, 4, 5616}, - {0x1e92, 16, 16, 5617}, - {0x0, 1, 2, 5617}, - {0x2f9c1, 16, 16, 5618}, - {0x1e6b, 16, 16, 5618}, - {0x1e97, 16, 16, 5618}, - {0x0, 0, 1, 5618}, - {0x0, 0, 1, 5619}, - {0x0, 3, 4, 5620}, - {0x0, 4, 5, 5621}, - {0x0, 5, 6, 5622}, - {0x1ff2, 16, 16, 5623}, - {0x0, 0, 1, 5623}, - {0x0, 0, 1, 5624}, - {0x0, 3, 4, 5625}, - {0x0, 0, 2, 5626}, - {0x0, 0, 9, 5628}, - {0x3aa, 16, 16, 5637}, - {0x0, 0, 1, 5637}, - {0x0, 0, 1, 5638}, - {0x0, 3, 4, 5639}, - {0x0, 0, 1, 5640}, - {0x0, 6, 9, 5641}, - {0x4c2, 16, 16, 5644}, - {0x4dd, 16, 16, 5644}, - {0x0, 8, 9, 5644}, - {0x2f885, 16, 16, 5645}, - {0x1fda, 16, 16, 5645}, - {0x38a, 16, 16, 5645}, - {0x1fd8, 16, 16, 5645}, - {0x1fd9, 16, 16, 5645}, - {0x0, 5, 10, 5645}, - {0xf9a3, 16, 16, 5650}, - {0x0, 0, 1, 5650}, - {0xf921, 16, 16, 5651}, - {0x2f89f, 16, 16, 5651}, - {0x0, 0, 1, 5651}, - {0x0, 0, 1, 5652}, - {0x0, 3, 4, 5653}, - {0x0, 3, 4, 5654}, - {0x0, 8, 9, 5655}, - {0x2288, 16, 16, 5656}, - {0x0, 0, 1, 5656}, - {0x0, 0, 1, 5657}, - {0x0, 3, 4, 5658}, - {0x0, 0, 4, 5659}, - {0x0, 1, 12, 5663}, - {0x1b0, 16, 16, 5674}, - {0xf9aa, 16, 16, 5674}, - {0x0, 2, 3, 5674}, - {0x0, 0, 1, 5675}, - {0x0, 0, 1, 5676}, - {0x0, 3, 4, 5677}, - {0x0, 0, 1, 5678}, - {0x0, 12, 13, 5679}, - {0x1ef, 16, 16, 5680}, - {0x217, 16, 16, 5680}, - {0x0, 11, 12, 5680}, - {0x2f9bd, 16, 16, 5681}, - {0x0, 0, 1, 5681}, - {0x0, 0, 1, 5682}, - {0x0, 3, 4, 5683}, - {0x0, 0, 4, 5684}, - {0x0, 0, 1, 5688}, - {0x1e74, 16, 16, 5689}, - {0x0, 0, 1, 5689}, - {0x0, 0, 1, 5690}, - {0x0, 3, 4, 5691}, - {0x0, 0, 1, 5692}, - {0x0, 0, 10, 5693}, - {0x1eb0, 16, 16, 5703}, - {0x1eae, 16, 16, 5703}, - {0x1eb4, 16, 16, 5703}, - {0x1eb2, 16, 16, 5703}, - {0x0, 8, 9, 5703}, - {0x2f972, 16, 16, 5704}, - {0x0, 15, 16, 5704}, - {0x2f837, 16, 16, 5705}, - {0x0, 0, 1, 5705}, - {0x0, 0, 1, 5706}, - {0x0, 3, 4, 5707}, - {0x0, 4, 5, 5708}, - {0x0, 5, 6, 5709}, - {0x1fa7, 16, 16, 5710}, - {0x0, 0, 1, 5710}, - {0x0, 3, 4, 5711}, - {0x0, 0, 1, 5712}, - {0x0, 9, 10, 5713}, - {0x0, 9, 10, 5714}, - {0x305a, 16, 16, 5715}, - {0x0, 1, 13, 5715}, - {0x1e9, 16, 16, 5727}, - {0x0, 15, 16, 5727}, - {0x2f908, 16, 16, 5728}, - {0x0, 15, 16, 5728}, - {0x2f8fc, 16, 16, 5729}, - {0xfa51, 16, 16, 5729}, - {0x0, 13, 14, 5729}, - {0x2f8e7, 16, 16, 5730}, - {0x0, 5, 6, 5730}, - {0x1fbc, 16, 16, 5731}, - {0x0, 10, 11, 5731}, - {0x2f8a1, 16, 16, 5732}, - {0x0, 1, 14, 5732}, - {0xfa26, 16, 16, 5745}, - {0x0, 11, 15, 5745}, - {0x0, 0, 1, 5749}, - {0x0, 0, 1, 5750}, - {0x0, 3, 4, 5751}, - {0x0, 3, 4, 5752}, - {0x0, 8, 9, 5753}, - {0x2260, 16, 16, 5754}, - {0x0, 3, 4, 5754}, - {0x0, 12, 13, 5755}, - {0x2f997, 16, 16, 5756}, - {0x0, 4, 5, 5756}, - {0x2f853, 16, 16, 5757}, - {0x3076, 16, 16, 5757}, - {0x0, 12, 13, 5757}, - {0xf92b, 16, 16, 5758}, - {0x0, 2, 3, 5758}, - {0x0, 2, 3, 5759}, - {0x2f803, 16, 16, 5760}, - {0x0, 1, 2, 5760}, - {0x20a, 16, 16, 5761}, - {0x0, 0, 1, 5761}, - {0x0, 0, 1, 5762}, - {0x0, 12, 13, 5763}, - {0x0, 12, 14, 5764}, - {0x0, 2, 3, 5766}, - {0xcca, 16, 16, 5767}, - {0x0, 8, 9, 5767}, - {0x2f865, 16, 16, 5768}, - {0x1e31, 16, 16, 5768}, - {0x0, 3, 4, 5768}, - {0x0, 10, 11, 5769}, - {0x2f80d, 16, 16, 5770}, - {0x0, 2, 8, 5770}, - {0x2f817, 16, 16, 5776}, - {0x2f8d2, 16, 16, 5776}, - {0x2f9e3, 16, 16, 5776}, - {0x0, 0, 2, 5776}, - {0x1f3c, 16, 16, 5778}, - {0x1f3a, 16, 16, 5778}, - {0x0, 6, 8, 5778}, - {0xb48, 16, 16, 5780}, - {0xb4c, 16, 16, 5780}, - {0x0, 0, 1, 5780}, - {0x0, 0, 1, 5781}, - {0x0, 3, 4, 5782}, - {0x0, 3, 4, 5783}, - {0x0, 8, 9, 5784}, - {0x2280, 16, 16, 5785}, - {0x0, 0, 1, 5785}, - {0x0, 3, 4, 5786}, - {0x0, 0, 1, 5787}, - {0x0, 9, 10, 5788}, - {0x0, 9, 10, 5789}, - {0x30f4, 16, 16, 5790}, - {0x0, 6, 8, 5790}, - {0xf9b2, 16, 16, 5792}, - {0x0, 3, 8, 5792}, - {0x1e5b, 16, 16, 5797}, - {0x0, 0, 1, 5797}, - {0x0, 0, 1, 5798}, - {0x0, 3, 4, 5799}, - {0x0, 0, 1, 5800}, - {0x0, 8, 9, 5801}, - {0x4f5, 16, 16, 5802}, - {0x157, 16, 16, 5802}, - {0x0, 9, 10, 5802}, - {0x2f9c2, 16, 16, 5803}, - {0x0, 5, 6, 5803}, - {0x2f988, 16, 16, 5804}, - {0x0, 0, 1, 5804}, - {0x0, 0, 1, 5805}, - {0x0, 3, 4, 5806}, - {0x0, 0, 1, 5807}, - {0x0, 0, 9, 5808}, - {0x40d, 16, 16, 5817}, - {0x0, 0, 1, 5817}, - {0x0, 0, 1, 5818}, - {0x0, 3, 4, 5819}, - {0x0, 0, 1, 5820}, - {0x0, 1, 8, 5821}, - {0x1e56, 16, 16, 5828}, - {0x1e54, 16, 16, 5828}, - {0x0, 2, 9, 5828}, - {0x2f83e, 16, 16, 5835}, - {0x0, 0, 1, 5835}, - {0x0, 0, 1, 5836}, - {0x0, 3, 4, 5837}, - {0x0, 4, 5, 5838}, - {0x0, 5, 6, 5839}, - {0x1fa2, 16, 16, 5840}, - {0xf980, 16, 16, 5840}, - {0x0, 10, 11, 5840}, - {0x0, 7, 8, 5841}, - {0x2f8f0, 16, 16, 5842}, - {0x0, 14, 15, 5842}, - {0xd4a, 16, 16, 5843}, - {0x0, 6, 15, 5843}, - {0x2f8ff, 16, 16, 5852}, - {0x0, 0, 1, 5852}, - {0x0, 0, 1, 5853}, - {0x0, 3, 4, 5854}, - {0x0, 0, 3, 5855}, - {0x0, 3, 4, 5858}, - {0x1e89, 16, 16, 5859}, - {0x0, 0, 1, 5859}, - {0x0, 0, 1, 5860}, - {0x0, 9, 10, 5861}, - {0x0, 3, 4, 5862}, - {0x0, 12, 13, 5863}, - {0x934, 16, 16, 5864}, - {0x0, 2, 3, 5864}, - {0x2f8ac, 16, 16, 5865}, - {0x0, 4, 5, 5865}, - {0x2f9ac, 16, 16, 5866}, - {0x0, 11, 12, 5866}, - {0x2f816, 16, 16, 5867}, - {0x0, 14, 15, 5867}, - {0x2f911, 16, 16, 5868}, - {0x0, 8, 9, 5868}, - {0x0, 6, 7, 5869}, - {0x2f96b, 16, 16, 5870}, - {0x1e15, 16, 16, 5870}, - {0x0, 3, 4, 5870}, - {0x1e05, 16, 16, 5871}, - {0x0, 8, 9, 5871}, - {0x2f93f, 16, 16, 5872}, - {0x0, 8, 9, 5872}, - {0x2f8d0, 16, 16, 5873}, - {0x0, 0, 1, 5873}, - {0x0, 0, 1, 5874}, - {0x0, 6, 7, 5875}, - {0x0, 5, 6, 5876}, - {0x0, 4, 5, 5877}, - {0x6d3, 16, 16, 5878}, - {0x0, 1, 2, 5878}, - {0x1e0e, 16, 16, 5879}, - {0x0, 7, 10, 5879}, - {0xfa33, 16, 16, 5882}, - {0x0, 0, 1, 5882}, - {0x0, 0, 1, 5883}, - {0x0, 3, 4, 5884}, - {0x0, 3, 4, 5885}, - {0x0, 8, 9, 5886}, - {0x2279, 16, 16, 5887}, - {0x0, 2, 12, 5887}, - {0x0, 1, 2, 5897}, - {0x2f9b0, 16, 16, 5898}, - {0x0, 0, 1, 5898}, - {0xfa39, 16, 16, 5899}, - {0x2f825, 16, 16, 5899}, - {0x0, 3, 4, 5899}, - {0x2f983, 16, 16, 5900}, - {0xfa05, 16, 16, 5900}, - {0x0, 9, 10, 5900}, - {0xf916, 16, 16, 5901}, - {0xf915, 16, 16, 5901}, - {0x0, 12, 13, 5901}, - {0xf908, 16, 16, 5902}, - {0x0, 9, 13, 5902}, - {0xf955, 16, 16, 5906}, - {0x0, 14, 15, 5906}, - {0xf9e1, 16, 16, 5907}, - {0x2f8d3, 16, 16, 5907}, + {0x0, 9, 10, 4104}, + {0x0, 9, 11, 4105}, + {0x30d3, 16, 16, 4107}, + {0x30d4, 16, 16, 4107}, + {0x0, 0, 1, 4107}, + {0x0, 3, 4, 4108}, + {0x0, 0, 1, 4109}, + {0x0, 9, 10, 4110}, + {0x0, 9, 11, 4111}, + {0x30d6, 16, 16, 4113}, + {0x30d7, 16, 16, 4113}, + {0x0, 0, 1, 4113}, + {0x0, 3, 4, 4114}, + {0x0, 0, 1, 4115}, + {0x0, 9, 10, 4116}, + {0x0, 9, 11, 4117}, + {0x30d9, 16, 16, 4119}, + {0x30da, 16, 16, 4119}, + {0x0, 0, 1, 4119}, + {0x0, 3, 4, 4120}, + {0x0, 0, 1, 4121}, + {0x0, 9, 10, 4122}, + {0x0, 9, 11, 4123}, + {0x30dc, 16, 16, 4125}, + {0x30dd, 16, 16, 4125}, + {0x0, 0, 1, 4125}, + {0x0, 3, 4, 4126}, + {0x0, 0, 1, 4127}, + {0x0, 9, 10, 4128}, + {0x0, 9, 10, 4129}, + {0x30f4, 16, 16, 4130}, + {0x0, 15, 16, 4130}, + {0x0, 0, 1, 4131}, + {0x0, 3, 4, 4132}, + {0x0, 0, 1, 4133}, + {0x0, 9, 10, 4134}, + {0x0, 9, 10, 4135}, + {0x30f7, 16, 16, 4136}, + {0x0, 0, 14, 4136}, + {0x0, 0, 1, 4150}, + {0x0, 3, 4, 4151}, + {0x0, 0, 1, 4152}, + {0x0, 9, 10, 4153}, + {0x0, 9, 10, 4154}, + {0x30f8, 16, 16, 4155}, + {0x0, 0, 1, 4155}, + {0x0, 3, 4, 4156}, + {0x0, 0, 1, 4157}, + {0x0, 9, 10, 4158}, + {0x0, 9, 10, 4159}, + {0x30f9, 16, 16, 4160}, + {0x0, 0, 1, 4160}, + {0x0, 3, 4, 4161}, + {0x0, 0, 1, 4162}, + {0x0, 9, 10, 4163}, + {0x0, 9, 10, 4164}, + {0x30fa, 16, 16, 4165}, + {0x0, 0, 1, 4165}, + {0x0, 3, 4, 4166}, + {0x0, 0, 1, 4167}, + {0x0, 9, 10, 4168}, + {0x0, 9, 10, 4169}, + {0x30fe, 16, 16, 4170}, + {0x0, 0, 16, 4170}, + {0x0, 4, 14, 4186}, + {0x0, 8, 9, 4196}, + {0xf900, 16, 16, 4197}, + {0x0, 0, 16, 4197}, + {0x0, 1, 16, 4213}, + {0x0, 4, 9, 4228}, + {0xf901, 16, 16, 4233}, + {0x0, 12, 14, 4233}, + {0x0, 10, 11, 4235}, + {0xf902, 16, 16, 4236}, + {0x0, 1, 9, 4236}, + {0xf903, 16, 16, 4244}, + {0x0, 1, 14, 4244}, + {0x0, 1, 2, 4257}, + {0xf904, 16, 16, 4258}, + {0x0, 0, 16, 4258}, + {0x0, 0, 15, 4274}, + {0x0, 2, 14, 4289}, + {0xf905, 16, 16, 4301}, + {0x0, 0, 16, 4301}, + {0x0, 0, 16, 4317}, + {0x0, 5, 12, 4333}, + {0xf906, 16, 16, 4340}, + {0x0, 0, 16, 4340}, + {0x0, 0, 10, 4356}, + {0x0, 12, 13, 4366}, + {0xf908, 16, 16, 4367}, + {0x0, 0, 15, 4367}, + {0x0, 1, 2, 4382}, + {0xf909, 16, 16, 4383}, + {0x0, 1, 14, 4383}, + {0x0, 1, 2, 4396}, + {0xf90a, 16, 16, 4397}, + {0x0, 1, 13, 4397}, + {0x0, 4, 8, 4409}, + {0xf90b, 16, 16, 4413}, + {0x0, 8, 9, 4413}, + {0xf90c, 16, 16, 4414}, + {0x0, 4, 16, 4414}, + {0x0, 2, 7, 4426}, + {0x2f8b1, 16, 16, 4431}, + {0x0, 0, 16, 4431}, + {0x0, 1, 16, 4447}, + {0x0, 9, 10, 4462}, + {0xf90e, 16, 16, 4463}, + {0x0, 7, 16, 4463}, + {0x0, 5, 6, 4472}, + {0xf90f, 16, 16, 4473}, + {0x0, 0, 15, 4473}, + {0x0, 15, 16, 4488}, + {0xf910, 16, 16, 4489}, + {0x0, 0, 15, 4489}, + {0x0, 10, 11, 4504}, + {0xf911, 16, 16, 4505}, + {0x0, 0, 16, 4505}, + {0x0, 8, 11, 4521}, + {0xf912, 16, 16, 4524}, + {0x0, 2, 16, 4524}, + {0x0, 15, 16, 4538}, + {0xf913, 16, 16, 4539}, + {0x0, 0, 14, 4539}, + {0x0, 2, 3, 4553}, + {0xf9bf, 16, 16, 4554}, + {0x0, 1, 16, 4554}, + {0x0, 6, 15, 4569}, + {0xf915, 16, 16, 4578}, + {0x0, 1, 14, 4578}, + {0x0, 9, 10, 4591}, + {0xf916, 16, 16, 4592}, + {0x0, 2, 14, 4592}, + {0x0, 14, 15, 4604}, + {0xf917, 16, 16, 4605}, + {0x0, 3, 16, 4605}, + {0x0, 13, 14, 4618}, + {0xf918, 16, 16, 4619}, + {0x0, 10, 11, 4619}, + {0xf919, 16, 16, 4620}, + {0x0, 2, 16, 4620}, + {0x0, 1, 15, 4634}, + {0xf91a, 16, 16, 4648}, + {0x0, 2, 7, 4648}, + {0xf91b, 16, 16, 4653}, + {0x0, 3, 16, 4653}, + {0xf91c, 16, 16, 4666}, + {0x0, 0, 12, 4666}, + {0x0, 4, 5, 4678}, + {0xf91d, 16, 16, 4679}, + {0x0, 1, 16, 4679}, + {0x0, 0, 12, 4694}, + {0xf91e, 16, 16, 4706}, + {0x0, 13, 14, 4706}, + {0xf91f, 16, 16, 4707}, + {0x0, 1, 16, 4707}, + {0x0, 14, 15, 4722}, + {0xf920, 16, 16, 4723}, + {0x0, 1, 16, 4723}, + {0x0, 0, 1, 4738}, + {0xf921, 16, 16, 4739}, + {0x0, 0, 16, 4739}, + {0x0, 11, 12, 4755}, + {0xf922, 16, 16, 4756}, + {0x0, 1, 16, 4756}, + {0x0, 13, 14, 4771}, + {0xf923, 16, 16, 4772}, + {0x0, 1, 10, 4772}, + {0x0, 4, 5, 4781}, + {0xf924, 16, 16, 4782}, + {0x0, 0, 16, 4782}, + {0x0, 9, 16, 4798}, + {0xf925, 16, 16, 4805}, + {0x0, 0, 15, 4805}, + {0x0, 8, 9, 4820}, + {0xf926, 16, 16, 4821}, + {0x0, 15, 16, 4821}, + {0xf927, 16, 16, 4822}, + {0x0, 2, 16, 4822}, + {0x0, 9, 11, 4836}, + {0x2f88e, 16, 16, 4838}, + {0x0, 0, 16, 4838}, + {0x0, 7, 12, 4854}, + {0x2f8d8, 16, 16, 4859}, + {0x0, 9, 11, 4859}, + {0xf92a, 16, 16, 4861}, + {0x0, 12, 13, 4861}, + {0xf92b, 16, 16, 4862}, + {0x0, 14, 15, 4862}, + {0xf92c, 16, 16, 4863}, + {0x0, 6, 12, 4863}, + {0x0, 6, 12, 4869}, + {0xf92d, 16, 16, 4875}, + {0x0, 4, 16, 4875}, + {0x0, 5, 8, 4887}, + {0xf92e, 16, 16, 4890}, + {0x0, 0, 16, 4890}, + {0x0, 2, 15, 4906}, + {0xf92f, 16, 16, 4919}, + {0x0, 2, 13, 4919}, + {0x0, 4, 5, 4930}, + {0xf930, 16, 16, 4931}, + {0x0, 3, 12, 4931}, + {0xf931, 16, 16, 4940}, + {0xf932, 16, 16, 4940}, + {0x0, 7, 8, 4940}, + {0xf933, 16, 16, 4941}, + {0x0, 0, 12, 4941}, + {0x0, 1, 6, 4953}, + {0xf934, 16, 16, 4958}, + {0x0, 6, 7, 4958}, + {0xf935, 16, 16, 4959}, + {0x0, 0, 13, 4959}, + {0x2f9b4, 16, 16, 4972}, + {0x0, 0, 16, 4972}, + {0x0, 15, 16, 4988}, + {0xf937, 16, 16, 4989}, + {0x0, 2, 16, 4989}, + {0x0, 2, 3, 5003}, + {0xf938, 16, 16, 5004}, + {0x0, 1, 7, 5004}, + {0x0, 15, 16, 5010}, + {0xf939, 16, 16, 5011}, + {0x0, 6, 16, 5011}, + {0x0, 10, 11, 5021}, + {0xf93a, 16, 16, 5022}, + {0x0, 4, 16, 5022}, + {0x0, 12, 13, 5034}, + {0x2f94f, 16, 16, 5035}, + {0x0, 2, 15, 5035}, + {0x0, 15, 16, 5048}, + {0xf93c, 16, 16, 5049}, + {0x0, 0, 16, 5049}, + {0x0, 0, 1, 5065}, + {0xf93d, 16, 16, 5066}, + {0x0, 1, 16, 5066}, + {0x0, 9, 13, 5081}, + {0xf93e, 16, 16, 5085}, + {0x0, 0, 16, 5085}, + {0x0, 4, 5, 5101}, + {0xf93f, 16, 16, 5102}, + {0x0, 15, 16, 5102}, + {0xf940, 16, 16, 5103}, + {0x0, 10, 16, 5103}, + {0x0, 2, 7, 5109}, + {0xf941, 16, 16, 5114}, + {0x0, 0, 16, 5114}, + {0x0, 8, 16, 5130}, + {0xf942, 16, 16, 5138}, + {0x0, 0, 16, 5138}, + {0x0, 4, 5, 5154}, + {0xf943, 16, 16, 5155}, + {0x0, 3, 15, 5155}, + {0x0, 0, 1, 5167}, + {0xf944, 16, 16, 5168}, + {0x0, 0, 15, 5168}, + {0xf945, 16, 16, 5183}, + {0x0, 2, 3, 5183}, + {0xf946, 16, 16, 5184}, + {0x0, 10, 13, 5184}, + {0xf947, 16, 16, 5187}, + {0xf948, 16, 16, 5187}, + {0x0, 2, 16, 5187}, + {0x0, 6, 8, 5201}, + {0xf949, 16, 16, 5203}, + {0xf94a, 16, 16, 5203}, + {0x0, 0, 13, 5203}, + {0x0, 0, 15, 5216}, + {0xf94b, 16, 16, 5231}, + {0x0, 3, 4, 5231}, + {0xf94c, 16, 16, 5232}, + {0x0, 10, 11, 5232}, + {0xf94d, 16, 16, 5233}, + {0x0, 15, 16, 5233}, + {0xf94e, 16, 16, 5234}, + {0x0, 2, 16, 5234}, + {0xf94f, 16, 16, 5248}, + {0x0, 0, 5, 5248}, + {0x0, 7, 8, 5253}, + {0xf950, 16, 16, 5254}, + {0x0, 11, 14, 5254}, + {0xf951, 16, 16, 5257}, + {0xf952, 16, 16, 5257}, + {0x0, 11, 12, 5257}, + {0xf953, 16, 16, 5258}, + {0x0, 12, 15, 5258}, + {0xf954, 16, 16, 5261}, + {0x0, 9, 13, 5261}, + {0xf955, 16, 16, 5265}, + {0x0, 1, 15, 5265}, + {0x0, 12, 13, 5279}, + {0xf956, 16, 16, 5280}, + {0x0, 14, 15, 5280}, + {0xf957, 16, 16, 5281}, + {0x0, 1, 2, 5281}, + {0xf958, 16, 16, 5282}, + {0x0, 5, 9, 5282}, + {0xf959, 16, 16, 5286}, + {0x0, 0, 9, 5286}, + {0x0, 0, 11, 5295}, + {0xf95a, 16, 16, 5306}, + {0xf95b, 16, 16, 5306}, + {0x0, 8, 15, 5306}, + {0xf95d, 16, 16, 5313}, + {0xf95e, 16, 16, 5313}, + {0x0, 0, 16, 5313}, + {0x0, 7, 15, 5329}, + {0x2f86f, 16, 16, 5337}, + {0x0, 1, 15, 5337}, + {0x0, 2, 13, 5351}, + {0xf960, 16, 16, 5362}, + {0x0, 7, 12, 5362}, + {0xf9db, 16, 16, 5367}, + {0x0, 2, 15, 5367}, + {0x0, 0, 1, 5380}, + {0x2f938, 16, 16, 5381}, + {0x0, 7, 8, 5381}, + {0x2f82b, 16, 16, 5382}, + {0x0, 11, 12, 5382}, + {0xf964, 16, 16, 5383}, + {0x0, 11, 16, 5383}, + {0xf965, 16, 16, 5388}, + {0x0, 9, 10, 5388}, + {0xf966, 16, 16, 5389}, + {0x0, 13, 14, 5389}, + {0xf967, 16, 16, 5390}, + {0x0, 4, 15, 5390}, + {0x0, 12, 14, 5401}, + {0xf968, 16, 16, 5403}, + {0x0, 4, 15, 5403}, + {0x0, 8, 9, 5414}, + {0xf969, 16, 16, 5415}, + {0xf96a, 16, 16, 5415}, + {0x0, 3, 11, 5415}, + {0xf96b, 16, 16, 5423}, + {0x0, 10, 15, 5423}, + {0xf96c, 16, 16, 5428}, + {0x0, 0, 9, 5428}, + {0x0, 1, 2, 5437}, + {0xf96d, 16, 16, 5438}, + {0x0, 9, 10, 5438}, + {0xf96e, 16, 16, 5439}, + {0x0, 0, 11, 5439}, + {0xf9a1, 16, 16, 5450}, + {0x0, 10, 12, 5450}, + {0x2f8f5, 16, 16, 5452}, + {0x0, 2, 12, 5452}, + {0x0, 0, 7, 5462}, + {0xf971, 16, 16, 5469}, + {0x0, 8, 9, 5469}, + {0xf972, 16, 16, 5470}, + {0x0, 12, 15, 5470}, + {0xf973, 16, 16, 5473}, + {0x0, 0, 15, 5473}, + {0x0, 5, 7, 5488}, + {0x2f998, 16, 16, 5490}, + {0x0, 3, 15, 5490}, + {0x0, 0, 10, 5502}, + {0xf975, 16, 16, 5512}, + {0x0, 5, 6, 5512}, + {0xf976, 16, 16, 5513}, + {0x0, 14, 15, 5513}, + {0xf977, 16, 16, 5514}, + {0x0, 4, 14, 5514}, + {0xf978, 16, 16, 5524}, + {0xf979, 16, 16, 5524}, + {0x0, 1, 11, 5524}, + {0x0, 1, 15, 5534}, + {0xf97a, 16, 16, 5548}, + {0x0, 3, 9, 5548}, + {0xf97b, 16, 16, 5554}, + {0x0, 15, 16, 5554}, + {0xf97c, 16, 16, 5555}, + {0xf97d, 16, 16, 5555}, + {0x0, 12, 16, 5555}, + {0xf97e, 16, 16, 5559}, + {0x0, 5, 11, 5559}, + {0xf97f, 16, 16, 5565}, + {0x0, 0, 16, 5565}, + {0x0, 2, 9, 5581}, + {0xf980, 16, 16, 5588}, + {0x0, 3, 4, 5588}, + {0xf981, 16, 16, 5589}, + {0x0, 12, 13, 5589}, + {0xf982, 16, 16, 5590}, + {0x0, 5, 6, 5590}, + {0xf983, 16, 16, 5591}, + {0x0, 14, 15, 5591}, + {0xf984, 16, 16, 5592}, + {0x0, 10, 11, 5592}, + {0xf985, 16, 16, 5593}, + {0x0, 8, 12, 5593}, + {0x0, 13, 14, 5597}, + {0xf986, 16, 16, 5598}, + {0x0, 6, 7, 5598}, + {0x0, 10, 11, 5599}, + {0xf987, 16, 16, 5600}, + {0x0, 7, 16, 5600}, + {0xf988, 16, 16, 5609}, + {0x0, 14, 15, 5609}, + {0xf989, 16, 16, 5610}, + {0x0, 11, 12, 5610}, + {0xf98a, 16, 16, 5611}, + {0x0, 6, 7, 5611}, + {0xf98b, 16, 16, 5612}, + {0x0, 2, 8, 5612}, + {0xf98c, 16, 16, 5618}, + {0x0, 2, 3, 5618}, + {0xf98d, 16, 16, 5619}, + {0x0, 4, 5, 5619}, + {0xf98e, 16, 16, 5620}, + {0x0, 0, 1, 5620}, + {0xf98f, 16, 16, 5621}, + {0x0, 0, 1, 5621}, + {0xf990, 16, 16, 5622}, + {0x0, 10, 14, 5622}, + {0xf991, 16, 16, 5626}, + {0x0, 2, 4, 5626}, + {0xf992, 16, 16, 5628}, + {0x0, 4, 14, 5628}, + {0x0, 5, 10, 5638}, + {0xf993, 16, 16, 5643}, + {0x0, 0, 13, 5643}, + {0x0, 5, 10, 5656}, + {0xf994, 16, 16, 5661}, + {0x0, 10, 11, 5661}, + {0xf995, 16, 16, 5662}, + {0x0, 4, 5, 5662}, + {0xfa57, 16, 16, 5663}, + {0x0, 0, 16, 5663}, + {0xf997, 16, 16, 5679}, + {0x0, 6, 11, 5679}, + {0xf998, 16, 16, 5684}, + {0x0, 14, 15, 5684}, + {0xf999, 16, 16, 5685}, + {0x0, 3, 4, 5685}, + {0xf99a, 16, 16, 5686}, + {0x0, 10, 11, 5686}, + {0xf99b, 16, 16, 5687}, + {0x0, 7, 8, 5687}, + {0xf99c, 16, 16, 5688}, + {0x0, 3, 4, 5688}, + {0xf99d, 16, 16, 5689}, + {0x0, 13, 14, 5689}, + {0xf99e, 16, 16, 5690}, + {0x0, 8, 9, 5690}, + {0xf99f, 16, 16, 5691}, + {0x0, 2, 16, 5691}, + {0xf9a0, 16, 16, 5705}, + {0xf9a2, 16, 16, 5705}, + {0x0, 5, 10, 5705}, + {0xf9a3, 16, 16, 5710}, + {0x0, 11, 12, 5710}, + {0xf9a4, 16, 16, 5711}, + {0x0, 14, 15, 5711}, + {0xf9a5, 16, 16, 5712}, + {0x0, 14, 15, 5712}, + {0xf9a6, 16, 16, 5713}, + {0x0, 5, 11, 5713}, + {0xf9a7, 16, 16, 5719}, + {0x0, 4, 5, 5719}, + {0xf9a8, 16, 16, 5720}, + {0x0, 0, 16, 5720}, + {0x0, 9, 10, 5736}, + {0xf9a9, 16, 16, 5737}, + {0x0, 2, 11, 5737}, + {0xf9ab, 16, 16, 5746}, + {0xf9ac, 16, 16, 5746}, + {0x0, 2, 3, 5746}, + {0xf9ad, 16, 16, 5747}, + {0x0, 9, 10, 5747}, + {0xf9ae, 16, 16, 5748}, + {0x0, 5, 11, 5748}, + {0xf9af, 16, 16, 5754}, + {0x0, 6, 7, 5754}, + {0xf9b0, 16, 16, 5755}, + {0x0, 3, 14, 5755}, + {0x0, 4, 9, 5766}, + {0xf9b1, 16, 16, 5771}, + {0xf9b2, 16, 16, 5771}, + {0x0, 8, 9, 5771}, + {0xf9b3, 16, 16, 5772}, + {0x0, 0, 16, 5772}, + {0x0, 8, 9, 5788}, + {0xf9b4, 16, 16, 5789}, + {0xf9b5, 16, 16, 5789}, + {0x0, 14, 15, 5789}, + {0xf9b6, 16, 16, 5790}, + {0x0, 4, 5, 5790}, + {0xf9b7, 16, 16, 5791}, + {0x0, 8, 9, 5791}, + {0xf9b8, 16, 16, 5792}, + {0x0, 1, 2, 5792}, + {0xf9b9, 16, 16, 5793}, + {0xf9ba, 16, 16, 5793}, + {0x0, 0, 15, 5793}, + {0x0, 10, 11, 5808}, + {0xf9bb, 16, 16, 5809}, + {0xf9bc, 16, 16, 5809}, + {0x0, 15, 16, 5809}, + {0xf9bd, 16, 16, 5810}, + {0x0, 9, 10, 5810}, + {0xf9be, 16, 16, 5811}, + {0x0, 14, 15, 5811}, + {0xf9c0, 16, 16, 5812}, + {0x0, 2, 3, 5812}, + {0xf9c1, 16, 16, 5813}, + {0x0, 1, 13, 5813}, + {0xf9c2, 16, 16, 5825}, + {0x0, 12, 13, 5825}, + {0xf9c3, 16, 16, 5826}, + {0x0, 13, 14, 5826}, + {0xf9c4, 16, 16, 5827}, + {0x0, 8, 9, 5827}, + {0xf9c5, 16, 16, 5828}, + {0x0, 14, 15, 5828}, + {0xf9c6, 16, 16, 5829}, + {0x0, 9, 10, 5829}, + {0xf9c7, 16, 16, 5830}, + {0x0, 11, 12, 5830}, + {0xf9c8, 16, 16, 5831}, + {0x0, 3, 11, 5831}, + {0xf9c9, 16, 16, 5839}, + {0x0, 1, 2, 5839}, + {0x2f902, 16, 16, 5840}, + {0x0, 12, 13, 5840}, + {0xf9cb, 16, 16, 5841}, + {0x0, 6, 10, 5841}, + {0xf9cc, 16, 16, 5845}, + {0x0, 9, 10, 5845}, + {0xf9cd, 16, 16, 5846}, + {0x0, 11, 12, 5846}, + {0xf9ce, 16, 16, 5847}, + {0x0, 0, 1, 5847}, + {0xf9cf, 16, 16, 5848}, + {0x0, 14, 15, 5848}, + {0xf9d0, 16, 16, 5849}, + {0xf9d1, 16, 16, 5849}, + {0x0, 14, 15, 5849}, + {0xf9d2, 16, 16, 5850}, + {0xf9d3, 16, 16, 5850}, + {0x0, 11, 12, 5850}, + {0xf9d4, 16, 16, 5851}, + {0x0, 9, 10, 5851}, + {0xf9d5, 16, 16, 5852}, + {0x0, 10, 11, 5852}, + {0xf9d6, 16, 16, 5853}, + {0xf9d7, 16, 16, 5853}, + {0x0, 11, 12, 5853}, + {0xf9d8, 16, 16, 5854}, + {0x0, 4, 15, 5854}, + {0xf9d9, 16, 16, 5865}, + {0x0, 7, 16, 5865}, + {0xf9da, 16, 16, 5874}, + {0x0, 6, 7, 5874}, + {0xf9dc, 16, 16, 5875}, + {0x0, 9, 10, 5875}, + {0xf9dd, 16, 16, 5876}, + {0x0, 6, 16, 5876}, + {0xf9de, 16, 16, 5886}, + {0xf9df, 16, 16, 5886}, + {0x0, 3, 4, 5886}, + {0xf9e0, 16, 16, 5887}, + {0x0, 14, 15, 5887}, + {0xf9e1, 16, 16, 5888}, + {0x0, 8, 9, 5888}, + {0xf9e2, 16, 16, 5889}, + {0x0, 5, 6, 5889}, + {0xf9e3, 16, 16, 5890}, + {0xf9e4, 16, 16, 5890}, + {0x0, 2, 3, 5890}, + {0xf9e5, 16, 16, 5891}, + {0x0, 2, 11, 5891}, + {0xf9e6, 16, 16, 5900}, + {0xf9e7, 16, 16, 5900}, + {0x0, 1, 2, 5900}, + {0xf9e8, 16, 16, 5901}, + {0xf9e9, 16, 16, 5901}, + {0x0, 2, 4, 5901}, + {0xf9ea, 16, 16, 5903}, + {0x0, 15, 16, 5903}, + {0xf9eb, 16, 16, 5904}, + {0x0, 10, 11, 5904}, + {0xf9ec, 16, 16, 5905}, + {0x0, 13, 14, 5905}, + {0xf9ed, 16, 16, 5906}, + {0x0, 0, 1, 5906}, + {0xf9ee, 16, 16, 5907}, {0x0, 8, 9, 5907}, - {0x2f93c, 16, 16, 5908}, - {0x0, 0, 1, 5908}, - {0x0, 0, 1, 5909}, - {0x0, 3, 4, 5910}, - {0x0, 0, 3, 5911}, - {0x0, 2, 13, 5914}, - {0x21e, 16, 16, 5925}, - {0x0, 0, 1, 5925}, - {0x0, 0, 1, 5926}, - {0x0, 3, 4, 5927}, - {0x0, 0, 1, 5928}, - {0x0, 6, 9, 5929}, - {0x4d0, 16, 16, 5932}, - {0x0, 6, 7, 5932}, - {0x0, 6, 7, 5933}, - {0x2f9cc, 16, 16, 5934}, - {0x0, 10, 11, 5934}, - {0xf985, 16, 16, 5935}, - {0x4d2, 16, 16, 5935}, - {0x0, 3, 4, 5935}, - {0x2f99a, 16, 16, 5936}, - {0x1fd3, 16, 16, 5936}, - {0x0, 4, 6, 5936}, - {0x0, 0, 1, 5938}, - {0x0, 0, 1, 5939}, - {0x0, 3, 4, 5940}, - {0x0, 0, 1, 5941}, - {0x0, 15, 16, 5942}, - {0x477, 16, 16, 5943}, - {0x1e26, 16, 16, 5943}, - {0x1e22, 16, 16, 5943}, - {0x124, 16, 16, 5943}, - {0xf979, 16, 16, 5943}, + {0xf9ef, 16, 16, 5908}, + {0x0, 10, 11, 5908}, + {0xf9f0, 16, 16, 5909}, + {0x0, 3, 4, 5909}, + {0xf9f1, 16, 16, 5910}, + {0x0, 4, 16, 5910}, + {0x0, 7, 8, 5922}, + {0xf9f2, 16, 16, 5923}, + {0xf9f3, 16, 16, 5923}, + {0x0, 7, 8, 5923}, + {0xf9f4, 16, 16, 5924}, + {0x0, 11, 12, 5924}, + {0xf9f5, 16, 16, 5925}, + {0x0, 8, 14, 5925}, + {0xf9f6, 16, 16, 5931}, + {0x0, 11, 12, 5931}, + {0xf9f7, 16, 16, 5932}, + {0x0, 2, 13, 5932}, {0x0, 0, 1, 5943}, - {0x2f93a, 16, 16, 5944}, - {0xfa49, 16, 16, 5944}, - {0x0, 8, 9, 5944}, - {0xf900, 16, 16, 5945}, - {0x0, 4, 5, 5945}, - {0xf924, 16, 16, 5946}, - {0x1f23, 16, 16, 5946}, - {0x0, 5, 6, 5946}, - {0x2f925, 16, 16, 5947}, - {0x0, 4, 13, 5947}, - {0x2f818, 16, 16, 5956}, - {0x0, 10, 11, 5956}, - {0x2f979, 16, 16, 5957}, - {0x0, 0, 1, 5957}, - {0x0, 0, 1, 5958}, - {0x0, 3, 4, 5959}, - {0x0, 0, 1, 5960}, - {0x0, 2, 3, 5961}, - {0x1ec6, 16, 16, 5962}, - {0x0, 2, 3, 5962}, - {0x2f895, 16, 16, 5963}, - {0x0, 6, 7, 5963}, - {0x0, 0, 1, 5964}, - {0x0, 0, 1, 5965}, - {0x0, 3, 4, 5966}, - {0x0, 0, 1, 5967}, - {0x0, 8, 9, 5968}, - {0x407, 16, 16, 5969}, - {0xf949, 16, 16, 5969}, - {0x0, 0, 10, 5969}, - {0x1eed, 16, 16, 5979}, - {0x0, 5, 12, 5979}, - {0x2f839, 16, 16, 5986}, - {0x1eeb, 16, 16, 5986}, - {0x1ee9, 16, 16, 5986}, - {0x0, 3, 5, 5986}, - {0x1f38, 16, 16, 5988}, - {0x1eef, 16, 16, 5988}, - {0x1f39, 16, 16, 5988}, - {0x0, 0, 10, 5988}, - {0x2f962, 16, 16, 5998}, - {0xfa56, 16, 16, 5998}, - {0x0, 3, 4, 5998}, - {0x2f87c, 16, 16, 5999}, - {0x2f963, 16, 16, 5999}, - {0x0, 0, 1, 5999}, - {0x0, 0, 1, 6000}, - {0x0, 3, 4, 6001}, - {0x0, 0, 1, 6002}, - {0x0, 1, 5, 6003}, - {0x1e2, 16, 16, 6007}, - {0x1fc, 16, 16, 6007}, - {0x0, 7, 8, 6007}, - {0xf9f2, 16, 16, 6008}, - {0xf906, 16, 16, 6008}, - {0x0, 13, 14, 6008}, - {0x2f886, 16, 16, 6009}, - {0x0, 15, 16, 6009}, - {0xf927, 16, 16, 6010}, - {0x0, 12, 13, 6010}, - {0x2f92a, 16, 16, 6011}, - {0x0, 3, 5, 6011}, - {0x1f40, 16, 16, 6013}, - {0x1f41, 16, 16, 6013}, - {0x0, 0, 16, 6013}, - {0xfa, 16, 16, 6029}, - {0xf9, 16, 16, 6029}, - {0x169, 16, 16, 6029}, - {0xfb, 16, 16, 6029}, - {0x16b, 16, 16, 6029}, - {0x0, 3, 14, 6029}, - {0x1ee4, 16, 16, 6040}, - {0x16d, 16, 16, 6040}, - {0x1ee7, 16, 16, 6040}, - {0xfc, 16, 16, 6040}, - {0x0, 0, 1, 6040}, - {0x0, 3, 4, 6041}, - {0x0, 0, 1, 6042}, - {0x0, 9, 10, 6043}, - {0x0, 9, 10, 6044}, - {0x3062, 16, 16, 6045}, - {0x172, 16, 16, 6045}, - {0x0, 0, 1, 6045}, - {0x0, 0, 1, 6046}, - {0x0, 3, 4, 6047}, - {0x0, 0, 1, 6048}, - {0x0, 7, 8, 6049}, - {0x1e65, 16, 16, 6050}, - {0x0, 1, 13, 6050}, - {0x161, 16, 16, 6062}, - {0x0, 9, 13, 6062}, - {0x2f9a1, 16, 16, 6066}, - {0x0, 0, 1, 6066}, - {0x0, 0, 1, 6067}, - {0x0, 3, 4, 6068}, - {0x0, 0, 1, 6069}, - {0x0, 0, 13, 6070}, - {0x1da, 16, 16, 6083}, - {0x0, 0, 1, 6083}, - {0x0, 0, 1, 6084}, - {0x0, 3, 4, 6085}, - {0x0, 0, 4, 6086}, - {0x0, 1, 13, 6090}, - {0x13a, 16, 16, 6102}, - {0x16f, 16, 16, 6102}, - {0x1e76, 16, 16, 6102}, - {0x0, 0, 1, 6102}, - {0x0, 0, 1, 6103}, - {0x0, 3, 4, 6104}, - {0x0, 3, 4, 6105}, - {0x0, 8, 9, 6106}, - {0x219b, 16, 16, 6107}, - {0x171, 16, 16, 6107}, - {0x215, 16, 16, 6107}, - {0x0, 0, 1, 6107}, - {0x0, 3, 4, 6108}, - {0x0, 0, 1, 6109}, - {0x0, 9, 10, 6110}, - {0x0, 9, 10, 6111}, - {0x3050, 16, 16, 6112}, - {0x0, 10, 11, 6112}, - {0x0, 7, 8, 6113}, - {0x2f95e, 16, 16, 6114}, - {0x0, 2, 3, 6114}, - {0x2f9ba, 16, 16, 6115}, - {0x0, 14, 15, 6115}, - {0xfa30, 16, 16, 6116}, - {0x0, 10, 11, 6116}, - {0x2f861, 16, 16, 6117}, - {0x13e, 16, 16, 6117}, - {0x1dc, 16, 16, 6117}, - {0x1d8, 16, 16, 6117}, - {0x1d6, 16, 16, 6117}, - {0x0, 2, 3, 6117}, - {0x1fd7, 16, 16, 6118}, - {0x0, 1, 2, 6118}, - {0x0, 4, 5, 6119}, - {0x2f927, 16, 16, 6120}, - {0x15d, 16, 16, 6120}, - {0x15b, 16, 16, 6120}, - {0x1e61, 16, 16, 6120}, - {0x0, 3, 5, 6120}, - {0x1f49, 16, 16, 6122}, - {0x0, 0, 1, 6122}, - {0x0, 3, 4, 6123}, - {0x0, 0, 1, 6124}, - {0x0, 9, 10, 6125}, - {0x0, 9, 10, 6126}, - {0x30c5, 16, 16, 6127}, - {0xf93e, 16, 16, 6127}, - {0x0, 0, 14, 6127}, - {0x0, 4, 5, 6141}, - {0x2f9d9, 16, 16, 6142}, - {0x0, 13, 14, 6142}, - {0x2f8b4, 16, 16, 6143}, - {0x1f48, 16, 16, 6143}, - {0x0, 8, 9, 6143}, - {0xf9e2, 16, 16, 6144}, - {0x0, 3, 9, 6144}, - {0x1eca, 16, 16, 6150}, - {0x12e, 16, 16, 6150}, - {0x0, 0, 9, 6150}, - {0x1f7a, 16, 16, 6159}, - {0x3cd, 16, 16, 6159}, - {0x1fe1, 16, 16, 6159}, - {0x0, 1, 2, 6159}, - {0x1e35, 16, 16, 6160}, - {0x1fe0, 16, 16, 6160}, - {0x0, 0, 1, 6160}, - {0x0, 3, 4, 6161}, - {0x0, 0, 1, 6162}, + {0xf9f8, 16, 16, 5944}, + {0x0, 2, 3, 5944}, + {0xf9f9, 16, 16, 5945}, + {0x0, 0, 1, 5945}, + {0xf9fa, 16, 16, 5946}, + {0x0, 9, 10, 5946}, + {0xf9fb, 16, 16, 5947}, + {0x0, 8, 9, 5947}, + {0xf9fc, 16, 16, 5948}, + {0x0, 0, 13, 5948}, + {0xf9fd, 16, 16, 5961}, + {0x0, 6, 7, 5961}, + {0xf9fe, 16, 16, 5962}, + {0x0, 10, 12, 5962}, + {0xf9ff, 16, 16, 5964}, + {0x0, 3, 8, 5964}, + {0x2f850, 16, 16, 5969}, + {0x0, 6, 7, 5969}, + {0xfa01, 16, 16, 5970}, + {0x0, 3, 5, 5970}, + {0xfa02, 16, 16, 5972}, + {0x0, 2, 7, 5972}, + {0xfa03, 16, 16, 5977}, + {0x0, 5, 6, 5977}, + {0xfa04, 16, 16, 5978}, + {0xfa05, 16, 16, 5978}, + {0x0, 4, 5, 5978}, + {0xfa06, 16, 16, 5979}, + {0x0, 8, 12, 5979}, + {0xfa07, 16, 16, 5983}, + {0x0, 12, 13, 5983}, + {0xfa08, 16, 16, 5984}, + {0xfa09, 16, 16, 5984}, + {0x0, 11, 12, 5984}, + {0xfa0a, 16, 16, 5985}, + {0x0, 3, 4, 5985}, + {0xfa0b, 16, 16, 5986}, + {0x0, 0, 14, 5986}, + {0xfa0c, 16, 16, 6000}, + {0x0, 0, 3, 6000}, + {0xfa0d, 16, 16, 6003}, + {0xfa10, 16, 16, 6003}, + {0x0, 4, 5, 6003}, + {0xfa12, 16, 16, 6004}, + {0xfa15, 16, 16, 6004}, + {0x0, 10, 11, 6004}, + {0xfa16, 16, 16, 6005}, + {0x0, 10, 11, 6005}, + {0xfa17, 16, 16, 6006}, + {0x0, 12, 15, 6006}, + {0xfa18, 16, 16, 6009}, + {0x0, 0, 15, 6009}, + {0xfa19, 16, 16, 6024}, + {0x0, 5, 6, 6024}, + {0xfa1a, 16, 16, 6025}, + {0x0, 13, 16, 6025}, + {0x2f956, 16, 16, 6028}, + {0x0, 6, 7, 6028}, + {0xfa1c, 16, 16, 6029}, + {0x0, 14, 15, 6029}, + {0xfa1d, 16, 16, 6030}, + {0x0, 13, 14, 6030}, + {0xfa1e, 16, 16, 6031}, + {0x0, 2, 3, 6031}, + {0xfa20, 16, 16, 6032}, + {0xfa22, 16, 16, 6032}, + {0x0, 8, 9, 6032}, + {0xfa67, 16, 16, 6033}, + {0x0, 1, 14, 6033}, + {0xfa26, 16, 16, 6046}, + {0x0, 2, 16, 6046}, + {0xfa2a, 16, 16, 6060}, + {0x0, 12, 13, 6060}, + {0xfa2b, 16, 16, 6061}, + {0x0, 8, 10, 6061}, + {0xfa2c, 16, 16, 6063}, + {0x0, 4, 5, 6063}, + {0xfa2d, 16, 16, 6064}, + {0x0, 14, 15, 6064}, + {0x2f805, 16, 16, 6065}, + {0x0, 7, 8, 6065}, + {0x2f80a, 16, 16, 6066}, + {0x2f80e, 16, 16, 6066}, + {0x0, 7, 10, 6066}, + {0x2f826, 16, 16, 6069}, + {0x0, 4, 5, 6069}, + {0x2f827, 16, 16, 6070}, + {0x0, 1, 11, 6070}, + {0x2f82d, 16, 16, 6080}, + {0x0, 9, 14, 6080}, + {0xfa36, 16, 16, 6085}, + {0x0, 6, 7, 6085}, + {0x2f84c, 16, 16, 6086}, + {0x0, 8, 9, 6086}, + {0xfa38, 16, 16, 6087}, + {0x0, 0, 1, 6087}, + {0xfa39, 16, 16, 6088}, + {0x0, 8, 13, 6088}, + {0xfa3a, 16, 16, 6093}, + {0xfa3b, 16, 16, 6093}, + {0x2f878, 16, 16, 6093}, + {0x0, 4, 5, 6093}, + {0x2f8a3, 16, 16, 6094}, + {0x0, 8, 9, 6094}, + {0xfa3e, 16, 16, 6095}, + {0x0, 14, 15, 6095}, + {0x2f8ab, 16, 16, 6096}, + {0x2f8b0, 16, 16, 6096}, + {0x0, 15, 16, 6096}, + {0x2f8c8, 16, 16, 6097}, + {0x0, 2, 4, 6097}, + {0xfa42, 16, 16, 6099}, + {0x0, 1, 13, 6099}, + {0x2f8cf, 16, 16, 6111}, + {0x2f8e2, 16, 16, 6111}, + {0x0, 7, 9, 6111}, + {0x2f901, 16, 16, 6113}, + {0x0, 10, 11, 6113}, + {0xfa46, 16, 16, 6114}, + {0xfa47, 16, 16, 6114}, + {0x0, 14, 15, 6114}, + {0xfa48, 16, 16, 6115}, + {0x0, 8, 12, 6115}, + {0xfa49, 16, 16, 6119}, + {0x0, 2, 3, 6119}, + {0xfa4a, 16, 16, 6120}, + {0x0, 1, 2, 6120}, + {0xfa4b, 16, 16, 6121}, + {0xfa4c, 16, 16, 6121}, + {0x0, 8, 10, 6121}, + {0xfa4d, 16, 16, 6123}, + {0xfa4e, 16, 16, 6123}, + {0xfa4f, 16, 16, 6123}, + {0x2f953, 16, 16, 6123}, + {0xfa51, 16, 16, 6123}, + {0xfa52, 16, 16, 6123}, + {0xfa53, 16, 16, 6123}, + {0x0, 0, 16, 6123}, + {0x2f959, 16, 16, 6139}, + {0x0, 1, 2, 6139}, + {0xfa55, 16, 16, 6140}, + {0x0, 0, 10, 6140}, + {0xfa56, 16, 16, 6150}, + {0x0, 2, 10, 6150}, + {0xfa58, 16, 16, 6158}, + {0x0, 1, 6, 6158}, + {0xfa59, 16, 16, 6163}, + {0xfa5a, 16, 16, 6163}, + {0x2f97a, 16, 16, 6163}, + {0xfa5c, 16, 16, 6163}, {0x0, 9, 10, 6163}, - {0x0, 9, 11, 6164}, - {0x3074, 16, 16, 6166}, - {0x3cb, 16, 16, 6166}, - {0x0, 3, 4, 6166}, - {0xf99d, 16, 16, 6167}, - {0x0, 0, 1, 6167}, - {0x0, 0, 1, 6168}, + {0xfa5e, 16, 16, 6164}, + {0x0, 7, 8, 6164}, + {0x2f99f, 16, 16, 6165}, + {0x0, 0, 1, 6165}, + {0xfa60, 16, 16, 6166}, + {0x0, 6, 7, 6166}, + {0xfa61, 16, 16, 6167}, + {0x0, 1, 2, 6167}, + {0xfa62, 16, 16, 6168}, + {0x0, 9, 10, 6168}, + {0xfa63, 16, 16, 6169}, {0x0, 3, 4, 6169}, - {0x0, 0, 1, 6170}, - {0x0, 8, 9, 6171}, - {0x4e7, 16, 16, 6172}, - {0x1f3b, 16, 16, 6172}, - {0x0, 0, 1, 6172}, - {0x0, 0, 1, 6173}, - {0x0, 3, 4, 6174}, - {0x0, 4, 5, 6175}, - {0x0, 5, 6, 6176}, - {0x1f92, 16, 16, 6177}, - {0x0, 2, 4, 6177}, - {0xfa42, 16, 16, 6179}, - {0x0, 1, 2, 6179}, - {0x1e5f, 16, 16, 6180}, - {0x0, 0, 1, 6180}, - {0x0, 0, 1, 6181}, - {0x0, 3, 4, 6182}, - {0x0, 3, 4, 6183}, - {0x0, 8, 9, 6184}, - {0x22ed, 16, 16, 6185}, - {0x0, 2, 6, 6185}, - {0x1ff6, 16, 16, 6189}, - {0x1ff3, 16, 16, 6189}, - {0x0, 9, 11, 6189}, - {0xf92a, 16, 16, 6191}, - {0x0, 0, 1, 6191}, - {0x0, 0, 1, 6192}, - {0x0, 3, 4, 6193}, - {0x0, 0, 5, 6194}, - {0x0, 2, 6, 6199}, - {0x1fa0, 16, 16, 6203}, - {0x0, 4, 5, 6203}, - {0xf9b7, 16, 16, 6204}, - {0x1f66, 16, 16, 6204}, - {0x3073, 16, 16, 6204}, - {0x0, 2, 8, 6204}, - {0x2f823, 16, 16, 6210}, - {0x0, 12, 13, 6210}, - {0x2f862, 16, 16, 6211}, - {0x2f822, 16, 16, 6211}, - {0x0, 2, 3, 6211}, - {0xf9e5, 16, 16, 6212}, - {0x2f903, 16, 16, 6212}, - {0x0, 11, 12, 6212}, - {0x2f957, 16, 16, 6213}, - {0x0, 11, 12, 6213}, - {0xf98a, 16, 16, 6214}, - {0x0, 9, 10, 6214}, - {0x2f9bb, 16, 16, 6215}, - {0x0, 0, 1, 6215}, - {0x0, 0, 1, 6216}, - {0x0, 3, 4, 6217}, - {0x0, 0, 1, 6218}, - {0x0, 15, 16, 6219}, - {0x476, 16, 16, 6220}, - {0x0, 0, 1, 6220}, - {0x0, 0, 1, 6221}, - {0x0, 3, 4, 6222}, - {0x0, 0, 1, 6223}, - {0x0, 8, 9, 6224}, - {0x4eb, 16, 16, 6225}, - {0x0, 1, 6, 6225}, - {0xfa5b, 16, 16, 6230}, - {0xf934, 16, 16, 6230}, - {0x0, 0, 10, 6230}, - {0x0, 0, 1, 6240}, - {0x0, 0, 1, 6241}, - {0x0, 3, 4, 6242}, - {0x0, 0, 1, 6243}, - {0x0, 0, 2, 6244}, - {0x1f14, 16, 16, 6246}, - {0x1f12, 16, 16, 6246}, - {0x0, 3, 14, 6246}, - {0x1e0c, 16, 16, 6257}, - {0x1e10, 16, 16, 6257}, - {0x1ffb, 16, 16, 6257}, - {0x1feb, 16, 16, 6257}, - {0x1ff9, 16, 16, 6257}, - {0x1fdb, 16, 16, 6257}, - {0x0, 3, 4, 6257}, - {0x2f992, 16, 16, 6258}, - {0x0, 0, 1, 6258}, - {0x0, 3, 4, 6259}, - {0x0, 0, 1, 6260}, - {0x0, 9, 10, 6261}, - {0x0, 9, 10, 6262}, - {0x30b6, 16, 16, 6263}, - {0x0, 0, 1, 6263}, - {0x0, 0, 1, 6264}, - {0x0, 3, 4, 6265}, - {0x0, 0, 4, 6266}, - {0x0, 3, 14, 6270}, - {0x1e36, 16, 16, 6281}, - {0x13b, 16, 16, 6281}, - {0x1e12, 16, 16, 6281}, - {0x0, 1, 2, 6281}, - {0x0, 14, 15, 6282}, - {0x2f906, 16, 16, 6283}, - {0x0, 0, 1, 6283}, - {0x0, 0, 1, 6284}, - {0x0, 3, 4, 6285}, - {0x0, 0, 1, 6286}, - {0x0, 8, 9, 6287}, - {0x4ed, 16, 16, 6288}, - {0x2f8dc, 16, 16, 6288}, - {0x0, 6, 7, 6288}, - {0x0, 3, 4, 6289}, - {0x2f91d, 16, 16, 6290}, - {0x1e3c, 16, 16, 6290}, - {0x1fbb, 16, 16, 6290}, - {0x1fee, 16, 16, 6290}, - {0x0, 14, 15, 6290}, - {0x2fa08, 16, 16, 6291}, - {0x1fc9, 16, 16, 6291}, - {0x0, 0, 1, 6291}, - {0x0, 0, 1, 6292}, - {0x0, 13, 14, 6293}, - {0x0, 3, 4, 6294}, - {0x0, 14, 15, 6295}, - {0xd4b, 16, 16, 6296}, - {0x0, 6, 7, 6296}, - {0x2fa1b, 16, 16, 6297}, - {0x0, 7, 8, 6297}, - {0x2f896, 16, 16, 6298}, - {0xf97a, 16, 16, 6298}, - {0x0, 1, 13, 6298}, - {0x17d, 16, 16, 6310}, - {0x0, 4, 5, 6310}, - {0xfa57, 16, 16, 6311}, - {0x0, 8, 9, 6311}, - {0xf972, 16, 16, 6312}, - {0x0, 0, 1, 6312}, - {0x0, 0, 1, 6313}, - {0x0, 3, 4, 6314}, - {0x0, 3, 4, 6315}, - {0x0, 8, 9, 6316}, - {0x226f, 16, 16, 6317}, - {0x0, 0, 1, 6317}, - {0x0, 0, 1, 6318}, - {0x0, 3, 4, 6319}, - {0x0, 0, 1, 6320}, - {0x0, 0, 13, 6321}, - {0x1d5, 16, 16, 6334}, - {0x0, 6, 7, 6334}, - {0x0, 7, 8, 6335}, - {0x2f9c5, 16, 16, 6336}, - {0x0, 0, 1, 6336}, - {0x0, 0, 1, 6337}, - {0x0, 3, 4, 6338}, - {0x0, 4, 5, 6339}, - {0x0, 5, 6, 6340}, - {0x1fb7, 16, 16, 6341}, - {0x1db, 16, 16, 6341}, - {0x1d7, 16, 16, 6341}, - {0x0, 3, 14, 6341}, - {0x1e71, 16, 16, 6352}, - {0x0, 0, 1, 6352}, - {0x2f924, 16, 16, 6353}, - {0x0, 0, 1, 6353}, - {0x0, 0, 1, 6354}, - {0x0, 3, 4, 6355}, - {0x0, 3, 4, 6356}, + {0xfa64, 16, 16, 6170}, + {0x0, 8, 9, 6170}, + {0xfa65, 16, 16, 6171}, + {0xfa66, 16, 16, 6171}, + {0xfa68, 16, 16, 6171}, + {0x0, 15, 16, 6171}, + {0xfa69, 16, 16, 6172}, + {0x0, 11, 12, 6172}, + {0xfa6a, 16, 16, 6173}, + {0x2f800, 16, 16, 6173}, + {0x2f801, 16, 16, 6173}, + {0x0, 1, 2, 6173}, + {0x2f802, 16, 16, 6174}, + {0x0, 0, 11, 6174}, + {0x0, 1, 12, 6185}, + {0x0, 2, 3, 6196}, + {0x0, 2, 3, 6197}, + {0x2f803, 16, 16, 6198}, + {0x0, 0, 1, 6198}, + {0x2f804, 16, 16, 6199}, + {0x2f806, 16, 16, 6199}, + {0x0, 2, 3, 6199}, + {0x2f807, 16, 16, 6200}, + {0x0, 10, 11, 6200}, + {0x2f808, 16, 16, 6201}, + {0x0, 9, 10, 6201}, + {0x2f809, 16, 16, 6202}, + {0x0, 15, 16, 6202}, + {0x2f80b, 16, 16, 6203}, + {0x0, 9, 14, 6203}, + {0x0, 14, 15, 6208}, + {0x2f80c, 16, 16, 6209}, + {0x0, 3, 4, 6209}, + {0x0, 10, 11, 6210}, + {0x2f80d, 16, 16, 6211}, + {0x0, 4, 5, 6211}, + {0x2f80f, 16, 16, 6212}, + {0x2f810, 16, 16, 6212}, + {0x0, 7, 8, 6212}, + {0x2f811, 16, 16, 6213}, + {0x0, 1, 5, 6213}, + {0x0, 12, 13, 6217}, + {0x2f812, 16, 16, 6218}, + {0x0, 9, 12, 6218}, + {0x2f813, 16, 16, 6221}, + {0x2f814, 16, 16, 6221}, + {0x0, 13, 14, 6221}, + {0x2f815, 16, 16, 6222}, + {0x0, 11, 12, 6222}, + {0x2f816, 16, 16, 6223}, + {0x0, 2, 8, 6223}, + {0x2f817, 16, 16, 6229}, + {0x0, 4, 13, 6229}, + {0x2f818, 16, 16, 6238}, + {0x2f819, 16, 16, 6238}, + {0x2f81a, 16, 16, 6238}, + {0x2f81b, 16, 16, 6238}, + {0x0, 1, 12, 6238}, + {0x0, 4, 14, 6249}, + {0x0, 15, 16, 6259}, + {0x2f81c, 16, 16, 6260}, + {0x0, 5, 6, 6260}, + {0x2f81d, 16, 16, 6261}, + {0x2f81e, 16, 16, 6261}, + {0x0, 15, 16, 6261}, + {0x2f81f, 16, 16, 6262}, + {0x2f820, 16, 16, 6262}, + {0x0, 6, 7, 6262}, + {0x2f821, 16, 16, 6263}, + {0x0, 2, 8, 6263}, + {0x2f822, 16, 16, 6269}, + {0x2f823, 16, 16, 6269}, + {0x0, 1, 2, 6269}, + {0x0, 5, 6, 6270}, + {0x2f824, 16, 16, 6271}, + {0x2f825, 16, 16, 6271}, + {0x2f828, 16, 16, 6271}, + {0x0, 5, 7, 6271}, + {0x2f829, 16, 16, 6273}, + {0x2f82a, 16, 16, 6273}, + {0x0, 9, 10, 6273}, + {0x2f82c, 16, 16, 6274}, + {0x2f82e, 16, 16, 6274}, + {0x2f82f, 16, 16, 6274}, + {0x2f830, 16, 16, 6274}, + {0x2f833, 16, 16, 6274}, + {0x0, 2, 3, 6274}, + {0x0, 12, 13, 6275}, + {0x2f834, 16, 16, 6276}, + {0x0, 0, 14, 6276}, + {0x2f835, 16, 16, 6290}, + {0x2f836, 16, 16, 6290}, + {0x0, 15, 16, 6290}, + {0x2f837, 16, 16, 6291}, + {0x0, 6, 7, 6291}, + {0x0, 3, 4, 6292}, + {0x2f838, 16, 16, 6293}, + {0x2f839, 16, 16, 6293}, + {0x0, 1, 2, 6293}, + {0x2f83a, 16, 16, 6294}, + {0x2f83b, 16, 16, 6294}, + {0x0, 14, 15, 6294}, + {0x2f83c, 16, 16, 6295}, + {0x0, 8, 9, 6295}, + {0x2f83d, 16, 16, 6296}, + {0x2f83e, 16, 16, 6296}, + {0x0, 8, 9, 6296}, + {0x2f83f, 16, 16, 6297}, + {0x0, 2, 3, 6297}, + {0x2f840, 16, 16, 6298}, + {0x0, 6, 7, 6298}, + {0x2f841, 16, 16, 6299}, + {0x0, 0, 1, 6299}, + {0x2f842, 16, 16, 6300}, + {0x0, 3, 4, 6300}, + {0x2f843, 16, 16, 6301}, + {0x0, 3, 4, 6301}, + {0x2f844, 16, 16, 6302}, + {0x2f846, 16, 16, 6302}, + {0x2f847, 16, 16, 6302}, + {0x0, 11, 12, 6302}, + {0x2f848, 16, 16, 6303}, + {0x0, 3, 4, 6303}, + {0x2f849, 16, 16, 6304}, + {0x2f84a, 16, 16, 6304}, + {0x0, 1, 16, 6304}, + {0x0, 6, 8, 6319}, + {0x2f84b, 16, 16, 6321}, + {0x2f84d, 16, 16, 6321}, + {0x0, 1, 2, 6321}, + {0x2f84e, 16, 16, 6322}, + {0x0, 4, 5, 6322}, + {0x2f84f, 16, 16, 6323}, + {0x0, 14, 15, 6323}, + {0x2f851, 16, 16, 6324}, + {0x0, 14, 15, 6324}, + {0x2f852, 16, 16, 6325}, + {0x0, 4, 5, 6325}, + {0x2f853, 16, 16, 6326}, + {0x0, 13, 14, 6326}, + {0x2f854, 16, 16, 6327}, + {0x0, 11, 12, 6327}, + {0x2f855, 16, 16, 6328}, + {0x0, 1, 3, 6328}, + {0x2f856, 16, 16, 6330}, + {0x2f857, 16, 16, 6330}, + {0x2f858, 16, 16, 6330}, + {0x0, 4, 14, 6330}, + {0x0, 14, 15, 6340}, + {0x0, 4, 5, 6341}, + {0x2f859, 16, 16, 6342}, + {0x0, 2, 8, 6342}, + {0x2f85a, 16, 16, 6348}, + {0x2f85b, 16, 16, 6348}, + {0x0, 6, 7, 6348}, + {0x2f85c, 16, 16, 6349}, + {0x0, 10, 11, 6349}, + {0x2f85d, 16, 16, 6350}, + {0x0, 2, 3, 6350}, + {0x2f85e, 16, 16, 6351}, + {0x0, 2, 3, 6351}, + {0x2f85f, 16, 16, 6352}, + {0x0, 10, 15, 6352}, {0x0, 8, 9, 6357}, - {0x2247, 16, 16, 6358}, - {0x0, 5, 6, 6358}, - {0x0, 6, 7, 6359}, - {0x2fa16, 16, 16, 6360}, - {0x0, 0, 1, 6360}, - {0x0, 0, 1, 6361}, - {0x0, 3, 4, 6362}, - {0x0, 4, 5, 6363}, - {0x0, 5, 6, 6364}, - {0x1f8a, 16, 16, 6365}, - {0x0, 14, 15, 6365}, - {0x2fa0d, 16, 16, 6366}, - {0x0, 1, 2, 6366}, - {0x2f8a0, 16, 16, 6367}, - {0x2f8e4, 16, 16, 6367}, - {0x0, 9, 10, 6367}, - {0x2f8cd, 16, 16, 6368}, - {0x0, 5, 10, 6368}, - {0x2f8d7, 16, 16, 6373}, - {0x1e90, 16, 16, 6373}, - {0x179, 16, 16, 6373}, - {0x2f981, 16, 16, 6373}, - {0x17b, 16, 16, 6373}, - {0x21b, 16, 16, 6373}, - {0x163, 16, 16, 6373}, - {0xfa4c, 16, 16, 6373}, - {0x1e6d, 16, 16, 6373}, - {0x37e, 16, 16, 6373}, - {0x1d9, 16, 16, 6373}, - {0x0, 0, 1, 6373}, - {0x0, 3, 4, 6374}, - {0x0, 0, 1, 6375}, - {0x0, 9, 10, 6376}, - {0x0, 9, 11, 6377}, - {0x30d7, 16, 16, 6379}, - {0x0, 0, 1, 6379}, - {0x0, 3, 4, 6380}, - {0x0, 0, 1, 6381}, - {0x0, 9, 10, 6382}, - {0x0, 9, 10, 6383}, - {0x3060, 16, 16, 6384}, - {0x0, 2, 6, 6384}, - {0x1f91, 16, 16, 6388}, - {0x1e16, 16, 16, 6388}, - {0x1f27, 16, 16, 6388}, - {0x0, 7, 8, 6388}, - {0x2f89e, 16, 16, 6389}, - {0x0, 9, 10, 6389}, - {0x2f8c3, 16, 16, 6390}, - {0x0, 1, 2, 6390}, - {0x2f83a, 16, 16, 6391}, - {0x0, 12, 13, 6391}, - {0x2f880, 16, 16, 6392}, - {0x2f989, 16, 16, 6392}, - {0xd1, 16, 16, 6392}, - {0x1f8, 16, 16, 6392}, - {0x143, 16, 16, 6392}, - {0x1e44, 16, 16, 6392}, - {0x0, 11, 12, 6392}, - {0x2f98e, 16, 16, 6393}, - {0x0, 11, 12, 6393}, - {0x2f933, 16, 16, 6394}, - {0x0, 10, 11, 6394}, - {0xf99b, 16, 16, 6395}, - {0x0, 0, 1, 6395}, - {0x1e75, 16, 16, 6396}, - {0x0, 0, 1, 6396}, - {0x0, 0, 1, 6397}, - {0x0, 3, 4, 6398}, - {0x0, 4, 5, 6399}, - {0x0, 5, 6, 6400}, - {0x1f8d, 16, 16, 6401}, - {0x30d6, 16, 16, 6401}, - {0x1f2b, 16, 16, 6401}, - {0x0, 2, 3, 6401}, - {0xf9ad, 16, 16, 6402}, - {0xf95d, 16, 16, 6402}, - {0x0, 0, 1, 6402}, - {0x0, 0, 1, 6403}, - {0x0, 3, 4, 6404}, - {0x0, 0, 3, 6405}, - {0x0, 3, 4, 6408}, - {0x1e7c, 16, 16, 6409}, - {0x0, 3, 4, 6409}, - {0x0, 14, 15, 6410}, - {0x2f977, 16, 16, 6411}, - {0x0, 0, 1, 6411}, - {0x0, 3, 4, 6412}, - {0x0, 0, 1, 6413}, - {0x0, 9, 10, 6414}, - {0x0, 9, 10, 6415}, - {0x305e, 16, 16, 6416}, - {0x0, 0, 1, 6416}, - {0x2f842, 16, 16, 6417}, - {0x0, 3, 4, 6417}, - {0x2f90a, 16, 16, 6418}, - {0x0, 0, 9, 6418}, - {0x38e, 16, 16, 6427}, - {0x0, 0, 1, 6427}, - {0xf9ee, 16, 16, 6428}, - {0x0, 15, 16, 6428}, - {0x2f80b, 16, 16, 6429}, - {0x0, 10, 11, 6429}, - {0xf919, 16, 16, 6430}, - {0xf912, 16, 16, 6430}, - {0x0, 13, 14, 6430}, - {0x0, 10, 11, 6431}, - {0x2f898, 16, 16, 6432}, - {0x211, 16, 16, 6432}, - {0x159, 16, 16, 6432}, - {0x0, 12, 13, 6432}, - {0xfa2b, 16, 16, 6433}, - {0x0, 10, 11, 6433}, - {0xf9bb, 16, 16, 6434}, - {0x0, 0, 1, 6434}, - {0x0, 0, 1, 6435}, - {0x0, 3, 4, 6436}, - {0x0, 4, 5, 6437}, - {0x0, 5, 6, 6438}, - {0x1f83, 16, 16, 6439}, - {0x1ff8, 16, 16, 6439}, - {0x0, 11, 12, 6439}, - {0x2f9d4, 16, 16, 6440}, - {0x0, 1, 12, 6440}, - {0x216, 16, 16, 6451}, - {0x0, 0, 1, 6451}, - {0x0, 0, 1, 6452}, - {0x0, 3, 4, 6453}, - {0x0, 0, 1, 6454}, - {0x0, 4, 5, 6455}, - {0x1e0, 16, 16, 6456}, - {0x0, 0, 16, 6456}, - {0x0, 6, 7, 6472}, - {0xfa37, 16, 16, 6473}, - {0x0, 0, 1, 6473}, - {0x0, 0, 1, 6474}, - {0x0, 3, 4, 6475}, - {0x0, 3, 4, 6476}, - {0x0, 8, 9, 6477}, - {0x22e3, 16, 16, 6478}, - {0x0, 0, 2, 6478}, - {0x1f6a, 16, 16, 6480}, - {0x1f6c, 16, 16, 6480}, - {0x137, 16, 16, 6480}, - {0x0, 3, 5, 6480}, - {0x1f51, 16, 16, 6482}, - {0x1f50, 16, 16, 6482}, - {0x0, 1, 2, 6482}, - {0x0, 5, 6, 6483}, - {0x2f9ec, 16, 16, 6484}, - {0x0, 14, 15, 6484}, - {0x2f8c2, 16, 16, 6485}, - {0x0, 13, 14, 6485}, - {0x2f99d, 16, 16, 6486}, - {0x1af, 16, 16, 6486}, - {0x0, 9, 10, 6486}, - {0xf9c7, 16, 16, 6487}, - {0x1e59, 16, 16, 6487}, - {0x4d3, 16, 16, 6487}, - {0x0, 0, 1, 6487}, - {0x0, 0, 1, 6488}, - {0x0, 3, 4, 6489}, - {0x0, 0, 1, 6490}, + {0x2f860, 16, 16, 6358}, + {0x0, 10, 11, 6358}, + {0x2f861, 16, 16, 6359}, + {0x0, 12, 13, 6359}, + {0x2f862, 16, 16, 6360}, + {0x0, 1, 12, 6360}, + {0x0, 11, 12, 6371}, + {0x2f863, 16, 16, 6372}, + {0x0, 7, 8, 6372}, + {0x2f864, 16, 16, 6373}, + {0x0, 8, 9, 6373}, + {0x2f865, 16, 16, 6374}, + {0x0, 6, 7, 6374}, + {0x2f866, 16, 16, 6375}, + {0x0, 14, 16, 6375}, + {0x0, 14, 15, 6377}, + {0x2f867, 16, 16, 6378}, + {0x0, 12, 13, 6378}, + {0x2f868, 16, 16, 6379}, + {0x0, 8, 9, 6379}, + {0x2f869, 16, 16, 6380}, + {0x0, 14, 15, 6380}, + {0x2f86b, 16, 16, 6381}, + {0x0, 12, 13, 6381}, + {0x0, 8, 9, 6382}, + {0x2f86c, 16, 16, 6383}, + {0x0, 3, 4, 6383}, + {0x2f86d, 16, 16, 6384}, + {0x0, 8, 9, 6384}, + {0x2f86e, 16, 16, 6385}, + {0x0, 3, 16, 6385}, + {0x2f870, 16, 16, 6398}, + {0x0, 1, 2, 6398}, + {0x0, 8, 9, 6399}, + {0x2f871, 16, 16, 6400}, + {0x2f872, 16, 16, 6400}, + {0x0, 6, 7, 6400}, + {0x2f873, 16, 16, 6401}, + {0x0, 3, 4, 6401}, + {0x2f874, 16, 16, 6402}, + {0x0, 2, 3, 6402}, + {0x2f875, 16, 16, 6403}, + {0x0, 8, 9, 6403}, + {0x0, 1, 2, 6404}, + {0x2f876, 16, 16, 6405}, + {0x2f877, 16, 16, 6405}, + {0x0, 0, 1, 6405}, + {0x2f879, 16, 16, 6406}, + {0x0, 13, 14, 6406}, + {0x2f87a, 16, 16, 6407}, + {0x0, 0, 15, 6407}, + {0x0, 4, 7, 6422}, + {0x2f87b, 16, 16, 6425}, + {0x0, 3, 4, 6425}, + {0x2f87c, 16, 16, 6426}, + {0x2f87d, 16, 16, 6426}, + {0x0, 11, 15, 6426}, + {0x2f87e, 16, 16, 6430}, + {0x2f87f, 16, 16, 6430}, + {0x0, 12, 13, 6430}, + {0x2f880, 16, 16, 6431}, + {0x0, 1, 3, 6431}, + {0x2f881, 16, 16, 6433}, + {0x2f882, 16, 16, 6433}, + {0x0, 2, 15, 6433}, + {0x0, 15, 16, 6446}, + {0x2f883, 16, 16, 6447}, + {0x0, 13, 14, 6447}, + {0x2f884, 16, 16, 6448}, + {0x0, 8, 9, 6448}, + {0x2f885, 16, 16, 6449}, + {0x0, 13, 14, 6449}, + {0x2f886, 16, 16, 6450}, + {0x0, 9, 10, 6450}, + {0x2f887, 16, 16, 6451}, + {0x0, 2, 3, 6451}, + {0x2f888, 16, 16, 6452}, + {0x0, 1, 12, 6452}, + {0x0, 8, 10, 6463}, + {0x0, 3, 4, 6465}, + {0x2f889, 16, 16, 6466}, + {0x0, 12, 13, 6466}, + {0x2f88a, 16, 16, 6467}, + {0x0, 0, 7, 6467}, + {0x2f88b, 16, 16, 6474}, + {0x2f88c, 16, 16, 6474}, + {0x2f88d, 16, 16, 6474}, + {0x0, 0, 7, 6474}, + {0x0, 9, 10, 6481}, + {0x0, 2, 3, 6482}, + {0x2f88f, 16, 16, 6483}, + {0x0, 14, 15, 6483}, + {0x2f890, 16, 16, 6484}, + {0x0, 3, 4, 6484}, + {0x0, 1, 2, 6485}, + {0x2f892, 16, 16, 6486}, + {0x0, 1, 5, 6486}, + {0x2f98b, 16, 16, 6490}, + {0x0, 2, 3, 6490}, + {0x2f895, 16, 16, 6491}, {0x0, 7, 8, 6491}, - {0x1e1f, 16, 16, 6492}, - {0x0, 7, 8, 6492}, - {0x2f9bf, 16, 16, 6493}, - {0x0, 2, 5, 6493}, - {0xf73, 16, 16, 6496}, - {0xf75, 16, 16, 6496}, - {0x0, 8, 9, 6496}, - {0x2f83f, 16, 16, 6497}, - {0x0, 3, 5, 6497}, - {0x1f30, 16, 16, 6499}, - {0x1f31, 16, 16, 6499}, - {0x0, 15, 16, 6499}, - {0xf913, 16, 16, 6500}, - {0x0, 0, 11, 6500}, - {0x1e87, 16, 16, 6511}, - {0x0, 0, 2, 6511}, - {0x1fcd, 16, 16, 6513}, - {0x1fce, 16, 16, 6513}, - {0x175, 16, 16, 6513}, - {0x1e83, 16, 16, 6513}, - {0x1e81, 16, 16, 6513}, - {0x0, 12, 13, 6513}, - {0x2f8b8, 16, 16, 6514}, - {0x0, 5, 6, 6514}, - {0x1ffc, 16, 16, 6515}, - {0xfa45, 16, 16, 6515}, - {0x1e85, 16, 16, 6515}, - {0x0, 3, 9, 6515}, - {0x1ecc, 16, 16, 6521}, - {0x0, 0, 1, 6521}, - {0x0, 0, 1, 6522}, - {0x0, 11, 12, 6523}, - {0x0, 11, 12, 6524}, - {0x0, 14, 15, 6525}, - {0xbcb, 16, 16, 6526}, - {0x1ea, 16, 16, 6526}, - {0x0, 0, 1, 6526}, - {0x0, 0, 1, 6527}, - {0x0, 3, 4, 6528}, - {0x0, 3, 4, 6529}, - {0x0, 8, 9, 6530}, - {0x22ac, 16, 16, 6531}, - {0x0, 1, 2, 6531}, - {0x0, 10, 11, 6532}, - {0x2f9f7, 16, 16, 6533}, - {0x0, 12, 13, 6533}, - {0xf956, 16, 16, 6534}, - {0x0, 0, 1, 6534}, - {0x0, 0, 1, 6535}, - {0x0, 3, 4, 6536}, - {0x0, 0, 1, 6537}, - {0x0, 8, 9, 6538}, - {0x4f8, 16, 16, 6539}, - {0x0, 12, 16, 6539}, - {0xf9e9, 16, 16, 6543}, - {0xf97e, 16, 16, 6543}, - {0x0, 14, 15, 6543}, - {0x2f8af, 16, 16, 6544}, - {0x21f, 16, 16, 6544}, - {0x1e98, 16, 16, 6544}, - {0x0, 1, 2, 6544}, - {0x1e3a, 16, 16, 6545}, - {0x0, 7, 8, 6545}, - {0x9cc, 16, 16, 6546}, - {0x0, 3, 15, 6546}, - {0x1e2a, 16, 16, 6558}, - {0x0, 5, 16, 6558}, - {0x2fa1a, 16, 16, 6569}, - {0x2f81a, 16, 16, 6569}, - {0x0, 7, 12, 6569}, - {0x2f929, 16, 16, 6574}, - {0x0, 2, 16, 6574}, - {0xf94f, 16, 16, 6588}, - {0x0, 14, 15, 6588}, - {0xf920, 16, 16, 6589}, - {0x0, 10, 11, 6589}, - {0x0, 14, 15, 6590}, - {0x2f9cb, 16, 16, 6591}, - {0xf9a0, 16, 16, 6591}, - {0x1e28, 16, 16, 6591}, - {0x0, 1, 2, 6591}, - {0x2f8da, 16, 16, 6592}, - {0x1e24, 16, 16, 6592}, - {0x2fa19, 16, 16, 6592}, - {0xf9db, 16, 16, 6592}, - {0x0, 0, 1, 6592}, - {0x0, 0, 1, 6593}, - {0x0, 3, 4, 6594}, - {0x0, 0, 3, 6595}, - {0x0, 7, 8, 6598}, - {0x122, 16, 16, 6599}, - {0x0, 0, 2, 6599}, - {0x1f2a, 16, 16, 6601}, - {0x1f2c, 16, 16, 6601}, - {0x0, 0, 1, 6601}, - {0x0, 0, 1, 6602}, - {0x0, 3, 4, 6603}, - {0x0, 4, 5, 6604}, - {0x0, 5, 6, 6605}, - {0x1f93, 16, 16, 6606}, - {0x0, 14, 15, 6606}, - {0xbca, 16, 16, 6607}, - {0x0, 6, 7, 6607}, - {0x2f912, 16, 16, 6608}, - {0x0, 5, 6, 6608}, - {0x2f9f6, 16, 16, 6609}, - {0x0, 3, 4, 6609}, - {0x2f8dd, 16, 16, 6610}, - {0xf96a, 16, 16, 6610}, - {0x0, 14, 15, 6610}, - {0x2f90f, 16, 16, 6611}, - {0x0, 9, 10, 6611}, - {0x374, 16, 16, 6612}, - {0x0, 6, 11, 6612}, - {0xf998, 16, 16, 6617}, - {0x0, 4, 5, 6617}, - {0xfa3d, 16, 16, 6618}, - {0x0, 2, 6, 6618}, - {0x1f26, 16, 16, 6622}, - {0x0, 7, 15, 6622}, - {0x2f8c4, 16, 16, 6630}, - {0x0, 0, 1, 6630}, - {0x2f922, 16, 16, 6631}, - {0x0, 1, 2, 6631}, - {0xf96d, 16, 16, 6632}, - {0x0, 1, 2, 6632}, - {0x1e6f, 16, 16, 6633}, - {0x0, 0, 1, 6633}, - {0x0, 0, 1, 6634}, - {0x0, 3, 4, 6635}, - {0x0, 4, 5, 6636}, - {0x0, 5, 6, 6637}, - {0x1fa4, 16, 16, 6638}, - {0x0, 0, 1, 6638}, - {0x0, 0, 1, 6639}, - {0x0, 3, 4, 6640}, - {0x0, 0, 4, 6641}, - {0x0, 1, 13, 6645}, - {0x17e, 16, 16, 6657}, - {0x1f90, 16, 16, 6657}, - {0x0, 0, 2, 6657}, - {0x1f5b, 16, 16, 6659}, - {0x1f5d, 16, 16, 6659}, - {0x0, 5, 6, 6659}, - {0xfa04, 16, 16, 6660}, - {0x1f6e, 16, 16, 6660}, - {0x0, 0, 1, 6660}, - {0x0, 0, 1, 6661}, - {0x0, 3, 4, 6662}, - {0x0, 0, 3, 6663}, - {0x0, 1, 13, 6666}, - {0x11f, 16, 16, 6678}, - {0x121, 16, 16, 6678}, - {0x1e21, 16, 16, 6678}, - {0x11d, 16, 16, 6678}, - {0x1f5, 16, 16, 6678}, - {0x0, 3, 4, 6678}, - {0x2f8bc, 16, 16, 6679}, - {0x17c, 16, 16, 6679}, - {0x17a, 16, 16, 6679}, - {0x1e91, 16, 16, 6679}, - {0x0, 1, 2, 6679}, - {0x2f8b5, 16, 16, 6680}, - {0xf9d7, 16, 16, 6680}, - {0x2f8c6, 16, 16, 6680}, - {0x1e7, 16, 16, 6680}, - {0x0, 4, 5, 6680}, - {0xf943, 16, 16, 6681}, - {0x0, 0, 1, 6681}, - {0x0, 0, 1, 6682}, - {0x0, 3, 4, 6683}, - {0x0, 0, 1, 6684}, - {0x0, 0, 10, 6685}, - {0x1ed7, 16, 16, 6695}, - {0x0, 0, 1, 6695}, - {0x0, 0, 1, 6696}, - {0x0, 3, 4, 6697}, - {0x0, 4, 5, 6698}, - {0x0, 5, 6, 6699}, - {0x1f8f, 16, 16, 6700}, - {0x1ed1, 16, 16, 6700}, - {0x1ed3, 16, 16, 6700}, - {0x0, 2, 14, 6700}, - {0xf95e, 16, 16, 6712}, - {0x2f801, 16, 16, 6712}, - {0x1ed5, 16, 16, 6712}, - {0xf905, 16, 16, 6712}, - {0x0, 0, 2, 6712}, - {0x1f6d, 16, 16, 6714}, - {0x1f6b, 16, 16, 6714}, - {0x0, 10, 11, 6714}, - {0x2f808, 16, 16, 6715}, - {0x0, 15, 16, 6715}, - {0x0, 0, 1, 6716}, - {0x0, 0, 1, 6717}, - {0x0, 12, 13, 6718}, - {0x0, 13, 14, 6719}, - {0x0, 5, 6, 6720}, - {0xcc0, 16, 16, 6721}, - {0x0, 0, 16, 6721}, - {0x214, 16, 16, 6737}, - {0x0, 11, 12, 6737}, - {0xf953, 16, 16, 6738}, - {0x1d3, 16, 16, 6738}, - {0x170, 16, 16, 6738}, - {0x16e, 16, 16, 6738}, - {0x0, 3, 14, 6738}, - {0x1e77, 16, 16, 6749}, - {0x0, 3, 14, 6749}, - {0x13c, 16, 16, 6760}, - {0x1e37, 16, 16, 6760}, - {0x0, 0, 1, 6760}, - {0x0, 0, 1, 6761}, - {0x0, 3, 4, 6762}, - {0x0, 1, 2, 6763}, - {0x0, 4, 5, 6764}, - {0x1fec, 16, 16, 6765}, - {0x0, 14, 15, 6765}, - {0x0, 4, 5, 6766}, - {0x2f859, 16, 16, 6767}, - {0x2f800, 16, 16, 6767}, - {0x1e3d, 16, 16, 6767}, - {0x0, 0, 1, 6767}, - {0x0, 3, 4, 6768}, - {0x0, 0, 1, 6769}, - {0x0, 9, 10, 6770}, - {0x0, 9, 10, 6771}, - {0x304e, 16, 16, 6772}, - {0x0, 11, 15, 6772}, - {0x2f87e, 16, 16, 6776}, - {0x2f8cb, 16, 16, 6776}, - {0x1e84, 16, 16, 6776}, - {0x0, 0, 1, 6776}, - {0x0, 0, 1, 6777}, - {0x0, 3, 4, 6778}, - {0x0, 0, 1, 6779}, - {0x0, 1, 2, 6780}, - {0x403, 16, 16, 6781}, - {0x173, 16, 16, 6781}, - {0x1ee6, 16, 16, 6781}, - {0xdc, 16, 16, 6781}, - {0x1ee5, 16, 16, 6781}, - {0x16c, 16, 16, 6781}, - {0x16a, 16, 16, 6781}, - {0x168, 16, 16, 6781}, - {0xdb, 16, 16, 6781}, - {0x0, 8, 11, 6781}, - {0x0, 0, 1, 6784}, - {0x0, 0, 1, 6785}, - {0x0, 6, 7, 6786}, - {0x0, 5, 6, 6787}, - {0x0, 4, 5, 6788}, - {0x626, 16, 16, 6789}, - {0x1e73, 16, 16, 6789}, - {0x0, 5, 7, 6789}, - {0xcc7, 16, 16, 6791}, - {0x0, 0, 1, 6791}, - {0x0, 0, 1, 6792}, - {0x0, 3, 4, 6793}, - {0x0, 0, 3, 6794}, - {0x0, 0, 11, 6797}, - {0x233, 16, 16, 6808}, - {0x1e8f, 16, 16, 6808}, - {0xcc8, 16, 16, 6808}, - {0xfd, 16, 16, 6808}, - {0x1ef3, 16, 16, 6808}, - {0x1ef9, 16, 16, 6808}, - {0x177, 16, 16, 6808}, - {0x0, 12, 13, 6808}, - {0x2f812, 16, 16, 6809}, - {0x1ef7, 16, 16, 6809}, - {0xff, 16, 16, 6809}, - {0x1e80, 16, 16, 6809}, - {0x0, 14, 15, 6809}, - {0x2f83c, 16, 16, 6810}, - {0x0, 2, 3, 6810}, + {0x2f896, 16, 16, 6492}, + {0x0, 0, 16, 6492}, + {0x0, 11, 12, 6508}, + {0x0, 8, 9, 6509}, + {0x2f897, 16, 16, 6510}, + {0x0, 1, 16, 6510}, + {0x0, 13, 14, 6525}, + {0x0, 10, 11, 6526}, + {0x2f898, 16, 16, 6527}, + {0x0, 2, 12, 6527}, + {0x2f899, 16, 16, 6537}, + {0x2f89a, 16, 16, 6537}, + {0x0, 3, 4, 6537}, + {0x2f89b, 16, 16, 6538}, + {0x0, 10, 11, 6538}, + {0x2f89c, 16, 16, 6539}, + {0x0, 13, 14, 6539}, + {0x2f89d, 16, 16, 6540}, + {0x0, 7, 8, 6540}, + {0x2f89e, 16, 16, 6541}, + {0x2f89f, 16, 16, 6541}, + {0x0, 1, 2, 6541}, + {0x2f8a0, 16, 16, 6542}, + {0x0, 1, 4, 6542}, + {0x0, 10, 11, 6545}, + {0x2f8a1, 16, 16, 6546}, + {0x0, 12, 13, 6546}, + {0x2f8a2, 16, 16, 6547}, + {0x0, 13, 14, 6547}, + {0x0, 4, 5, 6548}, + {0x2f8a4, 16, 16, 6549}, + {0x0, 7, 8, 6549}, + {0x2f8a5, 16, 16, 6550}, + {0x2f8a6, 16, 16, 6550}, + {0x2f8a9, 16, 16, 6550}, + {0x2f8a8, 16, 16, 6550}, + {0x0, 10, 11, 6550}, + {0x2f8aa, 16, 16, 6551}, + {0x0, 2, 3, 6551}, + {0x2f8ac, 16, 16, 6552}, + {0x0, 4, 16, 6552}, + {0x2f8ad, 16, 16, 6564}, + {0x2f8ae, 16, 16, 6564}, + {0x0, 14, 15, 6564}, + {0x2f8af, 16, 16, 6565}, + {0x0, 0, 12, 6565}, + {0x2f8b2, 16, 16, 6577}, + {0x2f8b3, 16, 16, 6577}, + {0x0, 13, 14, 6577}, + {0x2f8b4, 16, 16, 6578}, + {0x0, 1, 2, 6578}, + {0x2f8b5, 16, 16, 6579}, + {0x2f8b6, 16, 16, 6579}, + {0x0, 0, 1, 6579}, + {0x2f8b7, 16, 16, 6580}, + {0x0, 0, 16, 6580}, + {0x0, 12, 13, 6596}, + {0x2f8b8, 16, 16, 6597}, + {0x0, 13, 14, 6597}, + {0x2f8b9, 16, 16, 6598}, + {0x2f8ba, 16, 16, 6598}, + {0x0, 8, 9, 6598}, + {0x2f8bb, 16, 16, 6599}, + {0x0, 3, 4, 6599}, + {0x2f8bc, 16, 16, 6600}, + {0x0, 4, 5, 6600}, + {0x2f8bd, 16, 16, 6601}, + {0x0, 1, 2, 6601}, + {0x2f8be, 16, 16, 6602}, + {0x0, 2, 3, 6602}, + {0x2f8bf, 16, 16, 6603}, + {0x0, 5, 6, 6603}, + {0x2f8c0, 16, 16, 6604}, + {0x2f8c1, 16, 16, 6604}, + {0x0, 2, 15, 6604}, + {0x0, 14, 15, 6617}, + {0x2f8c2, 16, 16, 6618}, + {0x0, 9, 10, 6618}, + {0x2f8c3, 16, 16, 6619}, + {0x0, 7, 15, 6619}, + {0x2f8c4, 16, 16, 6627}, + {0x2f8c5, 16, 16, 6627}, + {0x2f8c6, 16, 16, 6627}, + {0x0, 12, 13, 6627}, + {0x2f8c7, 16, 16, 6628}, + {0x0, 12, 13, 6628}, + {0x2f8c9, 16, 16, 6629}, + {0x0, 0, 1, 6629}, + {0x0, 10, 11, 6630}, + {0x2f8ca, 16, 16, 6631}, + {0x2f8cb, 16, 16, 6631}, + {0x2f8cc, 16, 16, 6631}, + {0x0, 9, 10, 6631}, + {0x2f8cd, 16, 16, 6632}, + {0x0, 0, 10, 6632}, + {0x0, 9, 10, 6642}, + {0x2f8ce, 16, 16, 6643}, + {0x0, 8, 9, 6643}, + {0x2f8d0, 16, 16, 6644}, + {0x0, 4, 5, 6644}, + {0x2f8d1, 16, 16, 6645}, + {0x2f8d2, 16, 16, 6645}, + {0x2f8d3, 16, 16, 6645}, + {0x0, 0, 1, 6645}, + {0x2f8d4, 16, 16, 6646}, + {0x2f8d5, 16, 16, 6646}, + {0x0, 13, 14, 6646}, + {0x2f8d6, 16, 16, 6647}, + {0x0, 0, 14, 6647}, + {0x0, 5, 10, 6661}, + {0x2f8d7, 16, 16, 6666}, + {0x2f8d9, 16, 16, 6666}, + {0x0, 1, 2, 6666}, + {0x2f8da, 16, 16, 6667}, + {0x0, 3, 15, 6667}, + {0x2f8db, 16, 16, 6679}, + {0x2f8dc, 16, 16, 6679}, + {0x0, 5, 13, 6679}, + {0x0, 3, 4, 6687}, + {0x2f8dd, 16, 16, 6688}, + {0x0, 9, 10, 6688}, + {0x2f8de, 16, 16, 6689}, + {0x2f8df, 16, 16, 6689}, + {0x0, 5, 6, 6689}, + {0x2f8e0, 16, 16, 6690}, + {0x0, 2, 3, 6690}, + {0x2f8e1, 16, 16, 6691}, + {0x0, 6, 7, 6691}, + {0x0, 13, 14, 6692}, + {0x2f8e3, 16, 16, 6693}, + {0x2f8e4, 16, 16, 6693}, + {0x2f8e5, 16, 16, 6693}, + {0x0, 1, 15, 6693}, + {0x0, 4, 5, 6707}, + {0x2f8e6, 16, 16, 6708}, + {0x0, 13, 14, 6708}, + {0x2f8e7, 16, 16, 6709}, + {0x0, 2, 3, 6709}, + {0x2f8e8, 16, 16, 6710}, + {0x0, 3, 4, 6710}, + {0x2f8e9, 16, 16, 6711}, + {0x0, 10, 11, 6711}, + {0x2f8ea, 16, 16, 6712}, + {0x0, 8, 9, 6712}, + {0x2f8eb, 16, 16, 6713}, + {0x0, 10, 11, 6713}, + {0x0, 3, 4, 6714}, + {0x2f8ec, 16, 16, 6715}, + {0x2f8ed, 16, 16, 6715}, + {0x0, 1, 5, 6715}, + {0x0, 8, 9, 6719}, + {0x2f8ee, 16, 16, 6720}, + {0x0, 1, 2, 6720}, + {0x2f8ef, 16, 16, 6721}, + {0x0, 10, 11, 6721}, + {0x0, 7, 8, 6722}, + {0x2f8f0, 16, 16, 6723}, + {0x0, 4, 5, 6723}, + {0x2f8f1, 16, 16, 6724}, + {0x0, 14, 15, 6724}, + {0x2f8f2, 16, 16, 6725}, + {0x2f8f3, 16, 16, 6725}, + {0x0, 15, 16, 6725}, + {0x2f8f4, 16, 16, 6726}, + {0x2f8f6, 16, 16, 6726}, + {0x0, 8, 16, 6726}, + {0x0, 13, 14, 6734}, + {0x2f8f7, 16, 16, 6735}, + {0x0, 11, 12, 6735}, + {0x2f8f8, 16, 16, 6736}, + {0x0, 10, 11, 6736}, + {0x2f8f9, 16, 16, 6737}, + {0x0, 14, 15, 6737}, + {0x2f8fa, 16, 16, 6738}, + {0x0, 11, 12, 6738}, + {0x0, 12, 13, 6739}, + {0x2f8fb, 16, 16, 6740}, + {0x0, 15, 16, 6740}, + {0x2f8fc, 16, 16, 6741}, + {0x2f8fd, 16, 16, 6741}, + {0x0, 7, 8, 6741}, + {0x2f8fe, 16, 16, 6742}, + {0x2f8ff, 16, 16, 6742}, + {0x0, 4, 15, 6742}, + {0x2f900, 16, 16, 6753}, + {0x2f903, 16, 16, 6753}, + {0x2f904, 16, 16, 6753}, + {0x0, 5, 6, 6753}, + {0x2f905, 16, 16, 6754}, + {0x0, 1, 2, 6754}, + {0x0, 14, 15, 6755}, + {0x2f906, 16, 16, 6756}, + {0x2f907, 16, 16, 6756}, + {0x0, 15, 16, 6756}, + {0x2f908, 16, 16, 6757}, + {0x0, 14, 15, 6757}, + {0x2f909, 16, 16, 6758}, + {0x0, 3, 10, 6758}, + {0x0, 3, 4, 6765}, + {0x2f90a, 16, 16, 6766}, + {0x0, 7, 12, 6766}, + {0x2f90b, 16, 16, 6771}, + {0x2f90c, 16, 16, 6771}, + {0x0, 13, 14, 6771}, + {0x0, 1, 2, 6772}, + {0x2f90d, 16, 16, 6773}, + {0x0, 9, 10, 6773}, + {0x2f90e, 16, 16, 6774}, + {0x0, 14, 15, 6774}, + {0x2f90f, 16, 16, 6775}, + {0x0, 5, 9, 6775}, + {0x0, 14, 15, 6779}, + {0x2f910, 16, 16, 6780}, + {0x0, 14, 15, 6780}, + {0x2f911, 16, 16, 6781}, + {0x0, 6, 7, 6781}, + {0x2f912, 16, 16, 6782}, + {0x0, 9, 10, 6782}, + {0x2f913, 16, 16, 6783}, + {0x0, 11, 15, 6783}, + {0x2f914, 16, 16, 6787}, + {0x2f915, 16, 16, 6787}, + {0x0, 6, 7, 6787}, + {0x2f916, 16, 16, 6788}, + {0x0, 10, 11, 6788}, + {0x2f917, 16, 16, 6789}, + {0x2f918, 16, 16, 6789}, + {0x2f919, 16, 16, 6789}, + {0x0, 13, 14, 6789}, + {0x2f91a, 16, 16, 6790}, + {0x0, 5, 6, 6790}, + {0x2f91b, 16, 16, 6791}, + {0x2f91c, 16, 16, 6791}, + {0x0, 2, 16, 6791}, + {0x0, 6, 7, 6805}, + {0x0, 3, 4, 6806}, + {0x2f91d, 16, 16, 6807}, + {0x0, 12, 13, 6807}, + {0x2f91e, 16, 16, 6808}, + {0x0, 10, 11, 6808}, + {0x0, 11, 12, 6809}, + {0x2f91f, 16, 16, 6810}, + {0x2f920, 16, 16, 6810}, + {0x0, 5, 6, 6810}, + {0x2f921, 16, 16, 6811}, {0x0, 0, 1, 6811}, + {0x2f922, 16, 16, 6812}, {0x0, 0, 1, 6812}, - {0x0, 11, 12, 6813}, - {0x0, 13, 14, 6814}, - {0x0, 7, 8, 6815}, - {0xb94, 16, 16, 6816}, - {0x0, 10, 11, 6816}, - {0x0, 11, 12, 6817}, - {0x2f961, 16, 16, 6818}, + {0x0, 8, 9, 6813}, + {0x2f923, 16, 16, 6814}, + {0x0, 0, 1, 6814}, + {0x2f924, 16, 16, 6815}, + {0x0, 5, 6, 6815}, + {0x2f925, 16, 16, 6816}, + {0x0, 3, 4, 6816}, + {0x0, 5, 6, 6817}, + {0x2f926, 16, 16, 6818}, {0x0, 1, 2, 6818}, - {0x213, 16, 16, 6819}, - {0x0, 1, 12, 6819}, - {0x1a0, 16, 16, 6830}, - {0x0, 0, 9, 6830}, - {0x3ca, 16, 16, 6839}, - {0x0, 11, 12, 6839}, - {0xf9f5, 16, 16, 6840}, - {0x3af, 16, 16, 6840}, - {0x1f76, 16, 16, 6840}, - {0x1fd1, 16, 16, 6840}, - {0x1fd0, 16, 16, 6840}, - {0x1e99, 16, 16, 6840}, - {0x0, 1, 2, 6840}, - {0xf9ca, 16, 16, 6841}, - {0x0, 1, 2, 6841}, - {0x2f802, 16, 16, 6842}, - {0x0, 0, 1, 6842}, - {0x0, 0, 1, 6843}, - {0x0, 6, 7, 6844}, - {0x0, 5, 6, 6845}, - {0x0, 4, 5, 6846}, - {0x624, 16, 16, 6847}, - {0x20e, 16, 16, 6847}, - {0x0, 0, 1, 6847}, - {0x0, 0, 1, 6848}, - {0x0, 3, 4, 6849}, - {0x0, 4, 5, 6850}, - {0x0, 5, 6, 6851}, - {0x1fae, 16, 16, 6852}, - {0x0, 4, 5, 6852}, - {0x2f8bd, 16, 16, 6853}, - {0x0, 9, 10, 6853}, - {0x2f949, 16, 16, 6854}, - {0x0, 4, 5, 6854}, - {0xf9a8, 16, 16, 6855}, - {0x0, 3, 9, 6855}, - {0x1e01, 16, 16, 6861}, - {0x1ea1, 16, 16, 6861}, - {0x1ef8, 16, 16, 6861}, - {0x0, 0, 16, 6861}, - {0x101, 16, 16, 6877}, - {0x105, 16, 16, 6877}, - {0x1f32, 16, 16, 6877}, - {0x0, 0, 1, 6877}, - {0x0, 3, 4, 6878}, - {0x0, 0, 1, 6879}, - {0x0, 9, 10, 6880}, - {0x0, 9, 10, 6881}, - {0x3069, 16, 16, 6882}, - {0x0, 1, 13, 6882}, - {0x139, 16, 16, 6894}, - {0x0, 12, 13, 6894}, - {0x2f9db, 16, 16, 6895}, - {0x0, 9, 10, 6895}, - {0xf96e, 16, 16, 6896}, - {0x0, 3, 4, 6896}, - {0x0, 0, 1, 6897}, - {0x2fa09, 16, 16, 6898}, - {0x0, 13, 14, 6898}, - {0xf99e, 16, 16, 6899}, - {0x0, 2, 3, 6899}, - {0x2f85e, 16, 16, 6900}, - {0x0, 13, 14, 6900}, - {0xf91f, 16, 16, 6901}, - {0x0, 13, 14, 6901}, - {0x2f91a, 16, 16, 6902}, - {0x13d, 16, 16, 6902}, - {0x0, 0, 1, 6902}, - {0x0, 3, 4, 6903}, - {0x0, 0, 1, 6904}, - {0x0, 9, 10, 6905}, - {0x0, 9, 10, 6906}, - {0x30f8, 16, 16, 6907}, - {0x0, 5, 6, 6907}, - {0x2f81d, 16, 16, 6908}, - {0x2f945, 16, 16, 6908}, - {0x0, 0, 1, 6908}, - {0x0, 3, 4, 6909}, - {0x0, 0, 1, 6910}, - {0x0, 9, 10, 6911}, - {0x0, 9, 10, 6912}, - {0x30fa, 16, 16, 6913}, - {0x0, 7, 12, 6913}, - {0xf929, 16, 16, 6918}, - {0x0, 14, 15, 6918}, - {0xf917, 16, 16, 6919}, - {0x0, 8, 12, 6919}, - {0xfa07, 16, 16, 6923}, - {0x0, 2, 6, 6923}, - {0x1f0e, 16, 16, 6927}, - {0x0, 0, 1, 6927}, - {0x0, 0, 1, 6928}, - {0x0, 3, 4, 6929}, - {0x0, 0, 1, 6930}, - {0x0, 1, 2, 6931}, - {0x45c, 16, 16, 6932}, - {0x1f88, 16, 16, 6932}, - {0x0, 0, 1, 6932}, - {0x0, 0, 1, 6933}, - {0x0, 3, 4, 6934}, - {0x0, 0, 1, 6935}, - {0x0, 0, 2, 6936}, - {0x1f4d, 16, 16, 6938}, - {0x1f4b, 16, 16, 6938}, - {0x0, 0, 1, 6938}, - {0x0, 0, 1, 6939}, - {0x0, 3, 4, 6940}, - {0x0, 3, 4, 6941}, - {0x0, 8, 9, 6942}, - {0x22eb, 16, 16, 6943}, - {0x0, 0, 1, 6943}, - {0x0, 0, 1, 6944}, - {0x0, 3, 4, 6945}, - {0x0, 3, 4, 6946}, - {0x0, 8, 9, 6947}, - {0x226e, 16, 16, 6948}, - {0x0, 0, 1, 6948}, - {0xf9cf, 16, 16, 6949}, - {0x0, 15, 16, 6949}, - {0x2f8f4, 16, 16, 6950}, - {0x0, 3, 5, 6950}, - {0x1f11, 16, 16, 6952}, - {0x1f10, 16, 16, 6952}, - {0x0, 0, 1, 6952}, - {0x0, 0, 1, 6953}, - {0x0, 3, 4, 6954}, - {0x0, 1, 2, 6955}, - {0x0, 3, 5, 6956}, - {0x1fe4, 16, 16, 6958}, - {0x2f9df, 16, 16, 6958}, - {0x1fe5, 16, 16, 6958}, - {0x0, 0, 1, 6958}, - {0x0, 3, 4, 6959}, - {0x0, 0, 1, 6960}, - {0x0, 9, 10, 6961}, - {0x0, 9, 10, 6962}, - {0x3067, 16, 16, 6963}, - {0x1f4c, 16, 16, 6963}, - {0x0, 6, 7, 6963}, - {0x0, 10, 11, 6964}, - {0xf987, 16, 16, 6965}, - {0x2f87f, 16, 16, 6965}, - {0x2f8d9, 16, 16, 6965}, + {0x0, 4, 5, 6819}, + {0x2f927, 16, 16, 6820}, + {0x2f928, 16, 16, 6820}, + {0x2f929, 16, 16, 6820}, + {0x0, 10, 12, 6820}, + {0x0, 12, 13, 6822}, + {0x2f92a, 16, 16, 6823}, + {0x0, 5, 6, 6823}, + {0x2f92b, 16, 16, 6824}, + {0x0, 8, 9, 6824}, + {0x2f92d, 16, 16, 6825}, + {0x0, 7, 8, 6825}, + {0x2f92e, 16, 16, 6826}, + {0x0, 12, 13, 6826}, + {0x2f92f, 16, 16, 6827}, + {0x0, 1, 2, 6827}, + {0x2f930, 16, 16, 6828}, + {0x2f931, 16, 16, 6828}, + {0x0, 10, 11, 6828}, + {0x2f932, 16, 16, 6829}, + {0x0, 1, 16, 6829}, + {0x0, 11, 12, 6844}, + {0x2f933, 16, 16, 6845}, + {0x0, 4, 5, 6845}, + {0x2f934, 16, 16, 6846}, + {0x0, 3, 10, 6846}, + {0x0, 6, 7, 6853}, + {0x2f935, 16, 16, 6854}, + {0x0, 14, 15, 6854}, + {0x2f936, 16, 16, 6855}, + {0x0, 2, 3, 6855}, + {0x2f937, 16, 16, 6856}, + {0x0, 15, 16, 6856}, + {0x2f939, 16, 16, 6857}, + {0x0, 0, 1, 6857}, + {0x2f93a, 16, 16, 6858}, + {0x0, 10, 12, 6858}, + {0x0, 1, 2, 6860}, + {0x2f93b, 16, 16, 6861}, + {0x0, 8, 9, 6861}, + {0x2f93c, 16, 16, 6862}, + {0x0, 0, 16, 6862}, + {0x0, 4, 16, 6878}, + {0x0, 4, 5, 6890}, + {0x2f93d, 16, 16, 6891}, + {0x0, 12, 13, 6891}, + {0x2f93e, 16, 16, 6892}, + {0x0, 0, 15, 6892}, + {0x0, 8, 9, 6907}, + {0x2f93f, 16, 16, 6908}, + {0x0, 4, 5, 6908}, + {0x2f940, 16, 16, 6909}, + {0x0, 2, 4, 6909}, + {0x2f941, 16, 16, 6911}, + {0x2f942, 16, 16, 6911}, + {0x0, 1, 4, 6911}, + {0x0, 9, 10, 6914}, + {0x2f943, 16, 16, 6915}, + {0x0, 3, 4, 6915}, + {0x2f944, 16, 16, 6916}, + {0x0, 14, 16, 6916}, + {0x2f945, 16, 16, 6918}, + {0x2f947, 16, 16, 6918}, + {0x0, 10, 11, 6918}, + {0x2f948, 16, 16, 6919}, + {0x0, 9, 10, 6919}, + {0x2f949, 16, 16, 6920}, + {0x0, 11, 12, 6920}, + {0x2f94a, 16, 16, 6921}, + {0x0, 6, 7, 6921}, + {0x2f94b, 16, 16, 6922}, + {0x0, 6, 7, 6922}, + {0x2f94c, 16, 16, 6923}, + {0x0, 1, 2, 6923}, + {0x0, 13, 14, 6924}, + {0x2f94d, 16, 16, 6925}, + {0x0, 14, 15, 6925}, + {0x2f94e, 16, 16, 6926}, + {0x2f950, 16, 16, 6926}, + {0x0, 3, 4, 6926}, + {0x2f951, 16, 16, 6927}, + {0x0, 2, 13, 6927}, + {0x0, 6, 7, 6938}, + {0x2f952, 16, 16, 6939}, + {0x0, 10, 11, 6939}, + {0x2f954, 16, 16, 6940}, + {0x0, 5, 6, 6940}, + {0x2f955, 16, 16, 6941}, + {0x0, 11, 12, 6941}, + {0x2f957, 16, 16, 6942}, + {0x0, 2, 3, 6942}, + {0x0, 15, 16, 6943}, + {0x2f958, 16, 16, 6944}, + {0x2f95a, 16, 16, 6944}, + {0x2f95b, 16, 16, 6944}, + {0x0, 7, 8, 6944}, + {0x0, 12, 13, 6945}, + {0x2f95c, 16, 16, 6946}, + {0x0, 10, 11, 6946}, + {0x0, 7, 8, 6947}, + {0x2f95e, 16, 16, 6948}, + {0x0, 14, 15, 6948}, + {0x2f95f, 16, 16, 6949}, + {0x0, 0, 11, 6949}, + {0x0, 2, 3, 6960}, + {0x2f960, 16, 16, 6961}, + {0x0, 10, 11, 6961}, + {0x0, 11, 12, 6962}, + {0x2f961, 16, 16, 6963}, + {0x2f962, 16, 16, 6963}, + {0x2f963, 16, 16, 6963}, + {0x0, 7, 8, 6963}, + {0x2f964, 16, 16, 6964}, + {0x0, 8, 9, 6964}, {0x0, 0, 1, 6965}, - {0xf990, 16, 16, 6966}, + {0x2f965, 16, 16, 6966}, + {0x2f966, 16, 16, 6966}, {0x0, 0, 1, 6966}, - {0x2f879, 16, 16, 6967}, - {0x1f73, 16, 16, 6967}, - {0x0, 7, 8, 6967}, - {0x2f9f0, 16, 16, 6968}, - {0x1f77, 16, 16, 6968}, - {0x1f71, 0, 1, 6968}, - {0x0, 3, 4, 6969}, - {0x0, 1, 2, 6970}, - {0x2f892, 16, 16, 6971}, + {0x2f967, 16, 16, 6967}, + {0x2f968, 16, 16, 6967}, + {0x2f969, 16, 16, 6967}, + {0x0, 0, 1, 6967}, + {0x2f96a, 16, 16, 6968}, + {0x0, 8, 9, 6968}, + {0x0, 6, 7, 6969}, + {0x2f96b, 16, 16, 6970}, + {0x0, 3, 4, 6970}, + {0x2f96c, 16, 16, 6971}, {0x0, 1, 2, 6971}, - {0x1e95, 16, 16, 6972}, - {0x0, 0, 1, 6972}, - {0x0, 0, 1, 6973}, - {0x0, 3, 4, 6974}, - {0x0, 4, 5, 6975}, - {0x0, 5, 6, 6976}, - {0x1fa5, 16, 16, 6977}, - {0x0, 0, 1, 6977}, - {0x0, 3, 4, 6978}, - {0x0, 4, 5, 6979}, - {0x0, 5, 6, 6980}, - {0x1fb4, 16, 16, 6981}, - {0xf925, 16, 16, 6981}, - {0xda, 16, 16, 6981}, - {0x0, 6, 10, 6981}, - {0xf9cc, 16, 16, 6985}, - {0xf9e4, 16, 16, 6985}, - {0x0, 3, 14, 6985}, - {0x145, 16, 16, 6996}, - {0x1e46, 16, 16, 6996}, - {0x0, 3, 4, 6996}, - {0x0, 5, 6, 6997}, - {0x2f926, 16, 16, 6998}, - {0x0, 2, 3, 6998}, - {0x1fc1, 16, 16, 6999}, - {0x0, 11, 12, 6999}, - {0x2f9ff, 16, 16, 7000}, - {0x0, 5, 6, 7000}, - {0x2f955, 16, 16, 7001}, - {0x0, 0, 1, 7001}, - {0x0, 0, 1, 7002}, - {0x0, 3, 4, 7003}, - {0x0, 0, 1, 7004}, - {0x0, 7, 8, 7005}, - {0x1e66, 16, 16, 7006}, - {0x0, 0, 1, 7006}, - {0x0, 0, 1, 7007}, + {0x2f96d, 16, 16, 6972}, + {0x0, 7, 8, 6972}, + {0x2f96e, 16, 16, 6973}, + {0x2f96f, 16, 16, 6973}, + {0x2f970, 16, 16, 6973}, + {0x0, 4, 5, 6973}, + {0x2f971, 16, 16, 6974}, + {0x0, 2, 14, 6974}, + {0x0, 8, 9, 6986}, + {0x2f972, 16, 16, 6987}, + {0x0, 7, 8, 6987}, + {0x2f973, 16, 16, 6988}, + {0x0, 9, 10, 6988}, + {0x2f974, 16, 16, 6989}, + {0x0, 9, 10, 6989}, + {0x2f975, 16, 16, 6990}, + {0x2f976, 16, 16, 6990}, + {0x0, 3, 4, 6990}, + {0x0, 14, 15, 6991}, + {0x2f977, 16, 16, 6992}, + {0x2f978, 16, 16, 6992}, + {0x0, 10, 11, 6992}, + {0x2f979, 16, 16, 6993}, + {0x0, 13, 14, 6993}, + {0x0, 10, 11, 6994}, + {0x2f97b, 16, 16, 6995}, + {0x0, 2, 11, 6995}, + {0x0, 3, 4, 7004}, + {0x2f97c, 16, 16, 7005}, + {0x2f97d, 16, 16, 7005}, + {0x0, 8, 9, 7005}, + {0x2f97e, 16, 16, 7006}, + {0x2f97f, 16, 16, 7006}, + {0x0, 15, 16, 7006}, + {0x2f980, 16, 16, 7007}, + {0x2f981, 16, 16, 7007}, + {0x0, 2, 3, 7007}, + {0x2f982, 16, 16, 7008}, {0x0, 3, 4, 7008}, - {0x0, 0, 1, 7009}, - {0x0, 8, 9, 7010}, - {0x4e6, 16, 16, 7011}, - {0x0, 1, 2, 7011}, - {0x1e3b, 16, 16, 7012}, - {0x0, 7, 8, 7012}, - {0x2f99e, 16, 16, 7013}, - {0x1e4a, 16, 16, 7013}, - {0xd9, 16, 16, 7013}, - {0x0, 3, 4, 7013}, - {0x1e7e, 16, 16, 7014}, - {0x0, 0, 1, 7014}, - {0x0, 0, 1, 7015}, - {0x0, 3, 4, 7016}, - {0x0, 0, 1, 7017}, - {0x0, 1, 9, 7018}, - {0x22d, 16, 16, 7026}, - {0x0, 0, 1, 7026}, - {0x0, 3, 4, 7027}, - {0x0, 0, 1, 7028}, - {0x0, 9, 10, 7029}, - {0x0, 9, 10, 7030}, - {0x30be, 16, 16, 7031}, - {0x1e4d, 16, 16, 7031}, - {0x1e4f, 16, 16, 7031}, - {0x0, 0, 1, 7031}, - {0x0, 0, 1, 7032}, - {0x0, 3, 4, 7033}, - {0x0, 3, 4, 7034}, - {0x0, 8, 9, 7035}, - {0x220c, 16, 16, 7036}, - {0x0, 4, 5, 7036}, - {0x2f84f, 16, 16, 7037}, - {0x0, 3, 12, 7037}, - {0xf931, 16, 16, 7046}, - {0x0, 3, 4, 7046}, - {0x2f849, 16, 16, 7047}, - {0x0, 0, 1, 7047}, - {0x0, 0, 1, 7048}, + {0x2f983, 16, 16, 7009}, + {0x0, 0, 7, 7009}, + {0x0, 11, 12, 7016}, + {0x2f984, 16, 16, 7017}, + {0x0, 14, 15, 7017}, + {0x2f985, 16, 16, 7018}, + {0x0, 5, 6, 7018}, + {0x2f986, 16, 16, 7019}, + {0x0, 10, 12, 7019}, + {0x0, 7, 8, 7021}, + {0x2f987, 16, 16, 7022}, + {0x0, 5, 6, 7022}, + {0x2f988, 16, 16, 7023}, + {0x0, 3, 13, 7023}, + {0x2f989, 16, 16, 7033}, + {0x2f98a, 16, 16, 7033}, + {0x2f98c, 16, 16, 7033}, + {0x0, 14, 15, 7033}, + {0x2f98d, 16, 16, 7034}, + {0x0, 11, 12, 7034}, + {0x2f98e, 16, 16, 7035}, + {0x0, 1, 14, 7035}, + {0x2f98f, 16, 16, 7048}, + {0x0, 11, 12, 7048}, + {0x2f990, 16, 16, 7049}, + {0x2f991, 16, 16, 7049}, {0x0, 3, 4, 7049}, - {0x0, 0, 1, 7050}, - {0x0, 0, 2, 7051}, - {0x1f1b, 16, 16, 7053}, - {0x1f1d, 16, 16, 7053}, - {0x0, 0, 1, 7053}, - {0x0, 0, 1, 7054}, - {0x0, 3, 4, 7055}, - {0x0, 0, 1, 7056}, - {0x0, 4, 5, 7057}, - {0x22b, 16, 16, 7058}, - {0x0, 8, 9, 7058}, - {0xfa38, 16, 16, 7059}, - {0x0, 7, 8, 7059}, - {0xc7, 16, 16, 7060}, - {0x0, 14, 15, 7060}, - {0x2f936, 16, 16, 7061}, - {0x0, 1, 9, 7061}, - {0xf948, 16, 16, 7069}, - {0x2f9d5, 16, 16, 7069}, - {0x0, 12, 13, 7069}, - {0x2f9a3, 16, 16, 7070}, - {0xf903, 16, 16, 7070}, - {0x2f8ed, 16, 16, 7070}, - {0x0, 8, 9, 7070}, - {0xf9b8, 16, 16, 7071}, - {0x0, 11, 12, 7071}, - {0x2f9da, 16, 16, 7072}, - {0x0, 0, 11, 7072}, - {0x2f9cf, 16, 16, 7083}, - {0x0, 0, 1, 7083}, - {0x0, 0, 1, 7084}, - {0x0, 3, 4, 7085}, - {0x0, 3, 4, 7086}, - {0x0, 8, 9, 7087}, - {0x2249, 16, 16, 7088}, - {0x0, 6, 8, 7088}, - {0x2f84b, 16, 16, 7090}, - {0x2f84d, 16, 16, 7090}, - {0x0, 6, 7, 7090}, - {0x2f821, 16, 16, 7091}, - {0x1ece, 16, 16, 7091}, - {0xd6, 16, 16, 7091}, - {0x22e, 16, 16, 7091}, - {0x14e, 16, 16, 7091}, - {0x14c, 16, 16, 7091}, - {0x0, 13, 14, 7091}, - {0x0, 10, 11, 7092}, - {0x2f97b, 16, 16, 7093}, - {0xd4, 16, 16, 7093}, - {0xd3, 16, 16, 7093}, - {0xd2, 16, 16, 7093}, - {0x1eb3, 16, 16, 7093}, - {0xfa40, 16, 16, 7093}, - {0x1eb5, 16, 16, 7093}, - {0x0, 13, 14, 7093}, - {0x2f854, 16, 16, 7094}, - {0x1eb1, 16, 16, 7094}, - {0x0, 14, 15, 7094}, - {0x2f890, 16, 16, 7095}, - {0x0, 8, 9, 7095}, - {0xfa67, 16, 16, 7096}, - {0x0, 10, 16, 7096}, - {0xdda, 16, 16, 7102}, - {0x0, 8, 9, 7102}, - {0xf9b4, 16, 16, 7103}, - {0xddc, 16, 16, 7103}, - {0xf9a1, 16, 16, 7103}, - {0x0, 0, 1, 7103}, - {0x0, 0, 1, 7104}, - {0x0, 3, 4, 7105}, - {0x0, 4, 5, 7106}, - {0x0, 5, 6, 7107}, - {0x1f8b, 16, 16, 7108}, - {0x0, 3, 4, 7108}, - {0x2f9f5, 16, 16, 7109}, - {0x0, 14, 15, 7109}, - {0x2f9b9, 16, 16, 7110}, - {0x20c, 16, 16, 7110}, - {0x0, 0, 1, 7110}, - {0x0, 0, 1, 7111}, - {0x0, 3, 4, 7112}, - {0x0, 3, 4, 7113}, - {0x0, 8, 9, 7114}, - {0x2284, 16, 16, 7115}, - {0x1d1, 16, 16, 7115}, - {0x150, 16, 16, 7115}, - {0x0, 7, 8, 7115}, - {0xfa5f, 16, 16, 7116}, - {0x0, 1, 13, 7116}, - {0x1e6, 16, 16, 7128}, - {0x0, 6, 7, 7128}, - {0x2f9fd, 16, 16, 7129}, - {0x0, 0, 1, 7129}, - {0x0, 5, 6, 7130}, - {0x2fa12, 16, 16, 7131}, - {0x0, 8, 10, 7131}, - {0x2fa04, 16, 16, 7133}, - {0xfa2c, 16, 16, 7133}, - {0x0, 15, 16, 7133}, - {0xf940, 16, 16, 7134}, - {0x0, 1, 2, 7134}, - {0xfa4b, 16, 16, 7135}, - {0x30d1, 16, 16, 7135}, - {0x0, 2, 11, 7135}, - {0x2f9f4, 16, 16, 7144}, - {0x0, 15, 16, 7144}, - {0xf94e, 16, 16, 7145}, - {0x0, 0, 1, 7145}, - {0x2f8d4, 16, 16, 7146}, - {0x1f00, 16, 16, 7146}, - {0x1f4, 16, 16, 7146}, - {0x11c, 16, 16, 7146}, - {0x1e20, 16, 16, 7146}, - {0x11e, 16, 16, 7146}, - {0x120, 16, 16, 7146}, - {0x0, 3, 4, 7146}, - {0x2f9f3, 16, 16, 7147}, - {0x0, 9, 10, 7147}, - {0xf9fb, 16, 16, 7148}, - {0x1fef, 16, 16, 7148}, - {0xf9ab, 16, 16, 7148}, - {0x0, 3, 4, 7148}, - {0xf94c, 16, 16, 7149}, - {0x0, 0, 1, 7149}, - {0x0, 0, 1, 7150}, - {0x0, 3, 4, 7151}, - {0x0, 4, 5, 7152}, - {0x0, 5, 6, 7153}, - {0x1f96, 16, 16, 7154}, - {0x0, 0, 1, 7154}, - {0x2f96a, 16, 16, 7155}, - {0x1f72, 16, 16, 7155}, - {0x0, 7, 12, 7155}, - {0x2f90c, 16, 16, 7160}, - {0x0, 0, 11, 7160}, - {0x2f9d1, 16, 16, 7171}, - {0x0, 0, 1, 7171}, - {0x0, 0, 1, 7172}, - {0x0, 3, 4, 7173}, - {0x0, 0, 1, 7174}, - {0x0, 1, 2, 7175}, - {0x40c, 16, 16, 7176}, - {0x0, 2, 12, 7176}, - {0x2f89a, 16, 16, 7186}, - {0x0, 7, 8, 7186}, - {0x123, 16, 16, 7187}, - {0x0, 5, 7, 7187}, - {0xf974, 16, 16, 7189}, - {0x2f996, 16, 16, 7189}, - {0x0, 3, 4, 7189}, - {0x1e93, 16, 16, 7190}, - {0x0, 2, 3, 7190}, - {0x1fe7, 16, 16, 7191}, - {0x0, 2, 3, 7191}, - {0x2f9fc, 16, 16, 7192}, - {0x2f90b, 16, 16, 7192}, - {0xf95a, 16, 16, 7192}, - {0x0, 3, 5, 7192}, - {0xfa02, 16, 16, 7194}, - {0x2f8b6, 16, 16, 7194}, - {0x0, 1, 2, 7194}, - {0x1e48, 16, 16, 7195}, - {0x4e4, 16, 16, 7195}, - {0x4e2, 16, 16, 7195}, - {0x0, 0, 1, 7195}, - {0x0, 0, 1, 7196}, - {0x0, 3, 4, 7197}, - {0x0, 3, 4, 7198}, - {0x0, 8, 9, 7199}, - {0x2278, 16, 16, 7200}, - {0x419, 16, 16, 7200}, - {0x0, 1, 2, 7200}, - {0x2f9c0, 16, 16, 7201}, - {0x2f899, 16, 16, 7201}, - {0x1e72, 16, 16, 7201}, - {0x0, 4, 5, 7201}, - {0xf98e, 16, 16, 7202}, - {0x0, 5, 6, 7202}, - {0x2f92b, 16, 16, 7203}, - {0x0, 0, 1, 7203}, - {0x2f9fa, 16, 16, 7204}, - {0x0, 3, 14, 7204}, - {0x1e0d, 16, 16, 7215}, - {0x0, 6, 7, 7215}, - {0x2f9f2, 16, 16, 7216}, - {0x1e11, 16, 16, 7216}, - {0x0, 14, 15, 7216}, - {0x2f851, 16, 16, 7217}, - {0x0, 6, 7, 7217}, - {0x2f9f9, 16, 16, 7218}, - {0x0, 2, 3, 7218}, - {0xf9f9, 16, 16, 7219}, - {0x0, 14, 15, 7219}, - {0xf9a5, 16, 16, 7220}, - {0x10f, 16, 16, 7220}, - {0x0, 2, 6, 7220}, - {0x1f0f, 16, 16, 7224}, - {0x1f89, 16, 16, 7224}, - {0x0, 15, 16, 7224}, - {0x0, 0, 1, 7225}, - {0x0, 0, 1, 7226}, - {0x0, 3, 4, 7227}, - {0x0, 0, 1, 7228}, - {0x0, 7, 8, 7229}, - {0x1e9b, 16, 16, 7230}, - {0x1e13, 16, 16, 7230}, - {0x0, 0, 3, 7230}, - {0x2f84a, 16, 16, 7233}, - {0xfa0d, 16, 16, 7233}, - {0x0, 1, 2, 7233}, - {0x2fa14, 16, 16, 7234}, - {0x0, 12, 13, 7234}, - {0x2f9ad, 16, 16, 7235}, - {0x0, 10, 12, 7235}, - {0xf9ff, 16, 16, 7237}, - {0x2f820, 16, 16, 7237}, - {0x0, 1, 2, 7237}, - {0x2f84e, 16, 16, 7238}, - {0x1fe8, 16, 16, 7238}, - {0x1e58, 16, 16, 7238}, - {0x1fe9, 16, 16, 7238}, - {0x1fea, 16, 16, 7238}, - {0x0, 13, 14, 7238}, - {0x2f8f7, 16, 16, 7239}, - {0x0, 0, 1, 7239}, - {0x0, 0, 1, 7240}, - {0x0, 3, 4, 7241}, - {0x0, 4, 5, 7242}, - {0x0, 5, 6, 7243}, - {0x1f97, 16, 16, 7244}, - {0x3ab, 16, 16, 7244}, - {0x0, 3, 4, 7244}, - {0xf9f1, 16, 16, 7245}, - {0x210, 16, 16, 7245}, - {0x2f9a2, 16, 16, 7245}, - {0x158, 16, 16, 7245}, - {0x0, 5, 6, 7245}, - {0x2f9c8, 16, 16, 7246}, - {0x0, 0, 2, 7246}, - {0x1fc8, 16, 16, 7248}, - {0x388, 16, 16, 7248}, - {0x0, 12, 13, 7248}, - {0xf9cb, 16, 16, 7249}, - {0x0, 1, 2, 7249}, - {0xfa62, 16, 16, 7250}, - {0x0, 9, 10, 7250}, - {0xf9a9, 16, 16, 7251}, - {0x0, 14, 15, 7251}, - {0xf9b6, 16, 16, 7252}, - {0x0, 5, 6, 7252}, - {0xf9e3, 16, 16, 7253}, - {0x0, 11, 12, 7253}, - {0xf9ce, 16, 16, 7254}, - {0x0, 3, 4, 7254}, - {0x1ef5, 16, 16, 7255}, + {0x2f992, 16, 16, 7050}, + {0x0, 1, 14, 7050}, + {0x2f993, 16, 16, 7063}, + {0x2f994, 16, 16, 7063}, + {0x2f995, 16, 16, 7063}, + {0x2f996, 16, 16, 7063}, + {0x0, 3, 4, 7063}, + {0x0, 12, 13, 7064}, + {0x2f997, 16, 16, 7065}, + {0x0, 13, 14, 7065}, + {0x2f999, 16, 16, 7066}, + {0x0, 3, 4, 7066}, + {0x2f99a, 16, 16, 7067}, + {0x0, 13, 14, 7067}, + {0x2f99b, 16, 16, 7068}, + {0x0, 3, 4, 7068}, + {0x2f99c, 16, 16, 7069}, + {0x0, 13, 14, 7069}, + {0x2f99d, 16, 16, 7070}, + {0x0, 7, 8, 7070}, + {0x2f99e, 16, 16, 7071}, + {0x0, 3, 4, 7071}, + {0x2f9a0, 16, 16, 7072}, + {0x2f9a1, 16, 16, 7072}, + {0x2f9a2, 16, 16, 7072}, + {0x0, 12, 13, 7072}, + {0x2f9a3, 16, 16, 7073}, + {0x0, 3, 14, 7073}, + {0x0, 6, 7, 7084}, + {0x2f9a4, 16, 16, 7085}, + {0x0, 6, 7, 7085}, + {0x0, 11, 12, 7086}, + {0x2f9a5, 16, 16, 7087}, + {0x0, 5, 6, 7087}, + {0x2f9a6, 16, 16, 7088}, + {0x0, 2, 16, 7088}, + {0x0, 11, 12, 7102}, + {0x2f9a7, 16, 16, 7103}, + {0x2f9a8, 16, 16, 7103}, + {0x2f9a9, 16, 16, 7103}, + {0x0, 6, 7, 7103}, + {0x2f9aa, 16, 16, 7104}, + {0x0, 0, 16, 7104}, + {0x0, 12, 13, 7120}, + {0x0, 10, 11, 7121}, + {0x2f9ab, 16, 16, 7122}, + {0x0, 4, 5, 7122}, + {0x2f9ac, 16, 16, 7123}, + {0x0, 2, 12, 7123}, + {0x0, 12, 13, 7133}, + {0x2f9ad, 16, 16, 7134}, + {0x0, 13, 14, 7134}, + {0x2f9ae, 16, 16, 7135}, + {0x0, 1, 12, 7135}, + {0x2f9af, 16, 16, 7146}, + {0x0, 1, 2, 7146}, + {0x2f9b0, 16, 16, 7147}, + {0x0, 13, 14, 7147}, + {0x0, 2, 3, 7148}, + {0x2f9b1, 16, 16, 7149}, + {0x2f9b2, 16, 16, 7149}, + {0x2f9b3, 16, 16, 7149}, + {0x0, 7, 10, 7149}, + {0x2f9b5, 16, 16, 7152}, + {0x2f9b6, 16, 16, 7152}, + {0x0, 9, 10, 7152}, + {0x2f9b7, 16, 16, 7153}, + {0x0, 8, 9, 7153}, + {0x2f9b8, 16, 16, 7154}, + {0x0, 14, 15, 7154}, + {0x2f9b9, 16, 16, 7155}, + {0x0, 2, 3, 7155}, + {0x2f9ba, 16, 16, 7156}, + {0x0, 9, 10, 7156}, + {0x2f9bb, 16, 16, 7157}, + {0x0, 8, 9, 7157}, + {0x2f9bc, 16, 16, 7158}, + {0x0, 11, 12, 7158}, + {0x2f9bd, 16, 16, 7159}, + {0x0, 6, 7, 7159}, + {0x2f9be, 16, 16, 7160}, + {0x0, 7, 8, 7160}, + {0x2f9bf, 16, 16, 7161}, + {0x0, 1, 2, 7161}, + {0x2f9c0, 16, 16, 7162}, + {0x0, 1, 2, 7162}, + {0x2f9c1, 16, 16, 7163}, + {0x0, 9, 10, 7163}, + {0x2f9c2, 16, 16, 7164}, + {0x0, 0, 4, 7164}, + {0x2f9c3, 16, 16, 7168}, + {0x2f9c4, 16, 16, 7168}, + {0x0, 6, 7, 7168}, + {0x0, 7, 8, 7169}, + {0x2f9c5, 16, 16, 7170}, + {0x0, 7, 15, 7170}, + {0x2f9c6, 16, 16, 7178}, + {0x2f9c7, 16, 16, 7178}, + {0x0, 3, 13, 7178}, + {0x0, 5, 6, 7188}, + {0x2f9c8, 16, 16, 7189}, + {0x2f9c9, 16, 16, 7189}, + {0x2f9ca, 16, 16, 7189}, + {0x0, 10, 11, 7189}, + {0x0, 14, 15, 7190}, + {0x2f9cb, 16, 16, 7191}, + {0x0, 6, 7, 7191}, + {0x0, 6, 7, 7192}, + {0x2f9cc, 16, 16, 7193}, + {0x0, 14, 15, 7193}, + {0x2f9cd, 16, 16, 7194}, + {0x0, 7, 8, 7194}, + {0x2f9ce, 16, 16, 7195}, + {0x2f9cf, 16, 16, 7195}, + {0x0, 13, 14, 7195}, + {0x2f9d0, 16, 16, 7196}, + {0x2f9d1, 16, 16, 7196}, + {0x0, 5, 6, 7196}, + {0x2f9d2, 16, 16, 7197}, + {0x0, 10, 11, 7197}, + {0x0, 8, 9, 7198}, + {0x2f9d3, 16, 16, 7199}, + {0x0, 11, 12, 7199}, + {0x2f9d4, 16, 16, 7200}, + {0x2f9d5, 16, 16, 7200}, + {0x0, 11, 12, 7200}, + {0x2f9d6, 16, 16, 7201}, + {0x0, 7, 8, 7201}, + {0x2f9d7, 16, 16, 7202}, + {0x0, 2, 3, 7202}, + {0x0, 15, 16, 7203}, + {0x2f9d8, 16, 16, 7204}, + {0x0, 0, 14, 7204}, + {0x0, 4, 5, 7218}, + {0x2f9d9, 16, 16, 7219}, + {0x0, 11, 12, 7219}, + {0x2f9da, 16, 16, 7220}, + {0x0, 12, 13, 7220}, + {0x2f9db, 16, 16, 7221}, + {0x0, 0, 1, 7221}, + {0x2f9dc, 16, 16, 7222}, + {0x0, 14, 15, 7222}, + {0x2f9dd, 16, 16, 7223}, + {0x0, 4, 5, 7223}, + {0x2f9de, 16, 16, 7224}, + {0x2f9df, 16, 16, 7224}, + {0x0, 5, 14, 7224}, + {0x0, 13, 15, 7233}, + {0x0, 2, 3, 7235}, + {0x2f9e0, 16, 16, 7236}, + {0x0, 13, 14, 7236}, + {0x2f9e1, 16, 16, 7237}, + {0x0, 4, 5, 7237}, + {0x2f9e2, 16, 16, 7238}, + {0x2f9e3, 16, 16, 7238}, + {0x0, 1, 12, 7238}, + {0x2f9e4, 16, 16, 7249}, + {0x0, 2, 3, 7249}, + {0x0, 14, 15, 7250}, + {0x2f9e5, 16, 16, 7251}, + {0x2f9e6, 16, 16, 7251}, + {0x2f9e7, 16, 16, 7251}, + {0x0, 7, 9, 7251}, + {0x2f9e8, 16, 16, 7253}, + {0x2f9e9, 16, 16, 7253}, + {0x0, 12, 13, 7253}, + {0x2f9ea, 16, 16, 7254}, + {0x0, 9, 10, 7254}, + {0x2f9eb, 16, 16, 7255}, {0x0, 1, 2, 7255}, - {0x1e49, 16, 16, 7256}, - {0x0, 0, 1, 7256}, - {0x0, 0, 1, 7257}, - {0x0, 3, 4, 7258}, - {0x0, 0, 1, 7259}, - {0x0, 0, 2, 7260}, - {0x1f1c, 16, 16, 7262}, - {0x1f1a, 16, 16, 7262}, - {0x0, 3, 4, 7262}, - {0xf99a, 16, 16, 7263}, - {0xe4, 16, 16, 7263}, - {0x1ea3, 16, 16, 7263}, - {0x0, 0, 1, 7263}, - {0x0, 3, 4, 7264}, - {0x0, 0, 1, 7265}, - {0x0, 9, 10, 7266}, - {0x0, 9, 10, 7267}, - {0x3054, 16, 16, 7268}, - {0x0, 1, 3, 7268}, - {0x2f856, 16, 16, 7270}, - {0x2f857, 16, 16, 7270}, - {0xe0, 16, 16, 7270}, - {0xe1, 16, 16, 7270}, - {0xe2, 16, 16, 7270}, - {0xe3, 16, 16, 7270}, - {0x0, 9, 10, 7270}, - {0x2f82c, 16, 16, 7271}, - {0x103, 16, 16, 7271}, - {0x227, 16, 16, 7271}, - {0x0, 0, 1, 7271}, - {0x0, 0, 1, 7272}, - {0x0, 3, 4, 7273}, - {0x0, 0, 1, 7274}, - {0x0, 0, 2, 7275}, - {0x1f13, 16, 16, 7277}, - {0x1f15, 16, 16, 7277}, - {0x0, 1, 2, 7277}, - {0x2f930, 16, 16, 7278}, - {0x0, 0, 2, 7278}, - {0x1f62, 16, 16, 7280}, - {0x1f64, 16, 16, 7280}, - {0x0, 2, 3, 7280}, - {0xf938, 16, 16, 7281}, - {0x0, 12, 13, 7281}, - {0xf93b, 16, 16, 7282}, - {0x0, 6, 7, 7282}, - {0xf935, 16, 16, 7283}, - {0x0, 0, 1, 7283}, + {0x0, 5, 6, 7256}, + {0x2f9ec, 16, 16, 7257}, + {0x0, 15, 16, 7257}, + {0x0, 10, 11, 7258}, + {0x2f9ed, 16, 16, 7259}, + {0x0, 11, 12, 7259}, + {0x2f9ee, 16, 16, 7260}, + {0x0, 9, 15, 7260}, + {0x0, 5, 6, 7266}, + {0x2f9ef, 16, 16, 7267}, + {0x0, 7, 8, 7267}, + {0x2f9f0, 16, 16, 7268}, + {0x0, 7, 8, 7268}, + {0x0, 7, 8, 7269}, + {0x2f9f1, 16, 16, 7270}, + {0x0, 6, 7, 7270}, + {0x2f9f2, 16, 16, 7271}, + {0x0, 3, 4, 7271}, + {0x2f9f3, 16, 16, 7272}, + {0x2f9f4, 16, 16, 7272}, + {0x0, 3, 4, 7272}, + {0x2f9f5, 16, 16, 7273}, + {0x0, 5, 6, 7273}, + {0x2f9f6, 16, 16, 7274}, + {0x0, 1, 2, 7274}, + {0x0, 10, 11, 7275}, + {0x2f9f7, 16, 16, 7276}, + {0x0, 6, 12, 7276}, + {0x0, 14, 15, 7282}, + {0x2f9f8, 16, 16, 7283}, + {0x0, 6, 7, 7283}, + {0x2f9f9, 16, 16, 7284}, {0x0, 0, 1, 7284}, - {0x0, 3, 4, 7285}, - {0x0, 4, 5, 7286}, - {0x0, 5, 6, 7287}, - {0x1f8c, 16, 16, 7288}, - {0x0, 0, 1, 7288}, - {0x0, 0, 1, 7289}, - {0x0, 3, 4, 7290}, - {0x0, 0, 1, 7291}, - {0x0, 2, 3, 7292}, - {0x1ed9, 16, 16, 7293}, - {0xe5, 16, 16, 7293}, - {0x1ce, 16, 16, 7293}, - {0x0, 11, 12, 7293}, - {0x2f9a7, 16, 16, 7294}, - {0x201, 16, 16, 7294}, - {0x0, 11, 12, 7294}, - {0x2f990, 16, 16, 7295}, - {0x0, 6, 7, 7295}, - {0x2f85c, 16, 16, 7296}, - {0x0, 0, 1, 7296}, - {0x0, 0, 1, 7297}, - {0x0, 3, 4, 7298}, - {0x0, 4, 5, 7299}, - {0x0, 5, 6, 7300}, - {0x1fa3, 16, 16, 7301}, + {0x2f9fa, 16, 16, 7285}, + {0x0, 0, 10, 7285}, + {0x0, 10, 11, 7295}, + {0x2f9fb, 16, 16, 7296}, + {0x0, 2, 3, 7296}, + {0x2f9fc, 16, 16, 7297}, + {0x0, 6, 7, 7297}, + {0x2f9fd, 16, 16, 7298}, + {0x0, 11, 12, 7298}, + {0x2f9ff, 16, 16, 7299}, + {0x0, 9, 10, 7299}, + {0x2fa00, 16, 16, 7300}, + {0x0, 11, 12, 7300}, {0x0, 6, 7, 7301}, - {0x2f9aa, 16, 16, 7302}, - {0x0, 6, 7, 7302}, - {0xf9b0, 16, 16, 7303}, - {0x0, 1, 3, 7303}, - {0x2f881, 16, 16, 7305}, - {0x2f882, 16, 16, 7305}, - {0x0, 2, 3, 7305}, - {0xf9c1, 16, 16, 7306}, - {0x0, 2, 7, 7306}, - {0xfa03, 16, 16, 7311}, - {0x0, 10, 11, 7311}, - {0x2f932, 16, 16, 7312}, - {0x2f966, 16, 16, 7312}, - {0x0, 10, 11, 7312}, - {0xf9ec, 16, 16, 7313}, - {0x1e50, 16, 16, 7313}, - {0x0, 6, 7, 7313}, - {0xfa61, 16, 16, 7314}, - {0x0, 1, 13, 7314}, - {0x109, 16, 16, 7326}, - {0x107, 16, 16, 7326}, - {0x10b, 16, 16, 7326}, - {0x0, 1, 2, 7326}, - {0x0, 0, 1, 7327}, - {0x0, 0, 1, 7328}, - {0x0, 6, 7, 7329}, - {0x0, 5, 6, 7330}, - {0x0, 4, 5, 7331}, - {0x6c2, 16, 16, 7332}, - {0x0, 2, 3, 7332}, - {0xf9bf, 16, 16, 7333}, - {0x0, 0, 1, 7333}, - {0x0, 0, 1, 7334}, - {0x2fa1d, 16, 16, 7335}, - {0x0, 3, 4, 7335}, - {0x1ef4, 16, 16, 7336}, - {0x0, 14, 15, 7336}, - {0x2f9dd, 16, 16, 7337}, - {0x0, 0, 4, 7337}, - {0x2f9c4, 16, 16, 7341}, - {0x0, 0, 1, 7341}, - {0x0, 0, 1, 7342}, - {0x0, 3, 4, 7343}, - {0x0, 4, 5, 7344}, - {0x0, 5, 6, 7345}, - {0x1f87, 16, 16, 7346}, - {0x2f9c3, 16, 16, 7346}, - {0x0, 11, 12, 7346}, - {0xf964, 16, 16, 7347}, - {0x0, 12, 15, 7347}, - {0xfa15, 16, 16, 7350}, - {0xf954, 16, 16, 7350}, - {0x0, 2, 3, 7350}, - {0xf946, 16, 16, 7351}, - {0x0, 0, 1, 7351}, - {0x0, 0, 1, 7352}, - {0x0, 3, 4, 7353}, - {0x0, 3, 4, 7354}, - {0x0, 8, 9, 7355}, - {0x2226, 16, 16, 7356}, - {0x1f79, 16, 16, 7356}, - {0x0, 0, 1, 7356}, - {0x0, 0, 1, 7357}, - {0x0, 3, 4, 7358}, - {0x0, 3, 4, 7359}, - {0x0, 8, 9, 7360}, - {0x21ce, 16, 16, 7361}, - {0x1d4, 16, 16, 7361}, - {0x1f7b, 16, 16, 7361}, - {0x10d, 16, 16, 7361}, - {0x0, 2, 10, 7361}, - {0x2f96f, 16, 16, 7369}, - {0xfa58, 16, 16, 7369}, + {0x2fa01, 16, 16, 7302}, + {0x2fa02, 16, 16, 7302}, + {0x0, 3, 13, 7302}, + {0x0, 3, 4, 7312}, + {0x2fa03, 16, 16, 7313}, + {0x2fa04, 16, 16, 7313}, + {0x0, 7, 8, 7313}, + {0x2fa05, 16, 16, 7314}, + {0x0, 2, 3, 7314}, + {0x2fa06, 16, 16, 7315}, + {0x2fa07, 16, 16, 7315}, + {0x0, 14, 15, 7315}, + {0x2fa08, 16, 16, 7316}, + {0x0, 3, 4, 7316}, + {0x0, 0, 1, 7317}, + {0x2fa09, 16, 16, 7318}, + {0x0, 2, 3, 7318}, + {0x2fa0a, 16, 16, 7319}, + {0x0, 0, 1, 7319}, + {0x2fa0b, 16, 16, 7320}, + {0x0, 13, 14, 7320}, + {0x2fa0c, 16, 16, 7321}, + {0x0, 12, 16, 7321}, + {0x0, 14, 15, 7325}, + {0x2fa0d, 16, 16, 7326}, + {0x0, 13, 14, 7326}, + {0x2fa0e, 16, 16, 7327}, + {0x0, 7, 8, 7327}, + {0x2fa0f, 16, 16, 7328}, + {0x0, 12, 13, 7328}, + {0x0, 14, 15, 7329}, + {0x2fa10, 16, 16, 7330}, + {0x0, 8, 9, 7330}, + {0x2fa11, 16, 16, 7331}, + {0x0, 0, 1, 7331}, + {0x0, 5, 6, 7332}, + {0x2fa12, 16, 16, 7333}, + {0x0, 0, 10, 7333}, + {0x0, 14, 15, 7343}, + {0x2fa13, 16, 16, 7344}, + {0x0, 1, 2, 7344}, + {0x2fa14, 16, 16, 7345}, + {0x0, 11, 12, 7345}, + {0x2fa15, 16, 16, 7346}, + {0x0, 5, 6, 7346}, + {0x0, 6, 7, 7347}, + {0x2fa16, 16, 16, 7348}, + {0x0, 9, 15, 7348}, + {0x2fa17, 16, 16, 7354}, + {0x2fa18, 16, 16, 7354}, + {0x0, 5, 16, 7354}, + {0x2fa19, 16, 16, 7365}, + {0x2fa1a, 16, 16, 7365}, + {0x0, 6, 7, 7365}, + {0x2fa1b, 16, 16, 7366}, + {0x0, 11, 12, 7366}, + {0x2fa1c, 16, 16, 7367}, + {0x0, 0, 1, 7367}, + {0x0, 0, 1, 7368}, + {0x2fa1d, 16, 16, 7369}, }; const unsigned short _wind_canon_next_table[] = { 1, 0, - 46, - 29, - 15, - 73, - 64, - 11, - 6, - 24, - 38, + 3716, 2, - 42, - 722, - 2119, + 1147, + 2397, + 2680, + 3010, + 3014, + 2998, + 3036, + 2994, + 3018, 3, - 140, - 1467, - 221, - 325, - 285, - 682, - 360, - 729, - 1610, - 635, - 106, - 2045, - 510, - 2830, + 467, + 431, + 608, + 745, + 0, + 967, 0, 0, + 1010, 0, + 1040, + 1073, + 1104, 0, - 0, - 748, - 1101, - 4614, - 273, - 0, + 1136, + 622, 4, + 56, + 72, + 124, 0, 0, - 4440, + 624, + 638, + 417, + 397, + 424, + 404, 5, - 0, - 10, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 224, - 1388, - 270, - 249, - 1440, - 550, - 3741, - 2040, - 7, - 419, - 54, - 109, - 883, - 1230, - 275, - 336, - 4348, - 0, - 0, - 4568, - 3216, - 2891, - 0, - 0, - 0, - 0, - 1305, - 0, - 0, - 8, - 4480, - 937, - 112, - 0, - 0, - 0, - 0, - 0, - 0, - 9, - 1532, - 2106, - 1144, - 236, - 1215, - 1449, - 1624, - 0, - 0, - 12, - 194, - 1718, - 1680, - 3611, - 217, - 398, - 13, - 0, - 0, - 0, - 0, - 4477, - 14, - 2316, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 328, + 1158, 16, - 553, - 3511, + 159, + 22, + 1237, + 183, + 203, + 31, + 226, + 238, + 250, + 1309, + 40, + 46, + 6, + 7, + 8, + 9, + 528, + 145, + 10, + 11, + 12, + 13, + 141, + 0, + 143, + 564, + 14, + 1544, + 15, + 0, + 389, + 0, + 0, + 526, 17, - 646, - 732, - 426, - 532, - 57, - 0, - 0, - 0, - 278, - 1790, - 0, - 0, - 658, - 695, - 2327, - 3451, - 3868, 18, - 666, - 4417, - 4518, - 391, - 1640, - 1458, - 567, - 340, - 2209, - 2458, - 1747, 19, + 149, + 0, 20, 21, - 22, 23, - 1307, - 304, - 1254, - 227, - 750, - 51, - 1120, - 1576, - 467, - 1270, - 2751, + 24, 25, - 1647, - 183, - 1785, - 363, - 1315, - 0, - 1982, - 0, - 0, - 2474, - 0, - 1656, - 0, - 4178, - 4486, 26, - 28, + 534, + 177, + 1221, 27, - 132, - 82, - 346, - 186, - 98, + 28, + 29, + 1602, + 171, 0, + 173, + 175, 30, + 1600, 0, 0, - 1028, - 0, - 1050, - 739, - 113, - 0, - 2135, - 1415, - 0, - 4020, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4647, - 31, - 3197, + 181, 0, 0, + 532, 32, 33, 34, 35, + 540, + 221, + 1263, 36, 37, - 354, - 809, - 436, - 1736, + 38, + 215, + 217, + 0, + 219, + 225, 39, - 547, - 708, - 1945, - 850, - 367, - 594, - 1651, - 388, - 416, - 1251, - 705, - 4230, - 0, - 1894, - 0, - 886, - 424, - 40, - 4586, - 2250, - 1941, + 1635, 0, 0, - 4635, + 391, + 0, + 0, + 538, 41, - 1224, - 1391, - 813, - 1807, - 3757, - 308, - 442, + 42, 43, - 439, - 121, - 4198, - 1596, - 1298, - 529, - 1244, - 1948, - 4367, - 4591, - 2500, - 2808, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4473, 44, + 0, + 270, + 1331, + 498, + 268, + 0, 45, - 239, - 1073, - 1218, - 543, - 506, - 124, + 0, + 0, + 0, + 1327, + 0, + 0, + 0, + 0, + 274, 47, - 128, - 772, - 725, - 291, - 3715, - 357, - 3693, - 4339, - 759, - 0, - 2181, - 0, - 0, - 0, - 3076, 48, - 2065, - 0, - 3213, 49, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1375, 50, - 1333, - 0, - 1993, - 1665, - 0, + 381, + 463, + 51, 52, - 0, - 0, - 1352, - 0, - 3457, 53, - 1249, + 54, + 276, + 0, + 278, + 592, 55, + 1641, + 0, + 280, + 393, 0, 0, + 544, + 1356, 0, - 1627, - 0, - 0, - 0, - 0, - 1920, - 56, - 2143, - 0, - 0, - 0, + 282, + 300, + 320, + 57, + 1476, + 350, + 1504, + 66, + 365, 58, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2970, 59, 60, 61, + 385, + 346, + 1446, 62, 63, + 64, + 336, + 338, + 0, + 340, + 0, 65, + 1699, + 342, + 344, + 395, 0, 0, - 0, - 1683, - 403, - 1593, - 1555, - 862, - 2420, - 151, - 259, - 1010, - 2377, - 2719, - 385, - 2542, - 0, - 0, - 0, - 826, - 894, - 66, - 610, - 0, - 2676, - 513, - 90, - 452, - 1152, - 1560, - 470, - 3342, - 0, - 0, + 554, 67, - 0, - 4191, - 0, - 4103, - 0, - 0, - 0, - 0, - 0, - 0, - 1443, 68, 69, 70, + 0, + 1725, + 1723, 71, - 72, - 539, - 985, + 362, + 1731, + 606, + 0, + 0, + 1518, + 364, + 1729, + 2369, + 73, + 1164, + 84, + 165, + 90, + 1243, + 189, + 209, + 99, + 232, + 244, + 256, + 1315, + 108, + 114, 74, - 1870, - 0, - 675, - 1542, 75, - 0, - 1085, - 210, - 2259, - 2582, - 498, - 295, 76, - 0, - 3605, - 0, - 0, - 4323, - 0, - 0, - 0, - 0, - 1741, 77, + 530, + 147, 78, 79, 80, 81, - 2790, - 587, + 142, 0, - 0, - 978, - 1368, + 144, + 565, + 82, + 1545, 83, - 4492, + 0, + 390, 0, 0, - 161, - 2601, - 0, - 0, - 628, - 4245, - 2052, - 0, - 0, - 0, - 0, - 0, - 0, - 2488, - 2098, - 1037, - 84, + 527, 85, 86, 87, + 151, + 0, 88, 89, - 372, - 0, - 154, - 0, - 3528, - 0, - 1493, - 0, 91, - 0, - 1275, - 0, - 4271, - 0, - 2079, 92, 93, 94, + 536, + 179, + 1223, 95, 96, - 3288, - 1345, - 1907, - 99, - 1176, - 2738, + 97, + 1603, + 172, 0, - 3255, + 174, + 176, + 98, + 1601, 0, 0, + 182, 0, 0, - 0, - 1615, - 2341, - 764, - 0, - 0, - 1103, - 0, - 1711, - 2982, + 533, 100, - 143, - 0, - 4150, - 0, - 0, - 0, - 3444, 101, 102, 103, + 542, + 223, + 1265, 104, 105, - 527, - 881, - 0, - 0, - 0, + 106, + 216, + 218, 0, + 220, 0, 107, + 1636, 0, 0, - 0, - 4111, - 4319, - 0, - 2519, - 2853, - 108, - 1939, + 392, 0, 0, + 539, + 109, 110, - 0, - 0, - 0, - 0, - 3917, - 0, - 0, - 0, - 2192, - 1883, - 1470, - 1202, 111, - 318, + 112, + 0, + 272, + 1333, + 499, + 269, + 0, + 113, + 0, + 0, + 0, + 1328, 0, 0, 0, 0, - 0, - 0, - 0, - 0, - 114, - 2770, - 0, - 0, + 275, 115, 116, 117, 118, + 383, + 465, 119, 120, - 4389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2672, - 0, - 2002, - 0, - 0, + 121, 122, + 277, + 0, + 279, + 593, 123, + 1642, + 0, + 281, + 394, 0, 0, + 545, + 1362, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 179, - 925, + 288, + 306, + 326, 125, - 0, - 0, - 1310, - 0, - 1686, - 0, - 0, - 1571, - 3387, - 4056, - 1539, - 0, - 0, - 3187, + 1482, + 356, + 1510, + 134, + 371, 126, - 0, - 954, 127, - 1047, - 0, - 0, - 1771, - 0, - 0, - 3590, - 0, - 3849, - 3246, - 0, - 0, + 128, 129, - 0, - 0, - 433, + 387, + 348, + 1448, 130, 131, - 3069, + 132, + 337, + 339, + 0, + 341, + 0, 133, - 197, - 168, - 1797, + 1700, + 343, + 345, + 396, 0, 0, - 579, - 1377, - 445, - 2552, - 460, - 2528, - 1957, - 1845, - 134, - 2847, - 901, - 1326, - 3859, - 3234, - 1193, - 993, - 753, - 3534, - 520, - 2171, - 2023, + 555, 135, 136, 137, 138, 0, - 4306, - 181, - 182, - 0, - 0, - 0, - 0, - 180, - 0, - 0, - 0, - 0, + 1727, + 1724, 139, - 842, - 1889, - 1537, - 0, - 2198, - 3252, + 363, + 1732, + 607, 0, 0, + 1519, + 140, + 1730, + 1534, + 1542, + 0, + 1156, + 0, 0, - 2711, - 3762, - 3357, - 4313, - 4259, - 141, - 142, - 144, - 145, 146, - 147, - 160, + 1543, 0, + 1157, 0, 0, - 150, - 0, - 149, - 0, 148, - 3760, - 0, - 0, - 0, - 152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2861, + 150, 153, + 0, + 0, + 0, + 0, 155, - 156, + 0, + 0, + 0, + 0, 157, + 152, + 154, + 0, + 0, + 0, + 0, + 156, + 0, + 0, + 0, + 0, 158, - 159, - 1382, - 1759, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 160, + 161, 162, 163, + 0, + 1192, + 1196, + 1190, + 0, + 0, + 0, + 0, 164, - 165, 166, - 0, - 958, - 799, 167, - 0, - 175, - 0, - 0, - 0, - 0, - 0, - 177, - 4413, - 312, - 479, - 792, - 561, + 168, 169, - 3769, - 3920, - 1487, - 230, - 1065, - 2427, - 3365, - 573, - 1452, - 204, + 0, + 1194, + 1198, + 1191, + 0, + 0, + 0, + 0, 170, - 171, - 172, - 962, - 1366, - 173, - 2855, - 174, + 1598, 0, 0, 0, - 176, + 566, 178, 0, 0, 0, 0, - 220, - 3165, - 0, - 2515, - 4072, - 0, - 3470, - 2736, - 685, + 1219, + 1599, 0, 0, 0, - 4065, - 956, - 1426, + 567, + 180, + 0, + 0, + 0, + 0, + 1220, 184, 185, - 1529, - 1199, - 0, - 0, - 0, - 0, - 0, - 0, - 1294, - 252, + 186, 187, - 406, - 263, - 802, - 3985, - 0, - 0, 0, + 199, + 496, 188, 0, + 1249, + 0, + 195, + 197, 0, 0, - 2521, 0, 0, - 4211, - 4207, - 1549, - 4210, - 189, + 457, 190, 191, - 3706, 192, 193, - 195, - 4482, 0, - 0, - 0, - 4447, - 196, - 3144, - 0, - 198, - 1689, - 1971, - 3023, - 3687, - 844, - 1257, - 816, - 2650, - 199, - 200, 201, - 1569, + 497, + 194, + 0, + 1250, + 0, + 196, + 198, + 0, + 0, + 0, + 0, + 458, + 200, 202, - 623, - 1006, - 203, + 204, 205, 206, 207, - 2194, + 0, + 1253, 208, - 2835, - 209, 0, 0, 0, 0, + 1251, + 1257, 0, 0, 0, - 0, - 0, - 1869, - 2545, - 2111, - 0, - 0, - 4458, - 3207, - 0, - 0, - 3111, - 491, - 243, + 562, + 210, 211, 212, 213, + 0, + 1255, + 1530, 214, - 215, - 216, - 218, - 0, - 0, - 3956, - 4074, - 0, - 0, - 0, - 2374, - 0, - 2864, - 0, - 2217, - 0, - 4093, - 219, - 4624, 0, 0, 0, 0, - 3181, + 1252, + 1258, 0, 0, 0, + 563, + 1637, 0, 0, - 1313, 0, 0, 222, - 223, - 225, - 0, - 960, + 1638, 0, 0, 0, 0, - 3964, - 0, - 2070, - 0, - 0, - 3710, - 3722, - 1821, - 226, + 224, + 227, 228, - 0, - 2337, - 2010, - 1739, - 3930, - 0, - 2844, - 0, - 2205, - 0, - 4089, 229, + 230, 231, - 232, 233, 234, - 2125, - 1147, - 1504, - 1852, - 1853, - 1854, - 1855, - 1856, - 0, - 1857, - 0, - 1858, - 1859, - 0, - 0, 235, - 0, - 0, - 1893, - 2151, - 0, - 0, - 2478, - 0, + 236, 237, 0, 0, @@ -16644,437 +16200,378 @@ const unsigned short _wind_canon_next_table[] = { 0, 0, 0, - 3627, - 238, - 3084, - 0, 0, 0, + 495, + 239, 240, - 3098, - 0, - 3417, - 0, - 2733, - 288, - 4042, 241, + 459, 0, - 3183, 242, - 244, + 1283, + 1281, + 0, + 0, + 0, + 243, 245, 246, 247, + 461, + 0, 248, - 1464, - 1829, - 0, - 2409, - 4575, - 250, - 0, - 1026, - 0, - 0, - 0, - 0, - 422, - 3040, - 3298, - 3659, - 311, - 0, - 0, - 0, - 0, - 0, + 1285, + 1282, 0, 0, 0, + 249, 251, - 3254, - 1774, - 0, - 0, - 0, + 252, 253, - 0, - 378, - 0, - 2976, - 0, - 0, - 0, - 0, - 0, - 2353, 254, - 255, - 256, - 4532, - 257, + 0, 262, + 1303, + 255, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 266, + 257, 258, - 3195, + 259, 260, 0, - 0, - 2060, - 0, - 0, - 0, - 0, - 3061, - 261, - 4183, - 0, - 0, - 0, - 2127, - 0, - 0, - 0, - 1703, - 2090, - 1263, - 4685, - 4693, 264, - 265, - 266, + 1305, + 261, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 267, - 268, - 269, - 1017, - 644, - 271, - 4507, - 4332, - 0, - 0, - 3482, - 3765, - 3492, - 3442, - 3526, - 3205, - 2857, - 2559, - 701, - 272, - 307, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 274, - 2989, - 3322, - 0, - 0, - 1608, - 4469, - 0, - 0, - 2068, - 302, - 1380, - 276, - 626, - 4351, - 277, - 3593, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 279, - 280, - 281, - 282, - 3789, - 0, - 0, - 0, - 283, - 284, - 4369, - 0, - 286, - 0, - 0, - 0, - 3021, - 3494, - 1812, - 0, - 0, - 2284, - 0, - 0, - 4465, - 287, - 289, - 290, - 1317, - 4386, - 2437, - 292, - 0, - 0, - 4656, - 293, - 294, - 2033, - 4164, - 296, - 3461, - 297, - 298, - 299, - 300, - 301, - 1015, - 0, - 0, - 1016, - 0, - 0, - 303, - 1905, - 0, - 2597, - 2301, - 305, - 2348, - 2104, - 3179, - 0, - 3830, - 0, - 2359, - 306, - 309, - 0, - 477, - 4208, - 310, - 313, - 314, - 315, - 4099, - 316, - 4095, - 317, - 319, - 3561, - 320, - 321, - 322, - 3163, - 0, - 323, - 324, - 4595, - 326, - 4122, - 2012, - 0, - 1788, - 719, - 0, - 2058, - 0, - 2075, - 0, - 0, - 0, - 3390, - 327, - 1058, - 0, - 712, - 408, - 0, - 0, - 0, - 329, - 1629, - 1110, - 330, - 2162, - 331, - 332, - 333, - 334, - 335, - 0, - 0, - 0, - 339, - 3940, - 0, - 3286, - 0, - 0, - 337, - 4436, - 0, - 1343, - 871, 1287, 0, - 1301, - 3655, 0, - 2995, - 338, - 341, - 342, - 343, - 344, - 345, + 0, + 263, + 0, + 0, + 0, + 0, + 0, + 1307, + 1288, + 0, + 0, + 0, + 265, + 0, + 0, + 0, + 0, + 0, + 1308, + 1329, + 0, + 0, + 0, + 271, + 0, + 0, + 0, + 0, + 0, + 1335, + 1330, + 0, + 0, + 0, + 273, + 0, + 0, + 0, + 0, + 0, + 1336, + 283, + 284, + 285, + 286, + 550, + 294, + 1387, + 287, + 0, + 0, + 0, + 0, + 0, + 1370, + 0, + 0, + 0, + 0, + 298, + 0, + 0, + 548, + 289, + 290, + 291, + 292, + 552, + 296, + 1389, + 293, + 0, + 0, + 0, + 0, + 0, + 1371, + 0, + 0, + 0, + 0, + 299, + 0, + 0, + 549, + 1372, + 0, + 0, + 0, + 295, + 1373, + 0, + 0, + 0, + 297, + 301, + 302, + 303, + 304, + 0, + 314, + 305, + 312, + 0, + 0, + 0, + 0, + 1391, + 0, + 0, + 0, + 0, + 318, + 307, + 308, + 309, + 310, + 0, + 316, + 311, + 313, + 0, + 0, + 0, + 0, + 1392, + 0, + 0, + 0, + 0, + 319, + 1393, + 0, + 0, + 558, + 315, + 1394, + 0, + 0, + 559, + 317, + 321, + 322, + 323, + 332, + 0, + 324, + 1438, + 1436, + 0, + 0, + 560, + 325, + 0, + 0, + 0, + 0, + 0, + 1442, + 327, + 328, + 329, + 334, + 0, + 330, + 1440, + 1437, + 0, + 0, + 561, + 331, + 0, + 0, + 0, + 0, + 0, + 1443, + 1434, + 0, + 0, + 0, + 0, + 333, + 1435, + 1532, + 0, + 0, + 0, + 335, + 1697, + 1444, + 0, + 0, + 0, 347, 0, 0, 0, 0, - 0, - 0, - 3013, - 0, - 3885, - 3735, - 2293, - 919, - 348, + 1450, + 1698, + 1445, 0, 0, 0, - 0, - 1396, - 2223, 349, - 350, + 0, + 0, + 0, + 0, + 1451, 351, 352, 353, - 2502, - 0, - 2168, - 1591, - 0, + 354, 0, + 1500, + 1492, + 1494, 355, 0, - 4411, - 4124, - 0, - 1008, - 3222, - 402, - 0, - 0, - 0, - 0, - 0, - 0, - 401, - 0, - 0, - 0, - 0, - 0, - 356, - 3038, - 0, - 2386, - 0, - 0, - 0, - 0, - 0, 0, 0, 0, + 1498, + 1496, + 357, 358, 359, - 2866, - 0, - 0, - 0, - 0, - 3271, + 360, 0, + 1502, + 1493, + 1495, 361, - 4641, - 362, - 4399, - 0, - 364, - 0, - 0, - 0, - 3883, 0, 0, 0, 0, + 1499, + 1497, 0, - 3876, - 0, - 1922, - 2314, + 1533, 366, - 365, - 3249, - 1663, - 1241, - 1558, - 1903, - 2215, + 367, 368, - 0, - 4541, - 0, - 687, - 0, - 3490, - 370, 369, - 371, + 0, + 1522, + 1526, + 370, + 1520, + 0, + 0, + 0, + 0, + 377, + 0, + 0, + 0, + 0, + 379, + 372, 373, 374, 375, + 0, + 1524, + 1528, 376, - 377, - 379, + 1521, + 0, + 0, + 0, + 0, + 378, + 0, + 0, + 0, + 0, 380, - 381, + 546, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 382, - 865, + 547, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 0, 0, - 1924, - 383, 384, - 3670, - 0, - 0, - 0, - 0, + 556, 0, 0, 0, @@ -17085,361 +16582,245 @@ const unsigned short _wind_canon_next_table[] = { 0, 0, 386, - 387, - 1408, - 0, - 0, - 2423, - 0, - 0, - 4484, - 0, - 2946, - 0, - 4633, - 389, - 1864, + 557, 0, 0, 0, - 1879, - 390, - 392, - 393, - 394, - 3865, 0, 0, 0, - 395, - 396, 0, 0, - 397, + 0, + 388, + 1643, + 580, + 568, + 0, + 514, + 0, + 0, + 0, + 398, 399, - 0, - 1969, - 0, - 3392, - 2333, 400, - 404, - 405, - 407, - 1019, - 0, - 0, - 0, - 2745, - 0, - 1136, - 0, + 401, + 402, 415, - 0, - 0, - 0, - 0, - 0, - 2949, - 835, - 409, - 410, 411, - 412, + 0, + 0, + 403, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 413, + 1649, + 586, + 574, + 0, + 520, + 0, + 0, + 0, + 405, + 406, + 407, + 408, + 409, + 416, + 412, + 0, + 0, + 410, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 414, - 653, - 4423, - 4176, - 3845, + 1546, 0, - 0, - 0, - 417, - 0, - 0, - 0, - 2599, - 2291, - 1934, - 0, - 0, - 3574, 418, - 4616, + 500, + 445, + 1178, + 0, + 0, + 1604, + 0, + 0, + 0, + 0, + 1267, + 419, 420, - 4120, - 0, - 1510, - 1862, - 762, - 1191, - 0, - 0, - 0, - 0, - 0, - 3095, - 3484, 421, - 505, - 0, - 0, - 0, - 0, - 0, - 0, + 422, 423, + 1552, + 0, 425, - 999, - 597, - 0, - 0, - 0, + 506, + 451, + 1184, + 0, + 0, + 1610, 0, 0, 0, 0, + 1273, + 426, 427, 428, 429, 430, - 3914, - 0, - 0, - 0, - 431, 432, + 0, + 0, + 0, + 0, + 0, + 0, + 488, + 0, + 620, + 433, + 439, + 1225, + 1231, + 0, + 0, + 0, + 0, + 594, + 600, 434, 435, + 436, 437, - 1581, - 1239, - 0, - 3895, - 4677, - 0, - 3603, - 3274, - 0, - 0, - 1507, - 0, - 0, - 3082, 438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1726, - 4241, - 4357, - 703, 440, - 0, - 1043, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2797, - 3720, 441, - 2824, - 0, - 2177, - 0, - 0, - 1092, - 1434, - 0, - 4525, - 4317, - 4409, - 0, + 442, 443, - 3123, - 459, 444, - 1512, - 0, - 855, 446, - 3312, - 970, - 0, - 0, - 2722, - 0, - 0, - 0, - 0, - 1838, 447, 448, 449, + 512, + 0, + 0, 450, - 451, - 1523, - 0, - 0, - 3410, - 0, - 689, - 0, + 452, 453, - 0, - 0, - 0, - 0, - 0, - 0, - 875, 454, 455, + 513, + 0, + 0, 456, - 457, - 458, - 1727, - 0, - 2305, - 928, - 485, - 461, - 0, - 0, - 2278, + 1279, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 460, + 1280, + 0, + 0, + 0, + 0, + 0, + 0, 0, 0, 0, 0, - 1823, 462, - 463, - 464, - 465, - 466, - 1932, + 1639, 0, 0, 0, + 0, + 464, + 1640, + 0, + 0, + 0, + 0, + 466, + 1577, + 1204, + 0, + 0, + 1341, + 1395, + 1408, + 1535, + 0, + 0, + 1674, + 481, + 0, + 0, 468, - 0, - 0, - 1303, - 0, - 3423, 469, - 4127, + 475, + 470, 471, - 4136, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2464, 472, 473, 474, - 475, 476, + 477, 478, + 479, 480, - 481, + 1707, + 0, + 0, + 0, + 0, + 0, + 0, 482, 483, - 0, - 3191, - 873, 484, + 485, 486, 487, - 488, 489, 490, - 0, - 0, - 497, + 491, 492, 493, 494, - 495, - 496, - 3810, - 0, - 0, - 0, - 0, - 0, - 604, - 2380, - 0, - 499, - 500, 501, 502, 503, 504, - 3552, - 1954, - 0, - 0, - 951, - 4236, - 3402, - 0, - 0, - 0, + 505, 507, - 0, - 0, - 2868, - 2608, - 0, - 0, - 0, - 0, - 0, 508, 509, - 3887, - 4146, - 0, - 0, + 510, 511, - 0, - 0, - 2252, - 0, - 2122, - 512, - 3117, - 0, - 0, - 0, - 0, - 1695, - 0, - 888, - 0, - 514, 515, 516, 517, @@ -17449,1662 +16830,1137 @@ const unsigned short _wind_canon_next_table[] = { 522, 523, 524, - 0, - 1296, 525, - 0, - 0, - 0, - 0, - 0, - 526, - 528, - 2580, - 0, - 0, - 0, - 0, - 1991, - 0, - 0, - 0, - 530, + 529, 531, - 3472, - 786, - 3153, - 4618, - 3901, - 4217, - 2388, - 3042, - 2452, - 2697, - 533, - 2908, - 2873, - 1753, - 4083, - 1402, - 534, 535, - 536, 537, - 538, - 540, - 542, 541, - 2449, - 0, - 544, - 1667, - 934, - 0, - 2403, - 0, - 3160, - 0, - 868, - 0, - 1133, - 3542, - 2266, - 2186, - 545, - 546, - 548, - 4308, - 0, - 1670, - 1967, - 2289, - 0, - 0, - 0, - 0, - 0, - 0, - 3487, - 549, - 3702, - 0, - 0, - 0, - 2401, - 1428, - 0, - 672, - 1045, + 543, 551, - 4289, - 4500, - 552, - 941, - 554, - 1337, - 3724, - 2535, - 2509, - 1599, - 4665, - 779, - 1355, - 3614, - 4361, - 4597, - 3676, - 638, - 3948, - 555, - 556, - 557, - 1979, - 0, - 0, - 0, - 558, - 559, - 0, - 0, - 560, - 562, - 563, - 564, - 565, - 0, - 4475, - 1430, - 566, - 0, - 0, - 0, - 0, - 4488, - 568, + 553, 569, 570, 571, 572, - 574, + 573, 575, 576, - 1804, - 0, 577, 578, - 580, + 579, 581, 582, 583, 584, + 1337, 0, 0, - 0, - 4239, 585, - 586, - 1815, + 0, + 0, + 0, + 1339, + 587, 588, 589, 590, + 1338, + 0, + 0, 591, - 592, - 3190, - 593, - 3819, - 0, - 0, - 2153, 0, 0, 0, - 770, - 0, - 0, - 0, - 2688, - 0, + 1340, 595, 596, + 597, 598, 599, - 600, 601, - 0, - 0, - 0, - 2004, 602, 603, + 604, 605, - 606, - 607, - 608, 609, - 3435, + 612, 0, 0, - 1585, 0, 0, + 0, + 0, + 2278, + 631, + 664, + 686, + 677, + 737, + 610, 611, 0, 0, - 617, - 612, - 613, + 0, + 0, + 0, + 0, 614, + 613, 615, 616, - 950, + 617, 618, 619, - 620, 621, - 940, - 622, - 624, - 0, - 0, - 0, + 623, + 2519, + 2500, + 2525, 625, + 626, 627, + 628, 629, - 1208, + 0, + 0, + 0, + 2282, + 2367, 630, - 631, + 2323, 632, + 0, + 0, + 0, + 640, + 0, + 646, + 0, + 652, + 0, + 0, + 0, + 0, + 0, + 658, 633, 634, - 3269, - 2006, - 0, - 0, - 0, - 0, - 3731, - 0, - 4310, + 635, 636, + 1756, + 0, + 0, + 2280, + 2277, 637, + 0, + 0, + 2276, + 0, + 2275, + 2396, + 0, + 0, 639, - 640, 641, 642, 643, + 644, + 1795, + 2305, 645, - 1170, - 1320, - 0, - 0, - 0, - 0, - 0, - 0, - 1832, 647, 648, 649, 650, + 1834, + 0, + 0, + 2309, + 2307, 651, - 0, - 0, - 0, - 2133, - 3450, - 652, + 653, 654, 655, - 4063, - 3782, - 0, - 0, 656, + 1877, + 2330, 657, - 2885, - 0, - 0, - 0, 0, 0, + 2329, 0, + 2328, 0, + 684, 659, 660, 661, 662, + 1916, + 2390, 663, + 2361, 0, 0, 0, - 2063, 665, - 664, + 0, + 0, + 0, + 671, + 0, + 0, + 2010, + 2012, + 2014, + 2016, + 666, 667, 668, 669, + 1955, + 2359, 670, - 671, - 674, 0, 0, + 2358, + 0, + 2357, + 0, + 685, + 672, 673, - 676, + 674, + 675, + 1988, 0, - 4679, - 677, + 0, + 2394, + 2392, + 676, + 2346, + 0, + 0, + 0, + 718, + 0, + 0, + 0, + 731, 678, + 711, + 2018, + 2020, + 2022, 679, 680, 681, - 2966, - 3324, + 682, 0, 0, + 0, + 2326, + 2322, 683, - 0, - 4663, + 2345, + 687, 0, 0, 0, - 0, - 0, - 1117, - 1149, - 1567, - 1865, - 684, - 686, - 688, - 690, - 691, - 692, 693, - 694, - 696, - 697, - 698, + 0, 699, 0, - 0, - 0, - 3891, - 700, - 2696, - 702, - 0, - 0, - 0, - 0, - 2247, - 704, - 706, - 1228, - 800, - 0, - 2859, - 0, - 0, - 0, - 3278, - 711, - 0, - 0, - 0, - 0, - 0, - 0, - 707, - 747, - 3266, - 0, - 0, - 4631, - 0, - 777, - 0, - 0, - 0, - 0, - 0, - 709, - 0, - 1574, - 2565, - 710, - 1673, - 713, - 714, - 715, - 716, - 717, - 718, - 720, - 0, - 721, - 3508, - 0, - 0, - 0, - 4626, - 0, - 723, - 1205, - 3975, - 0, - 1965, - 2339, - 776, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 705, 0, 0, 0, 0, 0, 724, - 2072, - 3816, + 688, + 689, + 690, + 691, + 1733, 0, - 2900, + 0, + 2260, + 2009, + 692, + 0, + 0, + 2252, + 0, + 2251, + 694, + 695, + 696, + 697, + 1777, + 2011, + 698, + 700, + 701, + 702, + 703, + 1812, + 0, + 0, + 2290, + 2013, + 704, + 706, + 707, + 708, + 709, + 1855, + 0, + 0, + 2324, + 2015, + 710, + 0, + 0, + 2321, + 0, + 2320, + 0, + 717, + 712, + 713, + 714, + 715, + 0, + 0, + 0, + 2355, + 2344, + 716, + 719, + 720, + 721, + 722, + 1933, + 0, + 0, + 2353, + 2019, + 730, + 0, + 0, + 2343, + 0, + 2342, + 0, + 723, + 725, 726, - 0, - 0, - 0, - 0, - 0, - 4115, 727, 728, - 4321, - 0, - 0, - 1499, - 1071, - 730, - 731, - 0, - 0, - 0, - 0, - 0, - 3686, - 2394, - 2643, - 0, - 0, - 0, - 0, - 0, - 0, + 1898, + 2017, + 729, + 732, 733, - 4157, 734, 735, + 1966, + 0, + 0, + 2376, + 2021, 736, - 737, 738, - 4197, + 739, 740, - 0, - 0, - 0, - 0, - 0, - 0, - 3966, - 1159, 741, 742, 743, + 0, + 0, + 0, + 0, + 0, + 0, 744, - 745, - 746, - 749, - 2517, - 0, - 0, - 0, - 3657, - 3893, - 0, - 1363, - 0, - 0, - 751, - 752, - 754, - 755, - 756, - 1867, - 0, - 1168, - 757, - 758, 760, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2623, - 761, - 763, - 765, - 766, - 767, - 768, - 769, - 0, - 3768, - 771, - 2350, - 0, - 1289, - 0, - 0, - 0, - 773, - 0, - 2914, - 774, - 775, - 778, - 780, - 781, - 782, - 783, - 0, - 0, - 0, - 4148, - 784, - 785, + 746, + 779, 787, - 788, - 789, - 2219, - 0, - 0, - 0, - 790, - 791, - 0, - 0, - 798, - 793, - 794, - 795, - 4643, - 0, - 796, - 797, - 801, - 0, - 0, - 0, - 0, - 861, - 803, - 804, - 805, - 806, - 807, - 812, - 0, - 0, - 0, - 0, - 0, - 0, - 808, - 1914, - 0, - 2611, - 0, - 0, - 810, - 0, - 0, - 1432, - 3708, - 811, - 1166, - 0, - 0, - 0, - 1769, - 0, - 0, - 0, - 0, - 0, - 814, - 841, - 815, - 817, - 818, - 819, - 820, - 0, - 4659, - 823, - 822, 821, - 4098, - 825, + 807, 0, - 0, - 824, - 834, - 833, - 827, - 0, - 0, - 0, - 0, - 2482, - 0, - 3996, - 0, - 3381, 828, - 829, - 830, - 831, - 832, - 836, - 837, - 838, - 839, - 840, - 843, - 845, - 846, - 847, - 848, - 0, - 1583, - 4046, - 849, - 853, - 0, - 0, - 0, - 0, - 854, - 4005, - 851, - 0, - 4545, - 0, - 4593, - 4394, - 0, - 0, - 2882, - 0, - 0, - 4672, - 852, - 856, - 857, - 858, - 859, - 860, - 1124, - 0, - 0, - 0, - 2433, - 2048, - 0, - 0, - 0, - 0, - 3569, - 0, - 863, - 864, - 866, - 867, - 4516, - 0, 0, 0, 0, 0, 0, 869, + 912, + 853, + 0, + 0, + 754, + 0, + 747, + 841, + 884, + 773, + 0, + 767, + 0, + 0, + 0, + 900, + 748, + 749, + 750, + 751, + 752, + 0, + 0, + 0, + 0, + 0, + 867, + 0, + 753, + 755, + 756, + 757, + 758, + 759, + 761, + 762, + 763, + 764, + 765, + 766, + 768, + 769, + 770, + 771, + 772, + 774, + 775, + 776, + 777, + 778, + 0, + 0, + 0, + 896, + 0, + 786, + 0, + 898, + 780, + 0, + 0, + 0, + 943, + 0, + 0, + 0, + 955, + 0, + 925, + 781, + 782, + 783, + 784, + 937, + 0, + 785, + 0, + 939, + 0, + 0, + 941, + 859, + 0, + 0, + 801, + 0, + 794, + 847, + 890, + 788, + 0, + 814, + 0, + 0, + 0, + 906, + 789, + 790, + 791, + 792, + 820, + 0, + 0, + 0, + 897, + 0, + 793, + 0, + 899, + 795, + 796, + 797, + 798, + 799, + 0, + 0, + 0, + 0, + 0, + 868, + 0, + 800, + 802, + 803, + 804, + 805, + 806, + 808, + 809, + 810, + 811, + 812, + 813, + 815, + 816, + 817, + 818, + 819, + 822, + 0, + 0, + 0, + 949, + 0, + 0, + 0, + 961, + 0, + 931, + 823, + 824, + 825, + 826, + 938, + 0, + 827, + 0, + 940, + 0, + 0, + 942, + 829, + 835, + 830, + 831, + 832, + 833, + 834, + 836, + 837, + 838, + 839, + 840, + 842, + 843, + 844, + 845, + 846, + 0, + 882, + 848, + 849, + 850, + 851, + 852, + 0, + 883, + 854, + 855, + 856, + 857, + 858, + 0, + 865, + 860, + 861, + 862, + 863, + 864, + 0, + 866, 870, - 872, - 874, 876, + 871, + 872, + 873, + 874, + 875, 877, 878, 879, 880, - 4396, - 882, - 1658, - 0, - 2361, - 2656, - 0, - 0, - 884, - 0, - 1410, - 0, - 0, - 0, - 4205, - 916, - 0, - 915, - 0, - 918, - 917, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 881, 885, + 886, 887, + 888, 889, - 890, 891, 892, 893, - 2837, - 0, - 4562, - 0, - 1926, - 0, + 894, 895, - 0, - 3048, - 0, - 2627, - 0, - 3696, - 0, - 3645, - 896, - 897, - 898, - 899, - 900, + 901, 902, 903, 904, 905, - 1292, - 1638, - 1952, - 910, - 911, + 907, 908, 909, - 914, - 0, - 912, + 910, + 911, 913, - 906, - 907, - 0, - 0, - 947, - 0, - 0, - 948, + 919, + 914, + 915, + 916, + 917, + 918, 920, 921, 922, 923, 924, 926, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2229, 927, + 928, 929, 930, - 931, 932, 933, + 934, 935, 936, - 939, - 0, - 0, - 0, - 0, - 938, - 942, - 943, 944, - 2311, - 0, - 0, - 0, 945, 946, - 0, - 0, - 949, + 947, + 948, + 950, + 951, 952, 953, - 955, + 954, + 956, 957, + 958, 959, - 961, - 966, - 967, - 968, - 969, + 960, + 962, 963, - 0, 964, 965, + 966, + 968, + 0, 976, - 977, 0, 0, - 1014, 0, 0, - 1013, + 0, + 0, + 0, + 997, + 990, + 969, + 970, 971, 972, 973, 974, 975, + 983, + 977, + 0, + 984, + 978, 979, - 2660, 980, 981, 982, - 983, - 4640, - 984, - 1126, - 0, - 0, - 0, + 985, 986, - 1472, - 0, 987, - 0, - 4686, 988, 989, - 990, + 1004, + 0, + 0, 991, 992, + 993, 994, 995, 996, - 997, 998, + 999, 1000, 1001, 1002, 1003, - 0, - 0, - 0, - 2368, 1005, - 1004, + 1006, 1007, + 1008, 1009, - 2233, - 0, - 0, 1011, - 1012, 1018, 0, 0, 0, + 0, + 0, + 0, + 0, + 0, + 1031, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1019, + 0, + 0, 1025, 1020, 1021, 1022, - 1412, 1023, - 0, - 0, - 2799, - 4403, 1024, - 1123, - 0, - 1119, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 1026, 1027, - 0, - 1036, - 2442, + 1028, 1029, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1078, 1030, - 0, - 0, - 3173, - 1031, 1032, 1033, 1034, 1035, + 1036, + 0, 1038, + 1037, 1039, - 1040, 1041, - 1042, - 1044, - 1046, 0, 0, 0, - 1094, - 1048, - 1049, + 0, 1051, 0, 0, + 1058, + 1042, + 1043, + 1044, + 1045, + 1048, 0, - 0, - 4049, - 0, - 0, - 1184, + 1046, + 1047, + 1050, + 1049, 1052, 1053, 1054, 1055, 1056, - 0, - 3108, 1057, - 1281, 1059, + 1065, 1060, 1061, 1062, 1063, + 0, + 1071, 1064, 1066, 1067, 1068, 1069, 1070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1142, 1072, - 3991, - 0, - 1987, - 0, - 0, - 2577, - 0, - 2879, - 0, 1074, - 1709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, 0, 0, 0, 0, 0, 0, + 1081, + 1088, 1075, - 1077, - 0, 1076, + 1077, + 1078, 1079, 1080, - 1081, 1082, 1083, - 0, - 3836, 1084, - 1478, - 0, - 0, + 1085, 1086, - 1095, 1087, - 1088, 1089, + 0, + 0, + 0, + 1098, 1090, 1091, - 1093, - 0, - 0, - 1109, + 1092, 1096, + 1093, + 1094, + 1095, 1097, - 1098, 1099, 1100, + 1101, 1102, - 1104, + 1103, 1105, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1120, 1106, + 1112, 1107, 1108, + 1109, + 1110, + 0, + 1118, 1111, - 4603, - 1112, 1113, 1114, 1115, 1116, - 3852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1118, - 2021, - 0, - 0, - 3625, - 0, - 0, - 2625, - 2303, - 2658, - 0, - 2589, - 2904, - 0, - 0, + 1117, + 1119, 1121, + 0, + 0, + 1128, 1122, - 0, - 0, - 0, - 1207, + 1123, + 1124, 1125, - 2923, + 1134, + 1126, + 0, + 0, 0, - 3373, 0, 1127, - 1128, 1129, 1130, 1131, 1132, - 1134, + 1133, 1135, 1137, 1138, 1139, - 1484, 1140, - 0, - 0, - 2785, - 1143, 1141, - 2440, - 0, - 1810, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 1142, 1145, + 1143, + 0, + 1144, 1146, - 1151, - 0, - 0, - 0, - 0, 1148, - 1222, 0, 0, 0, 0, 0, 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1289, + 1736, + 1149, 1150, - 2414, - 0, - 0, - 3639, - 0, - 0, - 2494, - 0, - 0, + 1151, + 1152, 1153, 1154, 1155, - 1156, - 1157, - 1158, - 1214, - 3089, - 0, - 0, - 0, + 1159, 1160, 1161, 1162, - 1163, - 1164, - 1165, - 1204, - 0, - 0, - 0, - 1167, - 1169, - 0, - 0, - 0, - 1183, - 1171, - 1172, - 1173, - 2506, - 0, - 0, 0, + 1170, 1174, + 1163, + 1165, + 1166, + 1167, + 1168, + 0, + 1172, + 1176, + 1169, + 1171, + 1173, 1175, 1177, - 0, - 0, - 0, - 3127, - 0, - 0, - 0, - 1233, - 0, - 3545, - 1178, 1179, 1180, 1181, - 2768, - 0, 1182, - 0, - 2776, - 0, - 0, - 2818, + 1183, 1185, - 3803, 1186, 1187, 1188, - 3874, - 0, 1189, - 1190, - 1192, - 1194, + 1193, + 0, + 0, + 0, + 1200, + 0, + 0, + 0, + 0, + 0, + 1202, 1195, - 1196, - 1197, - 3087, - 3425, - 2425, - 2781, - 2782, - 2779, - 2780, - 2778, + 0, + 0, 0, 1201, - 2777, - 2769, - 1198, 0, 0, - 2823, 0, 0, - 2820, - 1200, + 0, 1203, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1223, + 1197, + 1199, + 1205, + 1211, 1206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1227, + 1207, + 1208, 1209, 1210, - 1211, + 1217, 1212, 1213, + 1214, + 1215, 1216, - 0, - 0, - 0, - 0, - 0, - 3668, - 1217, - 2275, - 0, - 4212, - 0, - 0, - 1219, - 0, - 0, - 0, - 0, - 1660, - 1220, - 1221, - 4558, - 4353, - 0, - 0, - 0, - 1225, - 3785, - 1885, - 0, - 0, - 1520, - 0, - 0, - 3067, + 1218, + 1222, + 1224, 1226, + 1227, + 1228, 1229, - 1701, - 0, - 0, - 3309, - 2997, - 4002, - 3661, - 0, - 0, - 0, - 4397, - 0, - 0, - 4628, - 1231, + 1230, 1232, + 1233, 1234, 1235, 1236, - 1237, 1238, + 1239, 1240, - 1243, + 1241, 1242, - 3847, - 0, - 0, - 0, - 0, - 0, - 4392, - 0, - 1247, - 0, + 1244, 1245, - 1654, - 0, - 0, - 2575, 1246, + 1247, 1248, + 1254, 0, 0, 0, - 0, - 0, - 0, - 0, - 1273, - 1250, - 4695, - 0, - 0, - 1252, - 1605, - 1253, - 4203, - 2043, - 2363, - 0, - 0, - 3420, - 0, - 0, - 0, - 0, - 0, - 3935, - 1255, - 4451, - 0, - 2077, - 4228, - 0, - 0, - 0, - 0, - 0, - 1256, - 1258, 1259, - 1260, + 0, + 0, + 0, + 0, + 0, + 0, 1261, + 1256, + 0, + 0, + 0, + 1260, + 0, + 0, + 0, + 0, + 0, + 0, 1262, - 1274, 1264, - 1265, 1266, - 1267, - 0, - 0, - 0, - 4445, - 1269, 1268, - 2906, - 0, - 0, + 1269, + 1270, 1271, - 0, - 0, - 0, - 0, - 0, - 1535, - 0, - 0, - 0, - 2783, 1272, + 1274, + 1275, 1276, 1277, 1278, - 1279, - 1280, - 1282, - 1283, 1284, - 1285, 1286, - 1288, 1290, - 1291, - 1293, - 3557, - 3556, 0, - 3560, - 1295, - 3525, - 0, - 3524, - 0, - 3523, - 3522, - 1297, - 1299, - 3319, + 1374, + 1421, 0, 0, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1394, - 1300, - 1302, - 3571, - 0, - 0, - 0, - 1304, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3624, - 1306, - 0, - 0, - 0, - 1336, - 1308, - 0, - 0, - 0, - 0, - 0, - 0, - 3622, - 3889, - 0, - 0, - 2269, - 0, + 1564, 1622, - 1309, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1335, + 1661, + 1291, + 1297, + 1292, + 1293, + 1294, + 1295, + 1296, + 1298, + 1299, + 1300, + 1301, + 1302, + 1304, + 1306, + 1310, 1311, 1312, + 1313, + 0, + 1323, 1314, + 0, + 0, + 0, + 0, + 0, + 1321, 1316, + 1317, 1318, 1319, - 1321, - 1322, - 1323, - 1324, 0, - 0, - 0, - 2810, 1325, + 1320, + 0, + 0, + 0, + 0, + 0, + 1322, + 1324, + 1326, 1332, - 1327, - 1328, - 1329, - 1330, - 1331, 1334, - 1338, - 1339, - 1340, - 1341, 1342, - 1344, - 3240, - 0, - 0, - 4006, - 0, - 1346, - 2690, - 2940, - 3138, - 0, - 4430, - 0, - 0, - 0, - 4251, - 1347, 1348, + 1343, + 1344, + 1345, + 1346, + 1347, + 1354, 1349, 1350, - 1354, - 0, - 0, - 0, - 0, - 0, 1351, - 0, - 1362, + 1352, 1353, - 1356, + 1355, 1357, 1358, 1359, - 0, - 0, - 0, - 4489, - 1361, 1360, - 1365, + 1361, 0, 0, + 0, + 0, + 0, + 1368, + 1363, 1364, + 1365, + 1366, 1367, + 0, + 0, + 0, + 0, + 0, 1369, - 3349, - 1370, - 1371, - 1372, - 1373, - 1374, - 1376, - 1379, - 0, - 0, - 1378, - 1425, + 1375, 1381, + 1376, + 1377, + 1378, + 1379, + 1380, + 1382, 1383, 1384, 1385, - 2029, - 0, 1386, - 1387, - 2050, - 2435, - 1389, - 1782, - 2812, - 3101, - 3276, - 2109, - 3227, - 4674, - 0, - 4133, - 1436, - 0, - 0, - 1437, - 0, - 1438, - 0, - 0, - 0, + 1388, 1390, - 1392, - 0, - 0, - 0, - 0, - 3712, - 0, - 0, - 0, - 0, - 3478, - 3827, - 2821, - 1439, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1393, - 1395, + 1396, + 1402, 1397, 1398, 1399, @@ -19116,92 +17972,47 @@ const unsigned short _wind_canon_next_table[] = { 1406, 1407, 1409, + 1415, + 0, + 0, + 0, + 0, + 0, + 0, + 1452, + 1458, + 1464, + 1470, + 1410, 1411, - 1414, + 1412, 1413, - 0, - 0, - 1423, - 0, - 1424, + 1414, 1416, 1417, 1418, 1419, 1420, - 2413, - 1421, 1422, + 1428, + 1423, + 1424, + 1425, + 1426, 1427, 1429, + 1430, 1431, + 1432, 1433, - 1435, - 1860, + 1439, 1441, - 0, - 2179, - 3151, - 0, - 3780, - 0, - 0, - 4047, - 2683, - 4118, - 0, - 0, - 0, - 2207, - 1442, - 1444, - 1445, - 1446, 1447, - 1509, - 1448, - 4611, - 0, - 0, - 1765, - 1450, - 0, - 0, - 0, - 0, - 0, - 0, - 3775, - 0, - 3134, - 1451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1506, + 1449, 1453, 1454, 1455, - 2117, - 0, 1456, - 4549, - 1502, - 0, - 0, - 0, - 1503, - 0, - 0, - 0, - 0, - 0, 1457, 1459, 1460, @@ -19210,744 +18021,605 @@ const unsigned short _wind_canon_next_table[] = { 1463, 1465, 1466, - 1877, - 4113, - 4380, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 1467, 1468, - 1880, 1469, - 3012, - 0, - 0, - 0, - 0, - 0, - 0, 1471, + 1472, 1473, 1474, 1475, - 1476, 1477, + 1478, 1479, 1480, - 1481, - 1482, - 1483, - 1486, - 1485, + 0, 1488, - 1489, + 1481, + 1483, + 1484, + 1485, + 1486, + 0, 1490, - 2470, - 0, - 1767, + 1487, + 1489, 1491, - 1492, - 1494, - 1495, - 1496, - 1497, - 1498, - 1500, - 0, - 0, - 0, 1501, + 1503, 1505, + 1506, + 1507, 1508, + 1509, + 1516, 1511, + 1512, 1513, 1514, 1515, - 1516, 1517, - 1518, - 0, - 1519, - 0, - 0, - 0, - 0, - 0, - 1522, - 1521, - 1524, + 1523, 1525, - 1526, 1527, - 1528, - 1530, + 1529, 1531, - 0, - 0, - 0, - 0, - 0, - 0, - 2637, - 3193, - 0, - 0, - 4091, - 1891, - 0, - 0, - 0, - 0, - 1533, - 0, - 0, - 0, - 0, - 2184, - 1534, 1536, + 1537, 1538, + 1539, 1540, 1541, - 1543, - 1544, - 1545, - 1546, 1547, 1548, + 1549, 1550, + 1558, 1551, - 1552, + 0, + 1562, + 0, + 0, + 0, + 0, + 0, + 1560, 1553, 1554, + 1555, 1556, - 1557, - 1580, - 0, - 0, - 0, - 0, - 0, - 1579, - 0, - 0, - 0, - 0, - 0, - 0, - 3060, 1559, - 1561, - 1562, + 1557, + 0, 1563, - 1564, + 0, + 0, + 0, + 0, + 0, + 1561, 1565, + 1571, 1566, + 1567, 1568, + 1569, 1570, 0, 0, 0, - 0, - 0, - 4513, - 0, - 0, - 0, - 0, - 4529, - 0, - 0, - 4527, + 1596, 1572, 1573, + 1574, 1575, - 4401, - 4142, - 3854, - 0, - 3229, - 2960, - 0, - 2287, - 1943, - 1613, - 0, - 0, - 0, - 0, - 0, - 1577, - 1722, - 0, - 0, - 0, + 1576, 0, 0, 0, + 1597, 1578, - 1582, - 0, - 0, - 3268, 1584, + 1579, + 1580, + 1581, + 1582, + 1590, + 1583, + 0, + 1594, + 0, + 0, + 0, + 0, + 0, + 1592, + 1585, 1586, 1587, 1588, + 1591, 1589, - 3081, - 1590, - 1592, - 1636, - 1594, + 0, 1595, - 1597, 0, 0, 0, 0, - 2613, - 1598, - 1600, - 1601, - 1602, - 1603, - 1604, + 0, + 1593, + 1605, 1606, - 0, - 0, - 0, 1607, - 1609, - 4537, - 0, - 0, - 2254, - 0, - 1611, - 0, - 0, - 4428, - 1612, - 1614, + 1608, 1616, - 1897, - 1617, - 1618, - 1619, + 1609, + 0, 1620, + 0, + 0, + 0, + 0, + 0, + 1618, + 1611, + 1612, + 1613, + 1614, + 1617, + 1615, + 0, 1621, + 0, + 0, + 0, + 0, + 0, + 1619, 1623, - 4530, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 1629, + 1624, 1625, - 1984, 1626, + 1627, 1628, - 3280, 1630, 1631, 1632, 1633, 1634, - 1635, - 1637, - 1650, - 0, - 0, - 0, - 1646, - 1639, - 0, - 0, - 0, - 0, - 1672, - 1641, - 1642, - 1643, 1644, - 0, - 0, - 0, - 2937, - 3683, 1645, - 2324, - 0, + 1646, + 1647, + 1655, 1648, 0, - 3576, - 0, - 0, - 3058, - 2816, - 0, - 4543, - 1649, - 1652, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3306, - 1653, - 1655, - 1657, - 0, - 0, - 0, - 0, - 1679, 1659, - 3795, 0, 0, 0, 0, 0, + 1657, + 1650, + 1651, + 1652, + 1653, + 1656, + 1654, + 0, + 1660, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, - 1661, + 1658, 1662, - 1664, - 0, - 3635, - 1666, - 2248, - 0, - 0, - 0, 1668, - 0, - 0, - 3880, - 3663, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 1663, + 1664, + 1665, + 1666, + 1667, 1669, + 1670, 1671, - 1674, + 1672, + 1673, 1675, + 1681, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1701, 1676, 1677, 1678, - 3620, + 1679, 0, - 1681, - 2621, + 1693, + 1687, + 1680, + 0, + 1691, + 0, + 0, + 0, + 0, + 0, + 1689, 1682, - 2245, - 0, - 2273, - 0, + 1683, 1684, 1685, - 1687, 0, - 0, - 0, - 0, - 0, - 0, - 2633, - 0, - 0, - 4243, + 1695, 1688, - 1690, - 1691, + 1686, + 0, 1692, - 1693, - 0, - 2370, - 1724, - 1725, 0, 0, 0, 0, - 1723, - 0, - 0, - 0, 0, + 1690, 1694, 1696, - 1697, - 1698, - 1699, - 1700, 1702, + 1703, 1704, 1705, - 1706, - 1707, - 2476, 0, - 0, - 3467, - 2062, - 1708, - 1710, - 1712, + 1719, 1713, - 1714, - 1715, + 1706, + 0, 1717, 0, 0, 0, 0, 0, + 1715, + 1708, + 1709, + 1710, + 1711, + 0, 1721, + 1714, + 1712, + 0, + 1718, + 0, + 0, + 0, + 0, 0, 1716, - 1719, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3558, 1720, + 1722, + 1726, 1728, - 1729, - 1730, - 1731, - 1733, 1734, - 0, - 1732, - 0, - 0, - 0, - 0, - 0, 1735, 1737, + 1780, + 1815, + 1858, + 1901, + 1936, + 1969, + 2253, 0, 0, 0, + 2268, + 2298, 0, - 2271, - 3843, 0, - 4471, - 3684, - 0, - 4144, + 2332, 1738, - 1740, - 1742, - 1743, 1744, + 2025, + 2031, + 2037, + 2043, + 2049, + 2055, + 1759, + 1765, + 2063, + 2069, + 2075, + 2081, + 2087, + 2093, + 1739, + 1740, + 1741, + 1742, + 0, + 0, + 0, + 1752, + 1743, + 1750, 1745, 1746, + 1747, 1748, - 1749, - 1750, - 1751, - 1752, + 0, + 0, + 0, 1754, + 1749, + 1751, + 1753, + 0, + 0, + 2023, 1755, - 1756, + 0, + 0, + 2024, 1757, 1758, 1760, 1761, 1762, - 2406, - 0, 1763, + 0, + 0, + 0, + 1773, 1764, + 1771, 1766, - 1851, - 0, - 0, - 0, - 1844, - 0, - 0, - 0, - 0, - 0, - 0, + 1767, 1768, + 1769, + 0, + 0, + 0, + 1775, 1770, 1772, - 1773, - 1775, + 1774, + 0, + 0, + 2061, 1776, - 1777, + 0, + 0, + 2062, 1778, - 2085, - 0, - 0, - 3063, 1779, - 1780, - 0, - 0, - 1784, - 0, 1781, - 1783, - 2190, - 3056, - 0, - 0, - 0, - 1786, - 0, - 0, - 4535, - 0, - 4638, - 4426, - 2962, 1787, - 1831, - 0, - 0, - 0, - 0, - 0, 0, 0, 0, 0, 0, 0, + 1798, + 1804, + 1782, + 1783, + 1784, + 1785, + 1786, + 1793, + 1788, 1789, + 1790, 1791, 1792, - 1793, 1794, - 1795, 1796, - 2014, - 0, - 2591, - 2754, - 2931, - 3006, - 2239, - 3167, - 1798, - 4030, - 3907, + 1797, 1799, 1800, 1801, 1802, 1803, - 1814, + 1810, 1805, - 0, - 0, - 0, - 0, - 0, 1806, + 1807, 1808, - 0, - 0, - 0, - 3672, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2159, 1809, 1811, 1813, + 1814, 1816, + 1822, + 2101, + 2107, + 2113, + 2119, + 2125, + 2131, + 1837, + 1843, + 2139, + 2145, + 2151, + 2157, + 2163, + 2169, 1817, 1818, 1819, 1820, - 3653, - 1822, + 0, + 0, + 0, + 1830, + 1821, + 1828, + 1823, 1824, 1825, 1826, + 0, + 0, + 0, + 1832, 1827, - 1828, - 1830, + 1829, + 1831, + 0, + 0, + 2099, 1833, - 1834, + 0, + 0, + 2100, 1835, - 3105, - 0, - 0, - 0, 1836, - 1837, + 1838, 1839, 1840, 1841, + 0, + 0, + 0, + 1851, 1842, - 1843, + 1849, + 1844, + 1845, 1846, 1847, + 0, + 0, + 0, + 1853, 1848, - 2787, - 0, - 2149, - 1849, 1850, + 1852, + 0, + 0, + 2137, + 1854, + 0, + 0, + 2138, + 1856, + 1857, + 1859, + 1865, + 0, + 0, + 0, + 0, + 0, + 0, + 1880, + 1886, + 1860, 1861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1887, + 1862, 1863, - 3714, - 0, - 1866, - 1868, 0, 0, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1888, - 2713, - 0, - 0, - 0, - 0, - 1871, - 0, - 0, - 4279, - 1872, 1873, - 1874, + 1864, + 1871, + 1866, + 1867, + 1868, + 1869, + 0, + 0, + 0, 1875, + 1870, + 1872, + 1874, 1876, 1878, - 1882, - 0, + 1879, 1881, + 1882, + 1883, + 1884, 0, 0, 0, - 0, - 0, + 1894, + 1885, + 1892, + 1887, + 1888, + 1889, + 1890, 0, 0, 0, 1896, - 1884, - 1886, - 1890, - 1892, + 1891, + 1893, 1895, - 1898, + 1897, 1899, 1900, - 1901, 1902, - 1904, - 1936, - 0, - 0, - 0, - 1938, - 0, - 0, - 0, - 1906, - 0, - 1916, 1908, 0, 0, 0, - 2801, 0, 0, 0, - 3821, - 0, - 2893, + 1919, + 1925, + 1903, + 1904, + 1905, + 1906, + 1907, + 1914, 1909, 1910, 1911, 1912, - 1919, - 0, - 1918, - 0, 1913, - 0, - 0, - 1937, - 1917, - 0, - 0, - 0, 1915, + 1917, + 1918, + 1920, 1921, + 1922, 1923, - 1925, + 1924, + 1931, + 1926, 1927, 1928, 1929, 1930, - 1931, - 1933, + 1932, + 1934, + 1935, + 1937, + 1943, 0, 0, 0, @@ -19955,657 +18627,511 @@ const unsigned short _wind_canon_next_table[] = { 0, 0, 0, + 1957, + 1938, + 1939, + 1940, + 1941, + 0, + 0, + 0, 1951, - 1935, - 1940, 1942, + 1949, 1944, - 3897, - 2257, - 0, - 0, - 2685, - 0, - 0, - 0, + 1945, 1946, 1947, - 3840, - 3567, - 0, - 2958, 0, 0, 0, - 0, - 1949, - 3225, - 1950, 1953, - 1955, + 1948, + 1950, + 1952, + 1954, 1956, 1958, 1959, 1960, 1961, - 2335, - 2669, - 2000, - 2001, - 1998, - 1999, - 1997, 0, - 1995, - 1996, - 2008, - 2009, + 0, + 0, 1964, - 0, - 1963, - 0, - 0, 1962, - 1966, + 1963, + 1965, + 1967, 1968, - 1986, - 0, - 0, - 0, - 0, 1970, + 1976, + 2177, + 2183, + 2189, + 2195, + 2201, + 2207, + 1991, + 1997, + 2215, + 2221, + 2227, + 2233, + 2239, + 2245, + 1971, 1972, 1973, 1974, - 2635, 0, + 0, + 0, + 1984, 1975, - 2299, - 1978, - 0, - 0, - 1976, + 1982, 1977, - 0, - 0, - 0, - 0, - 0, - 1990, - 1981, + 1978, + 1979, 1980, + 0, + 0, + 0, + 1986, + 1981, 1983, 1985, - 1988, 0, 0, + 2175, + 1987, 0, - 3394, + 0, + 2176, 1989, + 1990, 1992, + 1993, 1994, - 2003, + 1995, + 0, + 0, + 0, 2005, + 1996, + 2003, + 1998, + 1999, + 2000, + 2001, + 0, + 0, + 0, 2007, - 2011, - 2013, - 2015, - 2016, - 2017, - 2018, - 2020, + 2002, + 2004, + 2006, 0, 0, + 2213, + 2008, 0, 0, - 0, - 2019, - 2022, - 2024, - 2025, + 2214, + 2262, + 2292, + 2378, 2026, 2027, - 4061, - 3801, - 4344, - 4343, - 4342, 2028, - 4338, - 0, - 4337, - 4336, - 4335, - 4334, - 0, - 4379, - 4378, - 0, - 0, - 4371, - 2032, - 2031, - 0, + 2029, 2030, - 0, - 0, - 0, - 0, - 0, - 2039, + 2032, + 2033, 2034, 2035, 2036, - 2037, 2038, - 4329, - 0, - 0, - 0, - 0, - 0, - 0, - 2814, - 0, - 0, - 0, + 2039, + 2040, 2041, - 0, - 0, - 3079, 2042, 2044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2087, - 2365, + 2045, 2046, 2047, - 2049, - 2097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 2048, + 2050, 2051, + 2052, 2053, 2054, - 2055, 2056, 2057, + 2058, 2059, - 2061, + 2060, 2064, + 2065, 2066, 2067, - 2069, + 2068, + 2070, 2071, - 3878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 2072, 2073, 2074, 2076, - 2089, - 0, + 2077, 2078, + 2079, 2080, - 2081, 2082, 2083, 2084, + 2085, 2086, 2088, + 2089, + 2090, 2091, 2092, - 2093, 2094, - 0, - 0, - 0, - 3400, 2095, 2096, - 2099, - 2100, - 2101, + 2097, + 2098, 2102, 2103, + 2104, 2105, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2222, - 2107, + 2106, 2108, + 2109, 2110, - 0, - 2929, + 2111, 2112, - 2113, 2114, 2115, 2116, - 2157, - 2158, - 0, - 2161, - 0, - 0, - 0, - 2156, - 0, - 0, - 0, - 0, + 2117, 2118, - 3219, - 0, - 0, 2120, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2833, - 2504, 2121, - 2124, - 0, - 0, - 0, - 0, - 0, + 2122, 2123, + 2124, 2126, + 2127, 2128, 2129, 2130, - 3428, - 3754, - 0, - 0, - 2131, 2132, + 2133, 2134, + 2135, 2136, - 2137, - 2138, - 2139, 2140, - 3777, 2141, 2142, + 2143, 2144, - 2145, 2146, 2147, 2148, + 2149, 2150, 2152, - 2189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2155, - 0, - 0, - 0, - 0, + 2153, 2154, + 2155, + 2156, + 2158, + 2159, 2160, - 2163, + 2161, + 2162, 2164, 2165, 2166, 2167, - 0, - 0, - 0, + 2168, 2170, - 2169, + 2171, 2172, 2173, 2174, - 2175, - 0, - 4233, - 4454, - 3665, - 3666, - 0, - 3664, - 0, - 0, - 0, - 3667, - 0, - 0, - 0, - 0, - 2176, - 2232, - 0, 2178, + 2179, 2180, + 2181, 2182, - 3136, - 2183, + 2184, 2185, + 2186, 2187, - 0, - 0, - 3185, 2188, + 2190, 2191, + 2192, 2193, - 2202, - 2201, - 2204, - 2203, - 2197, - 0, - 2200, - 2367, + 2194, 2196, - 2195, - 0, - 2238, - 2237, - 0, - 0, - 2236, + 2197, + 2198, 2199, + 2200, + 2202, + 2203, + 2204, + 2205, 2206, 2208, + 2209, 2210, 2211, 2212, - 2213, - 2214, 2216, + 2217, 2218, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2235, - 2221, + 2219, 2220, + 2222, + 2223, 2224, 2225, 2226, - 2227, 2228, + 2229, 2230, 2231, + 2232, 2234, + 2235, + 2236, + 2237, + 2238, 2240, 2241, 2242, - 2871, - 0, 2243, 2244, 2246, + 2247, + 2248, 2249, - 2251, + 2250, + 2254, 0, 0, 0, - 2256, - 2253, + 2284, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2370, 2255, - 4135, + 2256, + 2257, 2258, - 4372, - 2762, + 2259, + 2267, 0, 0, - 3000, - 2260, 2261, - 2262, 2263, 2264, 2265, - 2267, - 2268, + 2266, + 2269, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2311, 2270, + 2271, 2272, - 0, - 0, - 0, - 0, - 2286, + 2273, 2274, - 0, - 2326, - 2667, - 2276, - 2277, + 2368, 2279, - 2280, + 0, + 2306, + 2308, + 2331, + 0, + 2391, + 0, + 2360, + 2393, 2281, - 2282, 2283, - 2957, - 0, - 2956, - 0, - 0, - 0, - 0, - 0, - 2948, 2285, + 2286, + 2287, 2288, - 2290, - 2292, + 2289, + 2297, + 0, + 0, + 2291, + 2293, 2294, 2295, 2296, - 2297, - 2298, + 2299, 2300, + 2301, 2302, + 2303, 2304, - 2306, - 2307, - 2308, - 2309, 2310, 2312, 2313, + 2314, 2315, - 2317, + 0, + 0, + 0, 2318, + 2316, + 2317, 2319, - 2320, - 2321, - 2322, - 2323, 2325, - 2328, - 2329, - 2330, - 2331, + 2327, + 2384, 0, 0, 0, - 3651, - 3273, - 2332, + 0, + 0, + 0, + 0, + 2333, 2334, - 0, - 0, - 0, - 2930, + 2335, 2336, - 2338, + 2337, + 0, + 0, + 0, 2340, - 2342, - 3502, - 2343, - 2344, - 2345, - 2346, + 2338, + 2339, + 2341, 2347, + 2348, 2349, - 2731, + 2350, 2351, 2352, 2354, - 2355, 2356, - 2357, - 3408, - 3730, - 2358, - 4346, - 0, - 0, - 0, - 2360, 2362, + 2363, 2364, + 2365, 2366, - 2369, - 2373, - 0, - 0, - 2372, 2371, - 2376, - 0, - 0, - 0, + 2372, + 2373, + 2374, 2375, - 3704, + 2383, 0, 0, - 0, - 0, - 0, - 2378, + 2377, 2379, + 2380, 2381, 2382, - 2383, - 2384, 2385, + 2386, 2387, + 2388, 2389, - 2390, - 2391, - 2392, - 2393, 2395, - 2396, - 2397, 2398, + 2402, + 2441, 2399, 2400, - 2402, + 2401, + 2403, + 0, + 0, + 0, + 2422, 2404, + 0, + 2410, + 0, + 2416, 2405, + 2406, 2407, 2408, - 0, + 2409, 2411, - 0, - 0, - 0, - 0, - 0, 2412, - 2410, + 2413, + 2414, 2415, - 2416, 2417, 2418, 2419, - 2480, + 2420, 2421, + 2423, + 0, + 2435, 0, - 3065, - 2422, - 2424, - 2426, - 2428, 2429, + 2424, + 2425, + 2426, + 2427, + 2428, 2430, - 3054, - 0, 2431, - 3432, 2432, - 0, - 0, - 0, - 3753, + 2433, 2434, 2436, + 2437, 2438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4503, 2439, - 2441, + 2440, + 2442, + 0, + 2461, + 2474, + 2481, + 0, + 2506, + 2543, + 2580, + 2642, + 2605, + 2655, 2443, + 0, + 0, + 0, + 0, + 2449, + 0, + 0, + 2455, 2444, 2445, 2446, @@ -20613,43 +19139,44 @@ const unsigned short _wind_canon_next_table[] = { 2448, 2450, 2451, + 2452, 2453, 2454, - 2455, - 3750, - 0, - 0, - 0, 2456, - 3919, - 0, - 0, 2457, + 2458, 2459, 2460, - 2461, 2462, + 0, + 2468, 2463, + 2464, 2465, 2466, 2467, - 2468, 2469, - 2473, - 0, - 0, - 0, - 0, - 2472, + 2470, 2471, - 0, - 0, - 0, - 3832, + 2472, + 2473, 2475, + 2476, 2477, - 2481, + 2478, 2479, + 2480, + 2482, + 0, + 2488, + 0, + 0, + 2494, + 0, + 0, + 0, + 0, + 2513, 2483, 2484, 2485, @@ -20665,501 +19192,494 @@ const unsigned short _wind_canon_next_table[] = { 2497, 2498, 2499, - 2551, 2501, - 2508, - 0, - 0, + 2502, 2503, - 2541, - 0, - 0, - 0, - 0, + 2504, 2505, - 4102, 2507, + 0, + 0, + 2531, + 2537, + 2508, + 2509, 2510, 2511, 2512, - 2513, 2514, + 2515, 2516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2564, + 2517, 2518, 2520, + 2521, 2522, 2523, 2524, - 2525, - 2827, - 0, - 0, - 3797, 2526, 2527, - 3942, - 4265, - 4298, - 0, + 2528, 2529, - 0, - 0, - 0, - 3359, 2530, - 2531, 2532, 2533, 2534, + 2535, 2536, - 2537, 2538, 2539, 2540, - 2543, + 2541, + 2542, 2544, + 2550, + 0, + 0, + 2556, + 2562, + 0, + 0, + 2568, + 2574, + 2630, + 2636, + 2545, 2546, 2547, 2548, 2549, - 2550, + 2551, + 2552, 2553, - 2567, - 2917, - 0, - 2704, - 0, - 0, - 0, - 3584, 2554, 2555, - 2556, 2557, - 2562, - 2561, - 0, - 2563, - 0, - 0, - 0, - 0, - 0, 2558, + 2559, 2560, + 2561, + 2563, + 2564, + 2565, 2566, - 2568, + 2567, 2569, 2570, 2571, - 2573, - 0, - 0, - 2574, - 0, - 0, - 0, 2572, - 2610, - 0, - 0, - 0, - 0, + 2573, + 2575, 2576, + 2577, 2578, 2579, 2581, + 2587, + 0, + 0, + 2593, + 2599, + 2582, 2583, - 3744, 2584, 2585, 2586, - 2587, 2588, + 2589, 2590, + 2591, 2592, - 2593, 2594, 2595, - 4059, - 3125, - 3459, 2596, - 0, - 0, - 0, - 0, - 0, - 3767, - 0, - 0, - 0, - 0, - 3719, - 0, - 0, - 3718, + 2597, 2598, 2600, + 2601, 2602, - 0, - 0, - 0, - 0, - 0, - 0, - 2615, 2603, 2604, - 2605, - 3296, - 0, 2606, - 2607, - 2609, + 0, + 0, + 0, + 0, + 0, 2612, + 2618, + 0, + 2624, + 2607, + 2608, + 2609, + 2610, + 2611, + 2613, 2614, + 2615, 2616, 2617, - 2618, 2619, 2620, + 2621, 2622, - 2624, + 2623, + 2625, 2626, + 2627, 2628, 2629, - 2630, 2631, 2632, + 2633, 2634, - 2636, - 0, - 0, - 0, - 0, - 2671, + 2635, + 2637, 2638, 2639, 2640, 2641, - 2642, + 2643, + 2649, 2644, 2645, 2646, 2647, - 2649, 2648, + 2650, 2651, 2652, 2653, - 3572, - 0, - 2964, 2654, - 2655, - 2657, - 2659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2687, - 2661, + 2656, 2662, + 2668, + 2674, + 2657, + 2658, + 2659, + 2660, + 2661, 2663, 2664, 2665, 2666, - 2668, - 2674, - 0, - 2675, - 0, - 0, + 2667, + 2669, 2670, + 2671, + 2672, 2673, + 2675, + 2676, 2677, 2678, 2679, - 2680, 2681, + 0, + 0, + 0, + 3732, + 3775, + 3881, + 3909, + 3931, + 3991, + 4042, + 4062, + 4117, + 4165, + 4230, + 4246, 2682, + 0, + 0, + 0, + 2685, + 2704, + 2753, + 2785, + 0, + 2820, + 2827, + 2846, + 2895, + 2927, + 2962, + 2969, + 2683, 2684, + 2814, + 0, + 0, + 0, + 0, 2686, - 2689, - 2691, + 0, 2692, + 0, + 2698, + 2687, + 2688, + 2689, + 2690, + 2691, 2693, 2694, 2695, - 0, - 2703, - 2698, + 2696, + 2697, 2699, 2700, - 3961, - 0, - 0, - 0, 2701, 2702, - 0, - 0, - 2710, + 2703, 2705, + 0, + 2711, + 0, + 2717, + 0, + 2723, + 0, + 2729, + 0, + 2735, + 0, + 2741, + 0, + 2747, 2706, 2707, 2708, 2709, + 2710, 2712, + 2713, 2714, 2715, 2716, - 2717, 2718, - 3326, + 2719, 2720, 2721, - 2723, + 2722, 2724, 2725, 2726, - 2729, - 2728, - 0, - 2730, - 0, - 0, - 0, - 0, - 0, 2727, + 2728, + 2730, + 2731, 2732, + 2733, 2734, - 2735, - 3799, + 2736, 2737, + 2738, 2739, 2740, - 2741, 2742, 2743, 2744, + 2745, 2746, - 2747, 2748, 2749, - 4180, - 4425, 2750, - 4654, - 4415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 2751, 2752, + 2754, 0, 0, - 4287, - 2753, + 2760, + 0, + 2766, + 0, + 2772, + 0, + 0, + 0, + 0, + 0, + 0, + 2778, 2755, 2756, 2757, - 3355, - 0, 2758, 2759, - 0, - 0, 2761, - 2760, + 2762, 2763, 2764, 2765, - 2766, 2767, + 2768, + 2769, + 2770, 2771, - 2772, 2773, - 4355, 2774, 2775, + 2776, + 2777, + 2779, + 2780, + 2781, + 2782, + 2783, 2784, - 2789, - 0, - 0, 2786, - 2788, - 3029, - 2791, - 2792, + 0, + 0, 2793, - 2794, - 2795, - 4350, - 2796, - 0, - 4347, - 0, - 0, - 0, - 0, - 0, - 4345, - 2798, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2826, - 2807, 0, 0, 2800, + 0, + 0, + 2807, + 2787, + 2788, + 2789, + 2790, + 2791, + 2792, + 2794, + 2795, + 2796, + 2797, + 2798, + 2799, + 2801, 2802, 2803, 2804, 2805, 2806, + 2808, 2809, + 2810, 2811, + 2812, 2813, 2815, - 2819, + 2816, 2817, + 2818, + 2819, + 2821, 2822, + 2823, + 2824, 2825, + 2826, + 2956, + 0, + 0, + 0, + 0, 2828, - 2829, - 2832, 0, - 0, - 2831, 2834, + 0, + 2840, + 2829, + 2830, + 2831, + 2832, + 2833, + 2835, 2836, - 0, - 0, - 0, - 0, - 2843, + 2837, 2838, 2839, - 2840, 2841, 2842, + 2843, + 2844, 2845, + 2847, 0, + 2853, 0, + 2859, 0, + 2865, 0, + 2871, 0, + 2877, 0, + 2883, 0, - 0, - 2846, + 2889, 2848, 2849, 2850, 2851, - 0, - 3519, - 3203, 2852, - 0, - 0, - 0, - 0, - 2863, 2854, + 2855, 2856, + 2857, 2858, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2903, 2860, + 2861, 2862, - 2865, + 2863, + 2864, + 2866, 2867, + 2868, 2869, - 3232, 2870, 2872, + 2873, 2874, 2875, 2876, - 2877, 2878, + 2879, 2880, 2881, - 2883, - 0, + 2882, 2884, + 2885, 2886, 2887, 2888, - 2889, 2890, - 2899, - 0, - 0, - 0, + 2891, 2892, + 2893, 2894, - 2895, 2896, + 0, + 0, + 2902, + 0, + 2908, + 0, + 2914, + 0, + 0, + 0, + 0, + 0, + 0, + 2920, 2897, 2898, + 2899, + 2900, 2901, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4384, - 2902, + 2903, + 2904, 2905, + 2906, 2907, 2909, 2910, @@ -21168,62 +19688,74 @@ const unsigned short _wind_canon_next_table[] = { 2913, 2915, 2916, + 2917, 2918, 2919, - 2920, 2921, 2922, + 2923, 2924, 2925, 2926, - 2927, 2928, + 0, + 0, + 2935, + 0, + 0, + 2942, + 0, + 0, + 2949, + 2929, + 2930, + 2931, 2932, 2933, 2934, - 2935, - 0, - 3601, - 3899, - 2968, - 2969, - 0, - 0, - 0, 2936, - 2939, - 0, - 0, + 2937, 2938, + 2939, + 2940, 2941, - 2942, 2943, 2944, 2945, + 2946, 2947, + 2948, 2950, 2951, 2952, 2953, - 3328, 2954, 2955, + 2957, + 2958, 2959, - 3551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 2960, 2961, 2963, + 2964, 2965, + 2966, 2967, + 2968, + 2970, + 2976, + 2982, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2988, 2971, 2972, 2973, @@ -21233,1514 +19765,655 @@ const unsigned short _wind_canon_next_table[] = { 2978, 2979, 2980, - 3302, - 2991, - 2992, - 0, - 0, - 2994, - 0, - 2993, - 0, 2981, 2983, 2984, 2985, 2986, 2987, - 0, - 2988, + 2989, 2990, - 2996, - 0, - 0, - 0, - 2999, - 2998, - 3001, + 2991, + 2992, + 2993, + 3139, + 3105, + 3285, + 3167, + 3067, + 3096, + 3043, + 3046, + 3049, + 3099, + 3175, + 3230, + 2995, + 3146, 3002, - 3003, - 3004, + 3278, + 2996, + 4538, + 0, + 0, + 0, + 0, + 4543, + 0, 3005, + 3702, + 2997, + 3240, + 3033, + 3102, + 3288, + 3131, + 3261, + 2999, + 3113, + 3298, + 4100, + 3055, + 3079, + 3258, + 3058, 3007, + 3093, + 3493, + 0, + 0, + 4060, + 0, + 0, + 3582, + 3445, + 3652, + 0, + 3566, + 3335, + 0, + 0, + 3000, + 3001, + 0, + 0, + 0, + 4059, + 3003, + 4564, + 3004, + 4545, + 3193, + 0, + 0, + 0, + 0, + 0, + 3006, + 3657, + 4161, + 0, + 0, + 0, + 4163, + 0, + 0, + 3457, + 0, + 3514, + 4168, 3008, 3009, - 3331, - 3010, - 3980, - 3674, - 3020, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 4273, + 4316, + 4329, + 4076, + 4395, + 4456, + 4519, 0, 0, + 4598, + 4618, + 4640, + 4660, + 4682, 3011, - 3014, + 3122, + 3256, + 0, + 0, + 3012, + 3714, + 0, + 0, + 0, + 3075, + 0, + 3293, + 0, + 3549, + 0, + 3392, + 3013, + 0, + 0, + 0, + 0, + 0, + 3713, + 3236, + 0, + 0, + 0, + 3712, + 3427, + 3125, + 3128, 3015, - 3016, - 3017, - 3018, - 3019, - 3022, - 3024, - 3025, - 3026, - 3973, - 3733, - 3337, - 3027, + 3310, 3028, - 3030, + 3394, + 3828, + 3178, + 3022, + 3872, + 3237, + 3198, + 3090, + 3110, + 3181, + 3780, + 3248, + 0, + 3512, + 3783, + 3627, + 0, + 3077, + 0, + 0, + 0, + 0, + 3265, + 3795, + 3016, + 3801, + 3017, + 0, + 0, + 0, + 0, + 0, + 3800, + 3052, + 3025, + 3408, + 3170, + 4590, + 3323, + 3194, + 3149, + 3414, + 3072, + 3326, + 3152, + 3526, + 3155, + 3087, + 3019, + 4688, + 4691, + 0, + 4693, + 0, + 0, + 0, + 0, + 3443, + 3020, + 3021, + 3857, + 3859, + 3861, + 0, 3031, + 3023, + 3863, + 3313, + 0, + 0, + 0, + 0, + 0, + 3877, + 3870, + 3024, + 4576, + 0, + 0, + 0, + 0, + 3070, + 0, + 0, + 0, + 0, + 3420, + 3306, + 3026, + 3027, + 3815, + 0, + 0, + 0, + 3817, + 3819, + 0, + 3029, + 3629, + 3823, + 3825, + 3579, + 3821, + 0, + 0, + 3030, 3032, - 3033, + 3482, + 0, + 3643, + 4004, + 3645, + 3343, + 4008, + 4006, + 0, + 4011, + 0, 3034, + 3647, + 0, + 0, + 0, 3035, - 0, - 3036, - 0, - 0, - 0, - 0, - 0, + 3061, + 3351, + 3082, + 3064, + 3354, + 3245, 3037, + 3269, + 3158, + 3161, + 3221, + 3538, + 3184, + 3164, + 3209, + 3040, + 4260, + 0, + 0, + 3437, + 0, + 3038, + 0, + 0, + 0, + 0, + 0, + 3587, + 0, + 3137, + 4276, 3039, + 3504, 3041, - 3043, + 3404, + 0, + 3601, + 0, + 0, + 0, + 4376, + 3042, + 3142, + 3603, + 3085, 3044, + 0, + 3144, + 4483, + 0, + 4488, + 0, + 4486, + 0, + 0, + 0, + 4492, 3045, - 3046, + 4490, + 0, + 4496, + 0, + 0, + 0, + 4498, + 4494, + 4500, + 0, + 0, 3047, - 3049, + 0, + 0, + 4504, + 3048, + 4506, + 3108, + 0, + 0, + 3570, + 0, + 4510, + 0, + 0, + 0, + 0, + 0, + 3379, + 4516, + 3507, 3050, 3051, - 3052, + 0, + 4522, + 3367, + 3606, + 0, + 0, + 0, + 3441, 3053, + 4573, + 0, + 0, + 3120, + 0, + 0, + 3608, + 3054, + 3056, + 3201, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4111, + 0, + 0, + 3134, + 3057, + 3059, + 0, + 4151, + 3455, + 0, + 3116, + 3655, + 4155, + 0, + 0, + 0, + 3532, + 3203, + 3477, + 4174, + 4150, + 0, + 0, + 0, + 0, + 3060, + 0, + 0, + 3565, + 4187, + 0, + 4185, + 4192, + 0, + 0, + 3792, + 0, + 3545, + 4196, + 0, + 3377, + 3062, + 3063, + 3585, + 0, + 0, + 0, + 0, + 3390, + 3243, + 0, + 4233, + 3400, + 0, + 3065, + 3066, + 3068, + 3272, + 3692, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3365, + 3439, + 3069, + 3071, + 3614, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4644, + 0, + 4646, + 0, + 0, + 3073, + 3074, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4648, + 3076, + 0, + 0, + 0, + 3426, + 3786, + 0, + 3078, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3787, + 0, + 3788, + 3080, + 0, + 4120, + 0, + 0, + 4125, + 0, + 3337, + 0, + 4130, + 3386, + 3276, + 3081, + 3083, + 3662, + 4211, + 0, + 4213, + 3189, + 0, + 4218, + 4220, + 0, + 0, + 3543, + 0, + 0, + 3118, + 3136, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3084, + 3086, + 3088, + 0, + 0, + 0, + 0, + 0, + 3173, + 0, + 3329, + 0, + 4680, + 3331, + 0, + 0, + 4685, + 3089, + 3475, + 0, + 0, + 3920, + 3091, + 3923, + 3926, + 0, + 0, + 0, + 3397, + 0, + 0, + 3928, + 3934, + 3092, + 3205, + 0, + 3349, + 0, + 0, + 0, + 4176, + 0, + 0, + 0, + 0, + 0, + 4183, + 0, + 3094, + 3319, + 3095, + 4461, + 0, + 0, + 0, + 0, + 4467, + 0, + 0, + 0, + 0, + 0, 3097, 0, 0, + 3522, + 3098, + 3694, + 0, + 0, + 0, + 0, + 3100, + 0, + 3573, + 3696, + 3101, + 3345, + 4013, + 3470, + 0, + 0, + 4016, 0, 0, 0, 0, 0, + 4018, + 3103, + 3559, 0, - 0, - 0, - 3055, - 3057, - 3059, - 3062, - 3064, - 3066, + 3283, 3104, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3068, - 3637, - 4170, - 3070, - 3578, - 3071, - 3072, - 3073, - 3074, - 3075, - 3077, - 3078, - 3080, - 3083, - 3085, - 3086, - 3088, - 3090, - 3091, - 3092, - 3093, - 4028, - 3094, - 3096, - 3099, - 3100, - 3103, - 0, - 0, - 3231, - 0, - 3102, - 3107, - 3106, - 3109, - 3110, - 3112, - 3113, - 3114, - 3115, - 3116, - 3118, - 3119, - 3120, - 3121, - 3122, - 3124, - 3295, - 3126, - 0, - 0, - 0, - 3133, - 3128, - 3129, - 3130, - 3131, - 3132, - 3135, - 3137, - 3139, - 3140, - 3141, - 3142, - 3143, - 0, - 0, - 0, - 4457, - 0, - 4464, - 0, - 4456, - 3145, - 3146, - 3147, - 3148, - 3150, - 0, - 0, - 0, - 0, - 0, - 3149, - 3159, - 0, - 0, - 0, - 0, - 0, - 3152, - 3154, - 3155, - 3156, - 3157, - 3158, - 3161, - 3162, - 3164, - 3166, - 0, - 0, - 0, - 0, - 3224, - 0, - 0, - 3221, - 3168, - 3169, - 3170, - 3787, - 0, - 3171, - 3172, - 3174, - 3175, - 3176, - 3177, - 3178, - 3180, - 3182, - 3184, - 3186, - 3188, - 3189, - 3192, - 3194, - 3196, - 3198, - 3199, - 3200, - 3201, - 3202, - 3204, - 3218, - 0, - 3206, - 3208, - 3209, - 3210, - 3211, - 3212, - 4505, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3214, - 3215, - 3217, - 3220, - 3223, - 3226, - 3265, - 0, - 0, - 3228, - 3230, 3233, - 3235, - 3236, - 3237, - 3238, - 0, - 3838, - 3264, - 0, - 0, - 0, - 0, - 3263, - 3262, - 0, - 0, - 0, - 3239, - 3241, - 3242, - 3243, - 3244, - 3245, - 0, - 3251, - 3247, - 3248, - 3250, - 3253, - 3496, - 3256, - 3257, - 3258, - 3259, - 3260, - 3261, - 3267, - 3270, - 3272, - 3275, - 3277, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3842, - 3279, - 3281, - 3282, - 3283, - 3284, - 3285, - 3287, - 3289, - 3290, - 3291, - 3292, - 3293, - 3294, - 3300, - 3301, - 0, - 3304, - 0, - 0, - 0, - 0, - 0, - 3297, - 3321, - 0, - 0, - 0, - 0, - 0, - 3299, - 3303, - 3305, - 3308, - 0, - 0, - 0, - 0, - 0, - 3307, - 0, - 0, - 3311, - 3310, - 3313, - 3314, - 3315, - 3316, - 3318, - 0, - 0, - 3317, - 3320, - 3323, - 3325, - 3327, - 3329, - 3330, - 3333, - 3332, - 3335, - 3334, - 3336, - 0, - 3339, - 0, - 3341, - 3340, - 3371, - 3379, - 4692, - 0, - 0, - 3380, - 3338, - 4468, - 0, - 0, - 0, - 3348, - 0, - 0, - 0, - 0, - 3372, - 3343, - 3344, - 3345, - 3346, - 3347, - 3350, - 3351, - 3352, - 3353, - 3354, - 3406, - 3405, - 0, - 0, - 0, - 0, - 3407, - 0, - 0, - 0, - 0, - 3356, - 3416, - 3358, - 0, - 4528, - 3360, - 3361, - 3362, - 3363, - 3397, - 3398, - 0, - 0, - 3399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3364, - 3366, - 3367, - 3368, - 3369, - 0, - 3982, - 4257, - 3370, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3396, - 3374, - 3375, - 3376, - 3377, - 3378, - 3382, - 3383, - 3384, - 3385, - 3386, - 3388, - 3389, - 3391, - 3393, - 3395, - 3401, - 3403, - 3404, - 3422, - 3409, - 3411, - 3412, - 3413, - 3414, - 3415, - 3418, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4661, - 3419, - 3421, - 3424, - 3426, - 0, - 0, - 0, - 0, - 3427, - 3429, - 3430, - 0, - 0, - 3431, - 0, - 3434, - 0, - 3441, - 3433, - 3436, - 3437, - 3438, - 3439, - 3481, - 3440, - 3443, - 3445, - 3446, - 3447, - 3448, - 3449, - 3452, - 3453, - 3454, - 3455, - 3456, - 3458, - 4004, - 3460, - 3462, - 3463, - 3464, - 3465, - 3466, - 3468, - 0, - 0, - 3469, - 3489, - 3471, - 3473, - 3474, - 3475, - 4588, - 0, - 0, - 0, - 3476, - 3480, - 0, - 0, - 3477, - 3479, - 3486, - 0, - 0, - 0, - 0, - 3483, - 3485, - 3488, - 3491, - 3493, - 3495, - 3497, - 3498, - 3499, - 3500, - 3501, - 3503, - 3504, - 3505, - 3506, - 3507, - 3510, - 0, - 0, - 0, - 3509, - 3512, - 4579, - 0, - 0, - 0, - 0, - 0, - 0, - 4551, - 4291, - 3513, - 3514, - 3515, - 3516, - 3518, - 3517, - 3520, - 0, - 0, - 0, - 3521, - 0, - 0, - 0, - 0, - 0, - 3541, - 3527, - 3529, - 3530, - 3531, - 3532, - 3533, - 3535, - 3536, - 3537, - 4109, - 0, - 3538, - 3834, - 3539, - 0, - 0, - 0, - 3540, - 0, - 0, - 0, - 0, - 0, - 3555, - 3543, - 3544, - 3546, - 3547, - 3548, - 3549, - 3550, - 3553, - 3554, - 3559, - 3562, - 3563, - 3564, - 3565, - 3566, - 3568, - 3570, - 3630, - 3629, - 0, - 0, - 0, - 0, - 3632, - 0, - 0, - 0, - 0, - 3573, - 3575, - 3577, - 3579, - 3580, - 3581, - 3582, - 3583, - 3585, - 3586, - 3587, - 3588, - 3599, - 3600, - 0, - 0, - 3589, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3638, - 3591, - 3592, - 3594, - 3595, - 3596, - 3597, - 3598, - 3636, - 0, - 0, - 3633, - 3634, - 0, - 0, - 0, - 0, - 0, - 3602, - 3604, - 3606, - 3607, - 3608, - 3609, - 3610, - 3612, - 3613, - 3615, - 3616, - 3617, - 3618, - 3619, - 3621, - 3623, - 3626, - 3631, - 0, - 0, - 0, - 3628, - 3640, - 3641, - 3642, - 3643, - 3682, - 3644, - 3646, - 3647, - 3648, - 3649, - 3650, - 3654, - 0, - 0, - 3652, - 3656, - 3658, - 3660, - 3662, - 3669, - 3671, - 3673, - 3675, - 3677, - 3678, - 3679, - 3680, - 3681, - 3685, - 3688, - 3689, - 3690, - 3691, - 0, - 4263, - 3692, - 3694, - 3695, - 3697, - 3698, - 3699, - 3700, - 3701, - 3703, - 3705, - 4515, - 3707, - 0, - 0, - 4514, - 0, - 4512, - 0, - 4524, - 3709, - 3711, - 3713, - 3716, - 3717, - 3721, - 3723, - 3725, - 3726, - 3727, - 3728, - 3729, - 3732, - 3734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3764, - 3736, - 3737, - 3738, - 3739, - 3740, - 3742, - 0, - 0, - 0, - 0, - 4510, - 4304, - 4285, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4539, - 3743, - 3745, - 3746, - 3747, - 3748, - 3749, - 3751, - 3752, - 3756, - 3755, - 3758, - 3759, - 3761, - 3763, - 3766, - 3770, - 3771, - 3772, - 3773, - 3774, - 3776, - 3778, - 0, - 3779, - 3781, - 3783, - 3784, - 3786, - 3794, - 3793, - 3792, - 0, - 0, - 0, - 0, - 3788, - 3800, - 0, - 3833, - 3790, - 3791, - 3796, - 3798, - 3802, - 0, - 0, - 0, - 0, - 3809, - 3804, - 3805, - 3806, - 3807, - 3808, - 3811, - 3812, - 3813, - 3814, - 3815, - 3817, - 3818, - 3820, - 3822, - 3823, - 3824, - 3825, - 3826, - 3828, - 0, - 0, - 3829, - 3831, - 3835, - 3837, - 3856, - 0, - 0, - 0, - 3853, - 0, - 0, - 0, - 0, - 0, - 0, - 3839, - 3857, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3841, - 3858, - 0, - 0, - 0, - 3844, - 3882, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3846, - 3848, - 3850, - 3851, - 3855, - 3860, - 3861, - 3862, - 4382, - 0, - 3863, - 3864, - 3866, - 3867, - 3869, - 3870, - 3871, - 3872, - 3873, - 3875, - 3877, - 3879, - 3881, - 3884, - 3886, - 3888, - 0, - 0, - 0, - 3937, - 3890, - 3892, - 0, - 0, - 3913, - 3938, - 0, - 0, - 0, - 0, - 0, - 0, - 3894, - 3896, - 3898, - 3900, - 3902, - 3903, - 3904, - 3905, - 3906, - 3908, - 3909, - 3910, - 3911, - 0, - 4443, - 4215, - 3933, - 3934, - 0, - 0, - 0, - 0, - 3932, - 0, - 0, - 0, - 0, - 3912, - 3915, - 3916, - 3918, - 3921, - 3922, - 3923, - 3924, - 0, - 4438, - 3929, - 3928, - 0, - 3927, - 0, - 3925, - 3926, - 0, - 0, - 0, - 0, - 3939, - 3931, - 3936, - 3941, - 3943, - 3944, - 3945, - 3946, - 3955, - 3954, - 0, - 3947, - 0, - 0, - 0, - 0, - 0, - 3959, - 3949, - 3950, - 3951, - 3952, - 3953, - 3960, - 0, - 0, - 0, - 0, - 0, - 3958, - 3957, - 0, - 0, - 0, - 3994, - 3963, - 3962, - 3965, - 3967, - 3968, - 3969, - 3970, - 3971, - 3972, - 4262, - 4229, - 4019, - 4018, - 4017, - 0, - 4016, - 0, - 4014, - 4013, - 3979, - 3978, - 3977, - 0, - 0, - 3974, - 3976, - 4015, - 4027, - 0, - 0, - 0, - 4012, - 0, - 0, - 0, - 0, - 3981, - 3984, - 0, - 0, - 0, - 3983, - 0, - 0, - 0, - 0, - 0, - 3995, - 3986, - 3987, - 3988, - 3989, - 3990, - 3992, - 3993, - 3997, - 3998, - 3999, - 4000, - 4001, - 4201, - 0, - 0, - 4003, - 4007, - 4008, - 4009, - 4010, - 4011, - 4076, - 0, - 4021, - 4022, - 4023, - 4024, - 4025, - 4026, - 4029, - 4037, - 4031, - 4032, - 4033, - 4034, - 0, - 4547, - 4039, - 4038, - 4041, - 4040, - 4035, - 0, - 0, - 4036, - 4045, - 4044, - 4071, - 4043, - 4048, - 4050, - 4051, - 4052, - 4053, - 4054, - 4055, - 4057, - 4058, - 4060, - 4082, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4062, - 4068, - 4067, - 0, - 0, - 4069, - 0, - 4070, - 0, - 4064, - 4066, - 4073, - 4075, - 4077, - 4078, - 4079, - 4080, - 4081, - 4084, - 4085, - 4086, - 4087, - 4088, - 4090, - 4092, - 4094, - 4097, - 0, - 4096, - 0, - 0, - 4101, - 4571, - 4572, - 4573, - 4574, - 4100, - 0, - 4577, - 4578, - 4560, - 4561, - 4609, - 0, - 4610, - 0, - 0, - 4613, - 4104, - 4105, - 4106, - 4107, - 4108, - 4110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4126, - 4112, - 4114, - 4116, - 4117, - 4119, - 4121, - 4123, - 4125, - 4128, - 4129, - 4130, - 4131, - 4132, - 4134, - 4137, - 4138, - 4139, - 4140, - 4141, - 4143, - 0, - 0, - 0, - 4202, - 4145, - 4189, - 0, - 0, - 4147, - 4149, - 0, - 0, - 4156, - 4151, - 4152, - 4153, - 4154, - 4155, - 4158, - 4159, - 4160, - 4161, - 4163, - 4162, - 4165, - 4166, - 4167, - 4168, - 4169, - 4171, - 4172, - 4173, - 4174, - 4175, - 4177, - 4179, - 4182, - 4181, - 4184, - 4185, - 4186, - 4187, - 4188, - 4190, - 4192, - 4193, - 4194, - 4195, - 4196, - 4199, - 4200, - 4204, - 4206, - 4209, - 4223, - 4213, - 4214, - 4216, - 4218, - 4219, - 4220, - 4221, - 4222, - 4224, - 4225, - 4226, - 4227, - 4232, - 0, - 0, - 4231, - 4235, - 0, - 0, - 0, - 4234, - 0, - 0, - 0, - 0, - 0, - 4261, - 4237, - 4238, - 4240, - 4242, - 4244, - 4246, - 4247, - 4248, - 4249, - 4250, - 4252, - 4253, - 4254, - 4255, - 4256, - 4258, - 4260, - 4264, - 4266, - 4267, - 4268, - 4269, - 4277, - 0, - 0, - 4270, - 0, - 0, - 0, - 4278, - 4272, - 4273, - 4274, - 4275, - 4276, - 4280, - 4281, - 4282, - 4283, - 4284, - 4286, - 4288, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4316, - 4290, - 4292, - 4293, - 4294, - 4295, - 4296, - 4297, - 4299, - 4300, - 4301, - 4302, - 4303, - 4305, - 4307, - 4309, - 4312, - 4311, - 0, - 0, - 0, - 0, - 0, - 4315, - 4314, - 4318, - 4320, - 4322, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4360, - 4324, - 4325, - 4326, - 4327, - 4328, - 4330, - 4331, - 4333, - 4340, - 4341, - 4349, - 4352, - 4354, - 4356, - 0, - 0, - 0, - 0, - 4359, - 4358, - 4362, - 4363, - 4364, - 4365, - 4366, - 4368, - 4370, - 4373, - 4374, - 4375, - 4376, - 4377, - 4381, - 4404, - 4405, - 0, - 4406, - 0, - 4407, - 4408, - 0, - 0, - 0, - 0, - 4383, - 4385, - 4387, - 4388, - 4391, - 4390, 4393, - 4395, + 0, + 0, 4398, 0, 0, @@ -22749,24 +20422,1743 @@ const unsigned short _wind_canon_next_table[] = { 0, 0, 0, - 4414, - 4400, - 4402, - 4410, - 4412, - 4416, - 4418, - 4419, + 0, + 0, + 3106, + 3534, + 3107, + 3109, + 3936, + 3938, + 0, + 0, + 3940, + 3341, + 0, + 0, + 3557, + 3950, + 3111, + 3575, + 3315, + 3958, + 3381, + 3112, + 4071, + 3114, + 4080, + 0, + 3495, + 4082, + 0, + 3451, + 4091, + 3530, + 0, + 0, + 0, + 0, + 0, + 3453, + 3115, + 0, + 0, + 0, + 4079, + 4153, + 3117, + 3119, + 3121, + 3721, + 0, + 3123, + 0, + 3618, + 3252, + 3124, + 0, + 0, + 0, + 0, + 3417, + 3577, + 3738, + 3295, + 3741, + 3749, + 3753, + 3755, + 3126, + 3219, + 3217, + 0, + 3764, + 3759, + 0, + 3127, + 3555, + 3371, + 3488, + 3553, + 3770, + 0, + 0, + 3772, + 3449, + 3333, + 3373, 4420, - 4421, + 3623, + 3129, + 3625, + 3308, + 3214, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3130, + 4037, + 0, + 0, + 0, + 4045, + 4047, + 0, + 3347, + 0, + 0, + 3132, + 3133, + 3135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4116, + 3138, + 3140, + 0, + 0, + 0, + 3406, + 0, + 3361, + 3187, + 3215, + 0, + 4074, + 4391, + 3141, + 0, + 0, + 0, + 3688, + 3143, + 4482, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3145, + 3704, + 4546, + 0, + 0, + 0, + 0, + 0, + 4548, + 0, + 0, + 0, + 4558, + 4556, + 0, + 3147, + 4560, + 3148, + 4611, + 3150, + 3412, + 3597, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4623, + 3708, + 3151, + 4654, + 0, + 0, + 0, + 0, + 3153, + 3154, + 4665, + 0, + 0, + 0, + 0, + 3616, + 0, + 0, + 0, + 3156, + 3157, + 4302, + 0, + 3463, + 0, + 3159, + 3666, + 0, + 0, + 3191, + 0, + 0, + 3250, + 3160, + 3321, + 3589, + 3669, + 3591, + 3593, + 3162, + 3595, + 0, + 3418, + 0, + 3357, + 0, + 4314, + 3163, + 4347, + 3465, + 3207, + 0, + 0, + 0, + 4352, + 0, + 0, + 0, + 3165, + 3224, + 4356, + 0, + 0, + 3359, + 3166, + 4430, + 4436, + 3551, + 0, + 4442, + 4432, + 0, + 0, + 0, + 4434, + 4438, + 3168, + 4446, + 4440, + 3226, + 3169, + 4444, + 0, + 4445, + 3171, + 0, + 0, + 0, + 3369, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4588, + 3172, + 3174, + 3274, + 0, + 0, + 3176, + 4535, + 3234, + 3305, + 0, + 0, + 0, + 3177, + 3842, + 0, + 0, + 3846, + 3635, + 3267, + 0, + 0, + 0, + 0, + 3637, + 0, + 0, + 3179, + 3836, + 3854, + 3197, + 0, + 0, + 0, + 0, + 0, + 0, + 3180, + 3182, + 0, + 3965, + 0, + 0, + 3905, + 3977, + 0, + 3480, + 3982, + 3254, + 0, + 3984, + 3986, + 0, + 3382, + 3183, + 3388, + 0, + 0, + 3185, + 0, + 0, + 3541, + 0, + 3599, + 0, + 3561, + 3301, + 3186, + 4387, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3188, + 3190, + 3192, + 0, + 4304, + 3447, + 0, + 3212, + 0, + 0, + 3228, + 3486, + 0, + 3524, + 3422, + 4608, + 0, + 3510, + 3195, + 3411, + 3196, + 3903, + 0, + 3907, + 3431, + 0, + 0, + 3199, + 0, + 3915, + 0, + 0, + 0, + 3913, + 3912, + 0, + 3200, + 0, + 3639, + 3492, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3640, + 3202, + 3204, + 3206, + 3264, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3208, + 3683, + 0, + 0, + 3210, + 3685, + 3211, + 3213, + 0, + 3572, + 3216, + 3218, + 0, + 3584, + 3297, + 0, + 0, + 3220, + 3222, + 0, + 0, + 3677, + 0, + 0, + 0, + 3679, + 0, + 0, + 0, + 3536, + 0, + 4327, + 3223, + 3225, + 3227, + 3229, + 0, + 0, + 3472, + 3698, + 0, + 0, + 3700, + 0, + 3547, + 0, + 0, + 3231, + 3232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4537, + 3605, + 0, + 0, + 0, + 0, + 0, + 3235, + 3886, + 0, + 0, + 3888, + 0, + 0, + 0, + 0, + 3563, + 0, + 0, + 0, + 3893, + 3895, + 3238, + 3897, + 3239, + 0, + 0, + 0, + 0, + 0, + 0, + 3430, + 3241, + 0, + 0, + 0, + 0, + 0, + 0, + 3989, + 3641, + 0, + 0, + 3999, + 0, + 3424, + 3242, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3399, + 3244, + 0, + 0, + 0, + 4229, + 4249, + 4254, + 0, + 3461, + 3291, + 3246, + 0, + 0, + 0, + 0, + 0, + 0, + 3502, + 3247, + 3249, + 3251, + 3723, + 0, + 0, + 0, + 3253, + 3255, + 3257, + 4140, + 0, + 4148, + 0, + 3281, + 0, + 0, + 4145, + 3259, + 0, + 3499, + 3260, + 4147, + 3648, + 0, + 4053, + 3262, + 0, + 3433, + 0, + 0, + 3317, + 0, + 3650, + 3263, + 3266, + 0, + 0, + 0, + 0, + 0, + 0, + 3794, + 3581, + 0, + 0, + 0, + 3268, + 3270, + 4286, + 0, + 0, + 4289, + 0, + 0, + 0, + 4293, + 3271, + 3273, + 4534, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3275, + 3277, + 4132, + 3363, + 3568, + 0, + 0, + 3339, + 0, + 0, + 4411, + 0, + 3279, + 3280, + 0, + 0, + 0, + 0, + 0, + 3706, + 3282, + 4028, + 0, + 3284, + 3963, + 0, + 0, + 0, + 0, + 0, + 3303, + 3690, + 4417, + 4415, + 0, 4422, - 4424, + 0, + 0, + 3286, + 3287, + 4426, + 4026, + 0, + 4021, + 4029, + 3384, + 4031, + 0, + 3289, + 0, + 4039, + 0, + 4033, + 3290, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4041, + 3292, + 3294, + 3740, + 0, + 0, + 3748, + 0, + 3296, + 0, + 0, + 0, + 3469, + 3484, + 0, + 0, + 0, + 4093, + 0, + 0, + 3299, + 0, + 3497, + 3300, + 0, + 0, + 0, + 3654, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4098, + 4346, + 0, + 0, + 0, + 3302, + 4345, + 3304, + 3509, + 0, + 0, + 3307, + 3309, + 0, + 0, + 0, + 0, + 3779, + 3490, + 3516, + 0, + 3806, + 3311, + 0, + 3809, + 0, + 0, + 3804, + 3811, + 3375, + 0, + 0, + 0, + 3813, + 3312, + 0, + 0, + 0, + 0, + 0, + 3808, + 3314, + 3316, + 3318, + 3320, + 3322, + 4596, + 0, + 3324, + 4601, + 3325, + 3327, + 3328, + 3330, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3529, + 3332, + 3334, + 3336, + 4129, + 0, + 0, + 0, + 0, + 3338, + 3340, + 3342, + 3344, + 3346, + 3348, + 0, + 0, + 4049, + 3659, + 3350, + 3352, + 0, + 3660, + 0, + 0, + 4205, + 0, + 0, + 3435, + 3518, + 4200, + 0, + 0, + 0, + 3353, + 3459, + 0, + 3664, + 0, + 4237, + 4239, + 3402, + 4241, + 3355, + 3520, + 0, + 0, + 4244, + 4243, + 0, + 0, + 0, + 3356, + 3358, + 3360, + 4384, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3362, + 3364, + 0, + 0, + 0, + 3479, + 3366, + 3368, + 3370, + 3372, + 3374, + 3376, + 3378, + 3380, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3506, + 3383, + 0, + 0, + 0, + 3988, + 3385, + 3387, + 3389, + 3391, + 0, + 0, + 0, + 0, + 4228, + 3393, + 3631, + 0, + 0, + 0, + 0, + 3832, + 3633, + 3834, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3395, + 3396, + 4610, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3398, + 3401, + 3403, + 4375, + 0, + 0, + 0, + 0, + 3405, + 3407, + 3409, + 0, + 0, + 0, + 4586, + 0, + 0, + 0, + 0, + 0, + 4583, + 3410, + 0, + 0, + 0, + 4582, + 3413, + 4632, + 3415, + 4634, + 3710, + 0, + 3467, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3610, + 3612, + 3416, + 3419, + 3421, + 3423, + 3425, + 3724, + 0, + 3473, + 0, + 0, + 0, + 0, + 3726, + 0, + 3728, + 0, + 0, + 3730, + 3428, + 3620, + 3429, + 3432, + 3434, + 3436, + 3438, + 4459, + 0, + 4460, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3440, + 3442, + 3444, + 3446, + 3448, + 3450, + 3452, + 3454, + 0, + 0, + 0, + 0, + 0, + 0, + 4090, + 3456, + 3458, + 3501, + 0, + 0, + 3460, + 3462, + 3464, + 3466, + 3468, + 3471, + 3474, + 3476, + 3478, + 3481, + 3483, + 0, + 0, + 0, + 4001, + 0, + 0, + 0, + 4002, + 0, + 4003, + 3485, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4099, + 3487, + 3489, + 3803, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3491, + 3494, + 3496, + 3498, + 3500, + 3503, + 3687, + 0, + 0, + 0, + 0, + 0, + 0, + 3505, + 4371, + 3508, + 3511, + 3707, + 3513, + 3515, + 3517, + 3519, + 3521, + 3523, + 3525, + 4656, + 3527, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4658, + 3528, + 3531, + 3533, + 3535, + 0, + 0, + 0, + 0, + 3689, + 3537, + 3539, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3681, + 3540, + 3542, + 3544, + 3546, + 3548, + 3550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3757, + 3552, + 3554, + 3769, + 3766, + 0, + 0, + 0, + 3556, + 3558, + 3560, + 4020, + 4342, + 0, + 0, + 0, + 3562, + 3564, + 3567, + 4566, + 0, + 0, + 3569, + 3571, + 3574, + 3576, + 3578, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3622, + 3580, + 0, + 3827, + 3583, + 3586, + 3588, + 3590, + 0, + 3668, + 3672, + 0, + 0, + 0, + 0, + 0, + 3673, + 0, + 0, + 0, + 0, + 0, + 0, + 3674, + 3592, + 3594, + 3675, + 3676, + 3596, + 3598, + 3600, + 3602, + 3604, + 3607, + 4575, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3609, + 4639, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3611, + 3613, + 3615, + 4643, + 3617, + 3619, + 3621, + 3778, + 0, + 3624, + 3626, + 3628, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3785, + 3822, + 0, + 0, + 0, + 3630, + 3632, + 3634, + 3636, + 3638, + 0, + 0, + 0, + 3849, + 3642, + 3644, + 3646, + 3649, + 3651, + 4058, + 3653, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4073, + 3656, + 4154, + 3658, + 3661, + 4210, + 0, + 0, + 3663, + 3665, + 3667, + 3671, + 3670, + 3678, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4319, + 0, + 0, + 0, + 0, + 4320, + 3680, + 3682, + 0, + 0, + 0, + 0, + 0, + 4335, + 0, + 0, + 4336, + 4358, + 0, + 0, + 0, + 0, + 0, + 0, + 3684, + 3686, + 0, + 0, + 0, + 4359, + 3691, + 3693, + 3695, + 3697, + 3699, + 3701, + 3703, + 3705, + 3709, + 3711, + 3715, + 3717, + 3850, + 3944, + 3969, + 4201, + 4267, + 3973, + 4463, + 4567, + 3760, + 3954, + 3718, + 0, + 0, + 0, + 3743, + 3735, + 0, + 4553, + 0, + 3789, + 3797, + 3719, + 3720, + 3722, + 3725, + 3727, + 3729, + 3731, + 3733, + 0, + 3746, + 0, + 3767, + 3734, + 3736, + 3737, + 3739, + 3742, + 3744, + 4198, + 0, + 3751, + 3745, + 3747, + 0, + 4523, + 3750, + 3752, + 4069, + 0, + 0, + 4070, + 0, + 3754, + 3756, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3758, + 3761, + 4615, + 0, + 4625, + 4636, + 0, + 0, + 0, + 0, + 0, + 4651, + 4613, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3762, + 3763, + 3765, + 3768, + 3771, + 3773, + 0, + 0, + 0, + 0, + 3774, + 3776, + 3777, + 3781, + 3782, + 3784, + 3790, + 3791, + 3793, + 0, + 0, + 0, + 0, + 0, + 0, + 4195, + 0, + 0, + 0, + 0, + 0, + 4194, + 3796, + 3798, + 3799, + 3802, + 3805, + 3807, + 3810, + 3812, + 3814, + 3816, + 3818, + 3820, + 3824, + 3826, + 3829, + 0, + 0, + 0, + 0, + 0, + 0, + 3844, + 0, + 0, + 0, + 3838, + 0, + 0, + 3840, + 3830, + 3831, + 3833, + 3835, + 3837, + 3839, + 3841, + 3843, + 3845, + 3848, + 3847, + 3851, + 0, + 3865, + 0, + 0, + 3890, + 0, + 3899, + 0, + 3917, + 3852, + 3853, + 3855, + 0, + 0, + 0, + 0, + 3856, + 3858, + 3860, + 3862, + 3864, + 3866, + 0, + 0, + 0, + 3868, + 3867, + 3869, + 3871, + 3873, + 3875, + 0, + 0, + 0, + 3879, + 0, + 0, + 0, + 0, + 4400, + 3874, + 3876, + 3878, + 3880, + 3882, + 3884, + 3883, + 3885, + 3887, + 3889, + 3891, + 3892, + 3894, + 3896, + 3898, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3902, + 3900, + 3901, + 3904, + 3906, + 3908, + 3910, + 3911, + 3914, + 3916, + 4136, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3918, + 3919, + 0, + 3922, + 3921, + 3925, + 0, + 0, + 3924, + 3927, + 3929, + 3930, + 3932, + 0, + 0, + 0, + 3942, + 3948, + 0, + 0, + 0, + 0, + 3967, + 0, + 3980, + 3933, + 3935, + 3937, + 3939, + 3941, + 3943, + 3945, + 0, + 3960, + 0, + 0, + 3996, + 0, + 0, + 0, + 0, + 4023, + 3946, + 4258, + 3947, + 3949, + 3951, + 0, + 0, + 3952, + 0, + 0, + 3953, + 4667, + 4672, + 4675, + 3955, + 0, + 0, + 4695, + 3956, + 3957, + 3959, + 3961, + 3962, + 3964, + 0, + 0, + 4410, + 3966, + 3968, + 4055, + 0, + 3970, + 4085, + 4095, + 0, + 4113, + 0, + 4122, + 0, + 4133, + 0, + 4142, + 4157, + 4171, + 4178, + 3971, + 3972, + 3974, + 4362, + 4372, + 4378, + 4381, + 0, + 4402, + 0, + 0, + 0, 4427, + 4448, + 4451, + 0, + 4469, + 3975, + 3976, + 3978, 0, 0, 0, - 4449, - 4450, + 0, + 0, + 0, + 0, + 0, + 3979, + 3981, + 3983, + 3985, + 3987, + 3990, + 3994, + 0, + 3992, + 3993, + 3995, + 3997, + 3998, + 4000, + 4005, + 4007, + 4009, 0, 0, 0, @@ -22776,204 +22168,812 @@ const unsigned short _wind_canon_next_table[] = { 0, 0, 0, + 0, + 4010, + 4012, + 4014, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4015, + 4017, + 4019, + 4022, + 4024, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4035, + 4025, + 4027, + 4030, + 4032, + 4034, + 4036, + 4038, + 4040, + 4043, + 0, + 0, + 0, + 4051, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4067, + 4044, + 4046, + 4050, + 0, + 0, + 0, + 0, + 0, + 0, + 4048, + 4052, + 4054, + 4056, + 4057, + 4061, + 4065, + 4063, + 0, + 0, + 4088, + 0, + 0, + 0, + 0, + 4103, + 4064, + 4066, + 4068, + 4072, + 4075, + 4354, + 0, + 0, + 4360, + 0, + 4367, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4077, + 4390, + 0, + 0, + 0, + 4078, + 4081, + 4084, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4083, + 4388, + 0, + 0, + 0, + 4407, + 0, + 0, + 4086, + 4087, + 4089, + 4092, + 4094, + 4096, + 4097, + 4101, + 0, + 0, + 4105, + 0, + 0, + 0, + 0, + 0, + 4107, + 0, + 0, + 0, + 4109, + 4102, + 4104, + 4106, + 4108, + 4110, + 4112, + 4114, + 4115, + 4118, + 0, + 0, + 4127, + 4119, + 4121, + 4123, + 4124, + 4126, + 4128, + 4131, + 4134, + 0, + 0, + 0, + 0, + 0, + 0, + 4138, + 4135, + 4137, + 4139, + 4141, + 4143, + 4144, + 4146, + 4149, + 4160, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4152, + 4156, + 4158, + 4159, + 4162, + 4164, + 4166, + 0, + 0, + 0, + 0, + 0, + 4190, + 4167, + 4170, + 0, + 0, + 0, + 4169, + 4172, + 4173, + 4175, + 4177, + 4179, + 0, + 0, + 4181, + 4180, + 4182, + 4184, + 4186, + 4189, + 0, + 0, + 4188, + 4191, + 4193, + 4197, + 4199, + 4202, + 4207, + 0, + 0, + 4215, + 4222, + 4225, + 0, + 0, + 0, + 4251, + 0, + 0, + 4262, + 4203, + 4204, + 4206, + 4208, + 4209, + 4212, + 4214, + 4216, + 4217, + 4219, + 4221, + 4223, + 4224, + 4226, + 4227, + 4231, + 4235, + 4232, + 4234, + 4236, + 4238, + 4240, + 4242, + 4245, + 4247, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4271, + 4248, + 4250, + 4252, + 0, + 0, + 0, + 0, + 0, + 4256, + 4253, + 4255, + 4257, + 4259, + 4261, + 4263, + 4265, + 4264, + 4266, + 4268, + 4281, + 0, + 0, + 4299, + 0, + 4307, + 0, + 0, + 4321, + 4324, + 4332, + 4339, + 0, + 0, + 4349, + 4269, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4278, + 4270, + 4272, + 4274, + 0, + 0, + 4291, + 4295, + 0, + 0, + 0, + 0, + 4297, + 0, + 0, + 0, + 0, + 4305, + 4275, + 4277, + 4280, + 4279, + 4282, + 0, + 4284, + 4283, + 4285, + 4287, + 4288, + 4290, + 4292, + 4294, + 4296, + 4298, + 4300, + 4301, + 4303, + 4306, + 4308, + 0, + 0, + 0, + 0, + 0, + 0, + 4310, + 0, + 0, + 4312, + 4309, + 4311, + 4313, + 4315, + 4317, + 4318, + 4322, + 4323, + 4325, + 4326, + 4328, + 4330, + 0, + 4337, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4343, + 4331, + 4333, + 4334, + 4338, + 4340, + 4341, + 4344, + 4348, + 4350, + 4351, + 4353, + 4355, + 4357, + 4361, + 4363, + 0, + 4365, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4369, + 4364, + 4366, + 4368, + 4370, + 4373, + 4374, + 4377, + 4379, + 4380, + 4382, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4385, + 4383, + 4386, + 4389, + 4392, + 4394, + 4396, + 0, + 0, + 0, + 0, + 0, + 4413, + 4397, + 4399, + 4401, + 4403, + 4405, + 4404, + 4406, + 4408, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4409, + 4412, + 4414, + 4416, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4419, + 4418, + 4421, + 4423, + 0, + 4424, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4425, + 4428, 4429, 4431, - 4432, 4433, - 4434, 4435, - 4467, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, 4437, 4439, 4441, - 4442, - 4444, - 4446, - 4448, + 4443, + 4447, + 4449, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4454, + 4450, 4452, 4453, 4455, - 4459, - 4460, - 4461, - 4462, - 4463, - 4466, - 4470, + 4457, + 0, + 0, 4472, 4474, - 4476, - 0, - 0, - 0, - 4479, 0, 0, 0, 0, 0, - 4499, - 4478, - 4481, - 4483, - 4485, - 4487, - 4490, 0, - 0, - 4491, - 4493, - 4494, - 4495, - 4496, - 4497, - 4498, 4502, 0, - 4501, - 4504, - 4506, 4508, + 4458, + 4462, + 4478, + 0, + 0, + 4464, + 0, + 0, + 4513, + 0, + 4524, + 4527, + 0, + 0, + 4540, + 0, + 0, + 4550, + 4465, + 4466, + 4468, + 4470, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4476, + 4471, + 4473, + 4475, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4481, + 4477, + 4479, + 4480, + 4484, + 0, + 4485, + 4487, + 4489, + 4491, + 4493, + 4495, + 4497, + 4499, + 4501, + 4503, + 4505, + 4507, 4509, 4511, + 0, + 0, + 4512, + 4514, + 4515, 4517, - 4519, + 0, + 0, + 0, + 0, + 0, + 0, + 4518, 4520, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4530, + 4532, 4521, - 4522, - 4523, + 4525, 4526, + 4528, + 4529, 4531, 4533, - 4534, 4536, - 4538, - 4540, + 4539, + 4541, 4542, 4544, - 4546, - 4548, - 4550, + 4547, + 4549, + 4551, 4552, - 4553, 4554, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4562, 4555, 4557, - 4556, 4559, + 4561, 4563, - 4564, 4565, - 4566, - 4567, - 4570, + 4568, + 0, + 4578, + 0, + 0, + 0, + 4593, + 0, + 4603, 4569, - 4576, - 4580, + 4571, + 4570, + 4572, + 4574, + 4577, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 4581, - 4582, - 4583, + 4579, + 4580, 4584, 4585, 4587, 4589, - 4590, + 4591, 4592, 4594, - 4596, - 4598, + 4595, + 4597, 4599, + 0, + 0, + 0, + 0, + 4606, 4600, - 4601, 4602, 4604, 4605, - 4606, 4607, - 4608, + 4609, 4612, - 4615, + 4614, + 4616, 4617, 4619, - 4620, 4621, + 0, + 0, + 0, + 4628, + 4620, 4622, - 4623, - 4625, + 4624, + 4626, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4630, 4627, 4629, - 4630, - 4632, + 4631, + 4633, + 4635, 4637, + 4638, + 4641, 0, 0, 0, - 4634, - 4636, - 4639, + 0, + 0, + 0, + 0, + 0, + 4649, 4642, 4645, - 4644, - 0, - 0, - 0, - 0, - 4646, - 0, - 0, - 0, - 0, - 4694, - 4648, - 4649, + 4647, 4650, - 4651, 4652, 4653, 4655, 4657, - 4658, - 4660, + 4659, + 4661, + 0, + 4663, + 4670, 4662, - 4671, - 0, - 0, 4664, 4666, - 4667, 4668, 4669, - 4670, + 4671, 4673, + 4674, 4676, 0, - 4675, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 4678, - 4680, + 4677, + 4679, 4681, - 4682, 4683, 4684, + 4686, + 0, + 0, + 0, + 0, 4687, - 4688, 4689, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 4690, - 4691, + 4692, + 4694, 4696, - 0, - 0, - 0, - 0, - 0, - 0, 4697, }; diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.h b/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.h index c9d7b715b35c..7d6d0364beca 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/normalize_table.h @@ -1,7 +1,7 @@ -/* $NetBSD: normalize_table.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: normalize_table.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./normalize_table.h */ -/* Automatically generated at 2019-06-07T02:26:41.685585 */ +/* Automatically generated at 2022-11-15T13:59:51.864870 */ #ifndef NORMALIZE_TABLE_H #define NORMALIZE_TABLE_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.c b/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.c index b7b7bd722a4d..ad0d739f67a5 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.c @@ -1,7 +1,7 @@ -/* $NetBSD: punycode_examples.c,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: punycode_examples.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./punycode_examples.c */ -/* Automatically generated at 2019-06-07T02:40:18.438604 */ +/* Automatically generated at 2022-11-15T14:04:18.893543 */ #ifndef PUNYCODE_EXAMPLES_C #define PUNYCODE_EXAMPLES_C 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.h b/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.h index b41b6894a7f8..d5b8b07816ec 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.h +++ b/crypto/external/bsd/heimdal/dist/lib/wind/punycode_examples.h @@ -1,7 +1,7 @@ -/* $NetBSD: punycode_examples.h,v 1.2 2019/12/15 22:50:51 christos Exp $ */ +/* $NetBSD: punycode_examples.h,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* ./punycode_examples.h */ -/* Automatically generated at 2019-06-07T02:40:18.438347 */ +/* Automatically generated at 2022-11-15T14:04:18.893502 */ #ifndef PUNYCODE_EXAMPLES_H #define PUNYCODE_EXAMPLES_H 1 diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/test-normalize.c b/crypto/external/bsd/heimdal/dist/lib/wind/test-normalize.c index 157324933dd7..11742d9f4668 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/test-normalize.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/test-normalize.c @@ -1,4 +1,4 @@ -/* $NetBSD: test-normalize.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: test-normalize.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2004 Kungliga Tekniska Högskolan @@ -157,9 +157,13 @@ main(int argc, char **argv) if (f == NULL) { const char *srcdir = getenv("srcdir"); if (srcdir != NULL) { - char longname[256]; - snprintf(longname, sizeof(longname), "%s/%s", srcdir, filename); + char *longname = NULL; + + if (asprintf(&longname, "%s/%s", srcdir, filename) == -1 || + longname == NULL) + errx(1, "Out of memory"); f = fopen(longname, "r"); + free(longname); } if (f == NULL) err(1, "open %s", filename); diff --git a/crypto/external/bsd/heimdal/dist/lib/wind/utf8.c b/crypto/external/bsd/heimdal/dist/lib/wind/utf8.c index 95fd4cde225e..8a83c30359f9 100644 --- a/crypto/external/bsd/heimdal/dist/lib/wind/utf8.c +++ b/crypto/external/bsd/heimdal/dist/lib/wind/utf8.c @@ -1,4 +1,4 @@ -/* $NetBSD: utf8.c,v 1.2 2017/01/28 21:31:50 christos Exp $ */ +/* $NetBSD: utf8.c,v 1.3 2023/06/19 21:41:45 christos Exp $ */ /* * Copyright (c) 2004, 2006, 2007, 2008 Kungliga Tekniska Högskolan @@ -207,14 +207,18 @@ wind_ucs4utf8(const uint32_t *in, size_t in_len, char *out, size_t *out_len) case 4: out[3] = (ch | 0x80) & 0xbf; ch = ch >> 6; + /* FALLTHROUGH */ case 3: out[2] = (ch | 0x80) & 0xbf; ch = ch >> 6; + /* FALLTHROUGH */ case 2: out[1] = (ch | 0x80) & 0xbf; ch = ch >> 6; + /* FALLTHROUGH */ case 1: out[0] = ch | first_char[len - 1]; + /* FALLTHROUGH */ } } out += len; @@ -482,11 +486,14 @@ wind_ucs2utf8(const uint16_t *in, size_t in_len, char *out, size_t *out_len) case 3: out[2] = (ch | 0x80) & 0xbf; ch = ch >> 6; + /* FALLTHROUGH */ case 2: out[1] = (ch | 0x80) & 0xbf; ch = ch >> 6; + /* FALLTHROUGH */ case 1: out[0] = ch | first_char[len - 1]; + /* FALLTHROUGH */ } out += len; } diff --git a/crypto/external/bsd/heimdal/include/config.h b/crypto/external/bsd/heimdal/include/config.h index 5ae2e1a07d6b..d72f5ffbddf3 100644 --- a/crypto/external/bsd/heimdal/include/config.h +++ b/crypto/external/bsd/heimdal/include/config.h @@ -858,6 +858,9 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 @@ -1443,7 +1446,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } #define PACKAGE_NAME "Heimdal" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "Heimdal 7.7.0" +#define PACKAGE_STRING "Heimdal 7.8.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "heimdal" @@ -1452,7 +1455,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "7.7.0" +#define PACKAGE_VERSION "7.8.0" /* path to PKCS11 module */ /* #undef PKCS11_MODULE_PATH */ @@ -1510,7 +1513,7 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "7.7.0" +#define VERSION "7.8.0" /* Define if signal handlers return void. */ #define VOID_RETSIGTYPE 1 @@ -1589,10 +1592,6 @@ struct sockaddr_dl; struct sockaddr_in; #endif -#ifdef __APPLE__ -#include -#endif - #ifdef ROKEN_RENAME #include "roken_rename.h" #endif @@ -1633,3 +1632,6 @@ struct sockaddr_in; #define LOGIN_PATH BINDIR "/login" #endif +#ifdef __APPLE__ +#include +#endif diff --git a/crypto/external/bsd/heimdal/include/kdc-private.h b/crypto/external/bsd/heimdal/include/kdc-private.h index 342fa48b662b..6644206576f5 100644 --- a/crypto/external/bsd/heimdal/include/kdc-private.h +++ b/crypto/external/bsd/heimdal/include/kdc-private.h @@ -179,6 +179,9 @@ _kdc_get_preferred_key ( krb5_enctype */*enctype*/, Key **/*key*/); +krb5_boolean +_kdc_is_anon_request (const KDC_REQ */*req*/); + krb5_boolean _kdc_is_anonymous ( krb5_context /*context*/,