diff --git a/0011-fix-CVE-2024-11218-CVE-2025-22869.patch b/0011-fix-CVE-2024-11218-CVE-2025-22869.patch new file mode 100644 index 0000000000000000000000000000000000000000..4cc4bfcb7101066bf8d6fc62ce2bee33c430b00c --- /dev/null +++ b/0011-fix-CVE-2024-11218-CVE-2025-22869.patch @@ -0,0 +1,70540 @@ +From fa8b0adcf97bff746a3eee9fe68a96fccbdd8a60 Mon Sep 17 00:00:00 2001 +From: Wang Tiaoke +Date: Thu, 14 Aug 2025 17:18:40 +0800 +Subject: [PATCH 11/12] fix CVE-2024-11218 CVE-2025-22869 + +--- + go.mod | 28 +- + go.sum | 103 +- + .../github.com/containers/buildah/.cirrus.yml | 4 +- + .../containers/buildah/.packit.yaml | 6 - + .../containers/buildah/CHANGELOG.md | 45 + + .../containers/buildah/changelog.txt | 40 + + .../containers/buildah/define/types.go | 42 +- + .../buildah/imagebuildah/stage_executor.go | 25 +- + .../containers/buildah/internal/open/open.go | 39 + + .../buildah/internal/open/open_linux.go | 88 + + .../buildah/internal/open/open_types.go | 28 + + .../buildah/internal/open/open_unix.go | 168 + + .../buildah/internal/open/open_unsupported.go | 7 + + .../containers/buildah/internal/types.go | 8 +- + .../buildah/internal/volumes/bind_linux.go | 102 + + .../buildah/internal/volumes/bind_notlinux.go | 15 + + .../buildah/internal/volumes/volumes.go | 427 +- + .../containers/buildah/pkg/overlay/overlay.go | 17 +- + .../buildah/pkg/overlay/overlay_linux.go | 16 + + .../pkg/overlay/overlay_unsupported.go | 20 + + vendor/github.com/containers/buildah/run.go | 12 +- + .../containers/buildah/run_common.go | 177 +- + .../containers/buildah/run_freebsd.go | 11 +- + .../containers/buildah/run_linux.go | 41 +- + .../containers/common/pkg/config/config.go | 2 +- + .../containers/image/v5/copy/progress_bars.go | 2 +- + .../image/v5/docker/docker_image.go | 6 - + .../image/v5/pkg/blobinfocache/default.go | 12 + + .../storage/drivers/overlay/overlay.go | 1 + + .../go-jose/go-jose/v3/CHANGELOG.md | 72 +- + .../github.com/go-jose/go-jose/v3/README.md | 60 +- + .../github.com/go-jose/go-jose/v3/SECURITY.md | 13 + + vendor/github.com/go-jose/go-jose/v3/doc.go | 2 - + .../go-jose/go-jose/v3/json/decode.go | 3 +- + .../go-jose/go-jose/v3/json/encode.go | 28 +- + .../go-jose/go-jose/v3/json/stream.go | 1 - + .../github.com/go-jose/go-jose/v3/opaque.go | 2 +- + .../github.com/go-jose/go-jose/v3/shared.go | 9 +- + .../hashicorp/go-retryablehttp/.go-version | 1 + + .../hashicorp/go-retryablehttp/CHANGELOG.md | 2 +- + .../hashicorp/go-retryablehttp/CODEOWNERS | 2 +- + .../github.com/mattn/go-isatty/isatty_bsd.go | 3 +- + .../mattn/go-isatty/isatty_others.go | 5 +- + .../mattn/go-isatty/isatty_tcgets.go | 3 +- + vendor/golang.org/x/crypto/LICENSE | 4 +- + .../golang.org/x/crypto/argon2/blamka_amd64.s | 2972 ++- + .../x/crypto/blake2b/blake2bAVX2_amd64.s | 5167 ++++- + .../x/crypto/blake2b/blake2b_amd64.s | 1681 +- + vendor/golang.org/x/crypto/blowfish/cipher.go | 2 +- + vendor/golang.org/x/crypto/cast5/cast5.go | 2 +- + .../x/crypto/chacha20/chacha_noasm.go | 2 +- + .../{chacha_ppc64le.go => chacha_ppc64x.go} | 2 +- + .../{chacha_ppc64le.s => chacha_ppc64x.s} | 216 +- + .../x/crypto/curve25519/curve25519.go | 39 +- + .../x/crypto/curve25519/curve25519_compat.go | 105 - + .../x/crypto/curve25519/curve25519_go120.go | 46 - + .../x/crypto/curve25519/internal/field/README | 7 - + .../x/crypto/curve25519/internal/field/fe.go | 416 - + .../curve25519/internal/field/fe_amd64.go | 15 - + .../curve25519/internal/field/fe_amd64.s | 378 - + .../internal/field/fe_amd64_noasm.go | 11 - + .../curve25519/internal/field/fe_arm64.go | 15 - + .../curve25519/internal/field/fe_arm64.s | 42 - + .../internal/field/fe_arm64_noasm.go | 11 - + .../curve25519/internal/field/fe_generic.go | 264 - + .../curve25519/internal/field/sync.checkpoint | 1 - + .../crypto/curve25519/internal/field/sync.sh | 19 - + vendor/golang.org/x/crypto/ed25519/ed25519.go | 4 +- + .../x/crypto/internal/poly1305/mac_noasm.go | 2 +- + .../x/crypto/internal/poly1305/sum_amd64.s | 133 +- + .../{sum_ppc64le.go => sum_ppc64x.go} | 2 +- + .../poly1305/{sum_ppc64le.s => sum_ppc64x.s} | 44 +- + .../x/crypto/nacl/secretbox/secretbox.go | 2 +- + vendor/golang.org/x/crypto/ocsp/ocsp.go | 15 +- + .../x/crypto/openpgp/armor/armor.go | 5 +- + .../x/crypto/openpgp/elgamal/elgamal.go | 2 +- + .../x/crypto/openpgp/errors/errors.go | 2 +- + .../x/crypto/openpgp/packet/packet.go | 2 +- + vendor/golang.org/x/crypto/openpgp/read.go | 2 +- + vendor/golang.org/x/crypto/openpgp/s2k/s2k.go | 2 +- + vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go | 2 +- + .../x/crypto/ripemd160/ripemd160.go | 2 +- + .../x/crypto/salsa20/salsa/hsalsa20.go | 2 +- + .../x/crypto/salsa20/salsa/salsa20_amd64.s | 1742 +- + vendor/golang.org/x/crypto/scrypt/scrypt.go | 2 +- + vendor/golang.org/x/crypto/sha3/doc.go | 6 +- + vendor/golang.org/x/crypto/sha3/hashes.go | 67 +- + .../x/crypto/sha3/hashes_generic.go | 27 - + .../golang.org/x/crypto/sha3/hashes_noasm.go | 23 + + .../golang.org/x/crypto/sha3/keccakf_amd64.s | 5787 +++++- + vendor/golang.org/x/crypto/sha3/register.go | 18 - + vendor/golang.org/x/crypto/sha3/sha3.go | 205 +- + vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 67 +- + vendor/golang.org/x/crypto/sha3/shake.go | 103 +- + .../golang.org/x/crypto/sha3/shake_generic.go | 19 - + .../golang.org/x/crypto/sha3/shake_noasm.go | 15 + + vendor/golang.org/x/crypto/sha3/xor.go | 23 - + .../golang.org/x/crypto/sha3/xor_generic.go | 28 - + .../golang.org/x/crypto/sha3/xor_unaligned.go | 66 - + .../golang.org/x/crypto/ssh/agent/client.go | 2 +- + .../golang.org/x/crypto/ssh/agent/keyring.go | 9 + + vendor/golang.org/x/crypto/ssh/client_auth.go | 23 +- + vendor/golang.org/x/crypto/ssh/doc.go | 2 +- + vendor/golang.org/x/crypto/ssh/handshake.go | 61 +- + vendor/golang.org/x/crypto/ssh/keys.go | 52 +- + vendor/golang.org/x/crypto/ssh/server.go | 261 +- + vendor/golang.org/x/crypto/twofish/twofish.go | 2 +- + vendor/golang.org/x/crypto/xts/xts.go | 2 +- + vendor/golang.org/x/net/html/doc.go | 2 +- + vendor/golang.org/x/net/html/token.go | 12 +- + .../golang.org/x/net/http/httpguts/httplex.go | 13 +- + vendor/golang.org/x/net/http2/frame.go | 51 +- + vendor/golang.org/x/net/http2/pipe.go | 11 +- + vendor/golang.org/x/net/http2/server.go | 24 +- + vendor/golang.org/x/net/http2/testsync.go | 331 + + vendor/golang.org/x/net/http2/transport.go | 322 +- + vendor/golang.org/x/sync/LICENSE | 4 +- + vendor/golang.org/x/sync/errgroup/errgroup.go | 1 + + .../golang.org/x/sync/semaphore/semaphore.go | 42 +- + vendor/golang.org/x/sys/LICENSE | 4 +- + .../golang.org/x/sys/cpu/asm_darwin_x86_gc.s | 17 + + vendor/golang.org/x/sys/cpu/cpu.go | 25 + + vendor/golang.org/x/sys/cpu/cpu_arm64.go | 22 + + vendor/golang.org/x/sys/cpu/cpu_arm64.s | 8 + + vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go | 61 + + vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go | 1 + + vendor/golang.org/x/sys/cpu/cpu_gc_x86.go | 4 +- + .../x/sys/cpu/{cpu_x86.s => cpu_gc_x86.s} | 2 +- + vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go | 6 - + .../golang.org/x/sys/cpu/cpu_linux_arm64.go | 9 + + .../golang.org/x/sys/cpu/cpu_linux_noinit.go | 2 +- + .../golang.org/x/sys/cpu/cpu_linux_riscv64.go | 137 + + vendor/golang.org/x/sys/cpu/cpu_other_x86.go | 11 + + vendor/golang.org/x/sys/cpu/cpu_riscv64.go | 11 +- + vendor/golang.org/x/sys/cpu/cpu_x86.go | 27 +- + .../x/sys/cpu/syscall_darwin_x86_gc.go | 98 + + vendor/golang.org/x/sys/execabs/execabs.go | 102 - + .../golang.org/x/sys/execabs/execabs_go118.go | 17 - + .../golang.org/x/sys/execabs/execabs_go119.go | 20 - + vendor/golang.org/x/sys/unix/README.md | 2 +- + vendor/golang.org/x/sys/unix/aliases.go | 2 +- + vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 665 +- + vendor/golang.org/x/sys/unix/auxv.go | 36 + + .../golang.org/x/sys/unix/auxv_unsupported.go | 13 + + vendor/golang.org/x/sys/unix/bpxsvc_zos.go | 657 + + vendor/golang.org/x/sys/unix/bpxsvc_zos.s | 192 + + vendor/golang.org/x/sys/unix/ioctl_linux.go | 96 + + vendor/golang.org/x/sys/unix/mkerrors.sh | 20 +- + vendor/golang.org/x/sys/unix/mmap_nomremap.go | 2 +- + vendor/golang.org/x/sys/unix/mremap.go | 5 + + vendor/golang.org/x/sys/unix/pagesize_unix.go | 2 +- + .../x/sys/unix/readdirent_getdirentries.go | 2 +- + vendor/golang.org/x/sys/unix/sockcmsg_zos.go | 58 + + .../golang.org/x/sys/unix/symaddr_zos_s390x.s | 75 + + vendor/golang.org/x/sys/unix/syscall_aix.go | 2 +- + .../golang.org/x/sys/unix/syscall_darwin.go | 61 + + .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- + .../x/sys/unix/syscall_dragonfly.go | 12 + + .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- + vendor/golang.org/x/sys/unix/syscall_hurd.go | 1 + + vendor/golang.org/x/sys/unix/syscall_linux.go | 164 +- + .../x/sys/unix/syscall_linux_arm64.go | 2 + + .../x/sys/unix/syscall_linux_loong64.go | 2 + + .../x/sys/unix/syscall_linux_riscv64.go | 2 + + .../golang.org/x/sys/unix/syscall_openbsd.go | 1 + + .../golang.org/x/sys/unix/syscall_solaris.go | 87 + + vendor/golang.org/x/sys/unix/syscall_unix.go | 9 + + .../x/sys/unix/syscall_zos_s390x.go | 1587 +- + vendor/golang.org/x/sys/unix/sysvshm_unix.go | 2 +- + .../x/sys/unix/sysvshm_unix_other.go | 2 +- + .../golang.org/x/sys/unix/vgetrandom_linux.go | 13 + + .../x/sys/unix/vgetrandom_unsupported.go | 11 + + .../x/sys/unix/zerrors_darwin_amd64.go | 12 + + .../x/sys/unix/zerrors_darwin_arm64.go | 12 + + vendor/golang.org/x/sys/unix/zerrors_linux.go | 129 +- + .../x/sys/unix/zerrors_linux_386.go | 31 + + .../x/sys/unix/zerrors_linux_amd64.go | 31 + + .../x/sys/unix/zerrors_linux_arm.go | 30 + + .../x/sys/unix/zerrors_linux_arm64.go | 33 + + .../x/sys/unix/zerrors_linux_loong64.go | 30 + + .../x/sys/unix/zerrors_linux_mips.go | 30 + + .../x/sys/unix/zerrors_linux_mips64.go | 30 + + .../x/sys/unix/zerrors_linux_mips64le.go | 30 + + .../x/sys/unix/zerrors_linux_mipsle.go | 30 + + .../x/sys/unix/zerrors_linux_ppc.go | 30 + + .../x/sys/unix/zerrors_linux_ppc64.go | 30 + + .../x/sys/unix/zerrors_linux_ppc64le.go | 30 + + .../x/sys/unix/zerrors_linux_riscv64.go | 30 + + .../x/sys/unix/zerrors_linux_s390x.go | 30 + + .../x/sys/unix/zerrors_linux_sparc64.go | 30 + + .../x/sys/unix/zerrors_zos_s390x.go | 235 +- + .../x/sys/unix/zsymaddr_zos_s390x.s | 364 + + .../x/sys/unix/zsyscall_darwin_amd64.go | 101 + + .../x/sys/unix/zsyscall_darwin_amd64.s | 25 + + .../x/sys/unix/zsyscall_darwin_arm64.go | 101 + + .../x/sys/unix/zsyscall_darwin_arm64.s | 25 + + .../golang.org/x/sys/unix/zsyscall_linux.go | 53 +- + .../x/sys/unix/zsyscall_openbsd_386.go | 24 + + .../x/sys/unix/zsyscall_openbsd_386.s | 5 + + .../x/sys/unix/zsyscall_openbsd_amd64.go | 24 + + .../x/sys/unix/zsyscall_openbsd_amd64.s | 5 + + .../x/sys/unix/zsyscall_openbsd_arm.go | 24 + + .../x/sys/unix/zsyscall_openbsd_arm.s | 5 + + .../x/sys/unix/zsyscall_openbsd_arm64.go | 24 + + .../x/sys/unix/zsyscall_openbsd_arm64.s | 5 + + .../x/sys/unix/zsyscall_openbsd_mips64.go | 24 + + .../x/sys/unix/zsyscall_openbsd_mips64.s | 5 + + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 24 + + .../x/sys/unix/zsyscall_openbsd_ppc64.s | 6 + + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 24 + + .../x/sys/unix/zsyscall_openbsd_riscv64.s | 5 + + .../x/sys/unix/zsyscall_solaris_amd64.go | 114 + + .../x/sys/unix/zsyscall_zos_s390x.go | 3113 ++- + .../x/sys/unix/zsysnum_linux_386.go | 10 + + .../x/sys/unix/zsysnum_linux_amd64.go | 11 + + .../x/sys/unix/zsysnum_linux_arm.go | 10 + + .../x/sys/unix/zsysnum_linux_arm64.go | 12 +- + .../x/sys/unix/zsysnum_linux_loong64.go | 12 + + .../x/sys/unix/zsysnum_linux_mips.go | 10 + + .../x/sys/unix/zsysnum_linux_mips64.go | 10 + + .../x/sys/unix/zsysnum_linux_mips64le.go | 10 + + .../x/sys/unix/zsysnum_linux_mipsle.go | 10 + + .../x/sys/unix/zsysnum_linux_ppc.go | 10 + + .../x/sys/unix/zsysnum_linux_ppc64.go | 10 + + .../x/sys/unix/zsysnum_linux_ppc64le.go | 10 + + .../x/sys/unix/zsysnum_linux_riscv64.go | 12 +- + .../x/sys/unix/zsysnum_linux_s390x.go | 10 + + .../x/sys/unix/zsysnum_linux_sparc64.go | 10 + + .../x/sys/unix/zsysnum_zos_s390x.go | 5507 ++--- + .../x/sys/unix/ztypes_darwin_amd64.go | 73 + + .../x/sys/unix/ztypes_darwin_arm64.go | 73 + + .../x/sys/unix/ztypes_freebsd_386.go | 1 + + .../x/sys/unix/ztypes_freebsd_amd64.go | 1 + + .../x/sys/unix/ztypes_freebsd_arm.go | 1 + + .../x/sys/unix/ztypes_freebsd_arm64.go | 1 + + .../x/sys/unix/ztypes_freebsd_riscv64.go | 1 + + vendor/golang.org/x/sys/unix/ztypes_linux.go | 335 +- + .../golang.org/x/sys/unix/ztypes_linux_386.go | 8 - + .../x/sys/unix/ztypes_linux_amd64.go | 9 - + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 9 - + .../x/sys/unix/ztypes_linux_arm64.go | 9 - + .../x/sys/unix/ztypes_linux_loong64.go | 9 - + .../x/sys/unix/ztypes_linux_mips.go | 9 - + .../x/sys/unix/ztypes_linux_mips64.go | 9 - + .../x/sys/unix/ztypes_linux_mips64le.go | 9 - + .../x/sys/unix/ztypes_linux_mipsle.go | 9 - + .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 9 - + .../x/sys/unix/ztypes_linux_ppc64.go | 9 - + .../x/sys/unix/ztypes_linux_ppc64le.go | 9 - + .../x/sys/unix/ztypes_linux_riscv64.go | 42 +- + .../x/sys/unix/ztypes_linux_s390x.go | 9 - + .../x/sys/unix/ztypes_linux_sparc64.go | 9 - + .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 152 +- + vendor/golang.org/x/sys/windows/aliases.go | 2 +- + .../golang.org/x/sys/windows/dll_windows.go | 13 +- + .../x/sys/windows/security_windows.go | 25 +- + .../x/sys/windows/syscall_windows.go | 134 +- + .../golang.org/x/sys/windows/types_windows.go | 223 +- + .../x/sys/windows/zsyscall_windows.go | 286 +- + vendor/golang.org/x/term/LICENSE | 4 +- + vendor/golang.org/x/term/README.md | 11 +- + vendor/golang.org/x/term/term_windows.go | 1 + + vendor/golang.org/x/text/LICENSE | 4 +- + .../x/tools/go/ast/inspector/typeof.go | 4 +- + .../x/tools/go/gcexportdata/gcexportdata.go | 2 +- + .../tools/go/internal/packagesdriver/sizes.go | 15 +- + vendor/golang.org/x/tools/go/packages/doc.go | 44 +- + .../x/tools/go/packages/external.go | 79 +- + .../golang.org/x/tools/go/packages/golist.go | 111 +- + .../x/tools/go/packages/golist_overlay.go | 492 - + .../x/tools/go/packages/packages.go | 374 +- + .../x/tools/go/types/objectpath/objectpath.go | 150 +- + .../x/tools/internal/aliases/aliases.go | 32 + + .../x/tools/internal/aliases/aliases_go121.go | 31 + + .../x/tools/internal/aliases/aliases_go122.go | 63 + + .../x/tools/internal/event/keys/util.go | 21 + + .../x/tools/internal/event/tag/tag.go | 59 - + .../x/tools/internal/gcimporter/gcimporter.go | 7 - + .../x/tools/internal/gcimporter/iexport.go | 64 +- + .../x/tools/internal/gcimporter/iimport.go | 113 +- + .../internal/gcimporter/support_go117.go | 16 - + .../internal/gcimporter/support_go118.go | 3 - + .../x/tools/internal/gcimporter/unified_no.go | 4 +- + .../tools/internal/gcimporter/unified_yes.go | 4 +- + .../x/tools/internal/gcimporter/ureader_no.go | 19 - + .../tools/internal/gcimporter/ureader_yes.go | 10 +- + .../x/tools/internal/gocommand/invoke.go | 40 +- + .../x/tools/internal/gocommand/vendor.go | 54 + + .../internal/packagesinternal/packages.go | 8 - + .../x/tools/internal/pkgbits/decoder.go | 4 + + .../x/tools/internal/stdlib/manifest.go | 17320 ++++++++++++++++ + .../x/tools/internal/stdlib/stdlib.go | 97 + + .../internal/tokeninternal/tokeninternal.go | 28 +- + .../x/tools/internal/typeparams/common.go | 204 - + .../x/tools/internal/typeparams/coretype.go | 122 - + .../internal/typeparams/enabled_go117.go | 12 - + .../internal/typeparams/enabled_go118.go | 15 - + .../x/tools/internal/typeparams/normalize.go | 218 - + .../x/tools/internal/typeparams/termlist.go | 163 - + .../internal/typeparams/typeparams_go117.go | 197 - + .../internal/typeparams/typeparams_go118.go | 151 - + .../x/tools/internal/typeparams/typeterm.go | 169 - + .../tools/internal/typesinternal/errorcode.go | 6 +- + .../internal/typesinternal/objectpath.go | 24 - + .../x/tools/internal/typesinternal/recv.go | 43 + + .../x/tools/internal/typesinternal/toonew.go | 89 + + .../x/tools/internal/typesinternal/types.go | 2 - + .../tools/internal/typesinternal/types_118.go | 19 - + .../x/tools/internal/versions/features.go | 43 + + .../x/tools/internal/versions/gover.go | 172 + + .../x/tools/internal/versions/toolchain.go | 14 + + .../internal/versions/toolchain_go119.go | 14 + + .../internal/versions/toolchain_go120.go | 14 + + .../internal/versions/toolchain_go121.go | 14 + + .../x/tools/internal/versions/types.go | 19 + + .../x/tools/internal/versions/types_go121.go | 30 + + .../x/tools/internal/versions/types_go122.go | 41 + + .../x/tools/internal/versions/versions.go | 57 + + .../gopkg.in/go-jose/go-jose.v2/CHANGELOG.md | 2 +- + vendor/gopkg.in/go-jose/go-jose.v2/README.md | 4 + + vendor/modules.txt | 39 +- + 321 files changed, 49025 insertions(+), 11401 deletions(-) + create mode 100644 vendor/github.com/containers/buildah/internal/open/open.go + create mode 100644 vendor/github.com/containers/buildah/internal/open/open_linux.go + create mode 100644 vendor/github.com/containers/buildah/internal/open/open_types.go + create mode 100644 vendor/github.com/containers/buildah/internal/open/open_unix.go + create mode 100644 vendor/github.com/containers/buildah/internal/open/open_unsupported.go + create mode 100644 vendor/github.com/containers/buildah/internal/volumes/bind_linux.go + create mode 100644 vendor/github.com/containers/buildah/internal/volumes/bind_notlinux.go + create mode 100644 vendor/github.com/containers/buildah/pkg/overlay/overlay_unsupported.go + create mode 100644 vendor/github.com/go-jose/go-jose/v3/SECURITY.md + create mode 100644 vendor/github.com/hashicorp/go-retryablehttp/.go-version + rename vendor/golang.org/x/crypto/chacha20/{chacha_ppc64le.go => chacha_ppc64x.go} (89%) + rename vendor/golang.org/x/crypto/chacha20/{chacha_ppc64le.s => chacha_ppc64x.s} (66%) + delete mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519_compat.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519_go120.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/README + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.s + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64_noasm.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.s + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64_noasm.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/sync.checkpoint + delete mode 100644 vendor/golang.org/x/crypto/curve25519/internal/field/sync.sh + rename vendor/golang.org/x/crypto/internal/poly1305/{sum_ppc64le.go => sum_ppc64x.go} (95%) + rename vendor/golang.org/x/crypto/internal/poly1305/{sum_ppc64le.s => sum_ppc64x.s} (85%) + delete mode 100644 vendor/golang.org/x/crypto/sha3/hashes_generic.go + create mode 100644 vendor/golang.org/x/crypto/sha3/hashes_noasm.go + delete mode 100644 vendor/golang.org/x/crypto/sha3/register.go + delete mode 100644 vendor/golang.org/x/crypto/sha3/shake_generic.go + create mode 100644 vendor/golang.org/x/crypto/sha3/shake_noasm.go + delete mode 100644 vendor/golang.org/x/crypto/sha3/xor.go + delete mode 100644 vendor/golang.org/x/crypto/sha3/xor_generic.go + delete mode 100644 vendor/golang.org/x/crypto/sha3/xor_unaligned.go + create mode 100644 vendor/golang.org/x/net/http2/testsync.go + create mode 100644 vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s + create mode 100644 vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go + rename vendor/golang.org/x/sys/cpu/{cpu_x86.s => cpu_gc_x86.s} (94%) + create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go + create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_x86.go + create mode 100644 vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go + delete mode 100644 vendor/golang.org/x/sys/execabs/execabs.go + delete mode 100644 vendor/golang.org/x/sys/execabs/execabs_go118.go + delete mode 100644 vendor/golang.org/x/sys/execabs/execabs_go119.go + create mode 100644 vendor/golang.org/x/sys/unix/auxv.go + create mode 100644 vendor/golang.org/x/sys/unix/auxv_unsupported.go + create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.go + create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.s + create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_zos.go + create mode 100644 vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s + create mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_linux.go + create mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go + create mode 100644 vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s + create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases.go + create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go121.go + create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go122.go + create mode 100644 vendor/golang.org/x/tools/internal/event/keys/util.go + delete mode 100644 vendor/golang.org/x/tools/internal/event/tag/tag.go + delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/support_go117.go + delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go + create mode 100644 vendor/golang.org/x/tools/internal/stdlib/manifest.go + create mode 100644 vendor/golang.org/x/tools/internal/stdlib/stdlib.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/common.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/coretype.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/normalize.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/termlist.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go + delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeterm.go + delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/objectpath.go + create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/recv.go + create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/toonew.go + delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/types_118.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/features.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/gover.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go119.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go120.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go121.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/types.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go121.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go122.go + create mode 100644 vendor/golang.org/x/tools/internal/versions/versions.go + create mode 100644 vendor/gopkg.in/go-jose/go-jose.v2/README.md + +diff --git a/go.mod b/go.mod +index 94524d8166..6433838989 100644 +--- a/go.mod ++++ b/go.mod +@@ -11,13 +11,13 @@ require ( + github.com/checkpoint-restore/go-criu/v7 v7.0.0 + github.com/containernetworking/cni v1.1.2 + github.com/containernetworking/plugins v1.3.0 +- github.com/containers/buildah v1.33.11 ++ github.com/containers/buildah v1.33.12 + github.com/containers/common v0.57.7 + github.com/containers/conmon v2.0.20+incompatible + github.com/containers/gvisor-tap-vsock v0.7.2 +- github.com/containers/image/v5 v5.29.4 ++ github.com/containers/image/v5 v5.29.5 + github.com/containers/libhvee v0.5.0 +- github.com/containers/ocicrypt v1.1.9 ++ github.com/containers/ocicrypt v1.1.10 + github.com/containers/psgo v1.8.0 + github.com/containers/storage v1.51.2 + github.com/coreos/go-systemd/v22 v22.5.1-0.20231103132048-7d375ecc2b09 +@@ -67,11 +67,11 @@ require ( + github.com/vishvananda/netlink v1.2.1-beta.2 + go.etcd.io/bbolt v1.3.8 + golang.org/x/exp v0.0.0-20231006140011-7918f672742d +- golang.org/x/net v0.18.0 +- golang.org/x/sync v0.6.0 +- golang.org/x/sys v0.16.0 +- golang.org/x/term v0.16.0 +- golang.org/x/text v0.14.0 ++ golang.org/x/net v0.25.0 ++ golang.org/x/sync v0.11.0 ++ golang.org/x/sys v0.30.0 ++ golang.org/x/term v0.29.0 ++ golang.org/x/text v0.22.0 + google.golang.org/protobuf v1.33.0 + gopkg.in/inf.v0 v0.9.1 + gopkg.in/yaml.v3 v3.0.1 +@@ -114,7 +114,7 @@ require ( + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/gin-gonic/gin v1.9.1 // indirect +- github.com/go-jose/go-jose/v3 v3.0.1 // indirect ++ github.com/go-jose/go-jose/v3 v3.0.3 // indirect + github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect +@@ -155,7 +155,7 @@ require ( + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/manifoldco/promptui v0.9.0 // indirect +- github.com/mattn/go-isatty v0.0.19 // indirect ++ github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mdlayher/socket v0.4.1 // indirect + github.com/miekg/pkcs11 v1.1.1 // indirect +@@ -205,10 +205,10 @@ require ( + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/arch v0.5.0 // indirect +- golang.org/x/crypto v0.18.0 // indirect +- golang.org/x/mod v0.13.0 // indirect ++ golang.org/x/crypto v0.23.0 // indirect ++ golang.org/x/mod v0.17.0 // indirect + golang.org/x/oauth2 v0.14.0 // indirect +- golang.org/x/tools v0.14.0 // indirect ++ golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect + google.golang.org/grpc v1.58.3 // indirect +@@ -217,3 +217,5 @@ require ( + gopkg.in/yaml.v2 v2.4.0 // indirect + tags.cncf.io/container-device-interface/specs-go v0.6.0 // indirect + ) ++ ++replace golang.org/x/crypto => github.com/openshift/golang-crypto v0.33.1-0.20250310193910-9003f682e581 +diff --git a/go.sum b/go.sum +index 47153a8efc..b492911c97 100644 +--- a/go.sum ++++ b/go.sum +@@ -258,16 +258,16 @@ github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHV + github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= + github.com/containernetworking/plugins v1.3.0 h1:QVNXMT6XloyMUoO2wUOqWTC1hWFV62Q6mVDp5H1HnjM= + github.com/containernetworking/plugins v1.3.0/go.mod h1:Pc2wcedTQQCVuROOOaLBPPxrEXqqXBFt3cZ+/yVg6l0= +-github.com/containers/buildah v1.33.11 h1:WhEw4xD251utfeb3Huijb/yiTY62tqh8IzchcbnQ2rA= +-github.com/containers/buildah v1.33.11/go.mod h1:MtL+0XpZL5csljQDshjeQfvjzyTV0hgZsSoExmO3eu8= ++github.com/containers/buildah v1.33.12 h1:6/X3LPnl+xXel4TNNMSjp5I5ztkpxeW3xSkLvF1IiSI= ++github.com/containers/buildah v1.33.12/go.mod h1:TamPaH3SP4NP1ChtYYXWq0zE9vmaO7hX21nRAfCrcW0= + github.com/containers/common v0.57.7 h1:xA6/dXNbScnaytcFNQKTFGn6VDxwvDlCngJtfdGAf7g= + github.com/containers/common v0.57.7/go.mod h1:GRtgIWNPc8zmo/vcA7VoZfLWpgQRH01/kzQbeNZH8WQ= + github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg= + github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= + github.com/containers/gvisor-tap-vsock v0.7.2 h1:6CyU5D85C0/DciRRd7W0bPljK4FAS+DPrrHEQMHfZKY= + github.com/containers/gvisor-tap-vsock v0.7.2/go.mod h1:6NiTxh2GCVxZQLPzfuEB78/Osp2Usd9uf6nLdd6PiUY= +-github.com/containers/image/v5 v5.29.4 h1:EbYrwOscTvzeCXt4149OtU74T/ZuohEottcs/hz47O4= +-github.com/containers/image/v5 v5.29.4/go.mod h1:kQ7qcDsps424ZAz24thD+x7+dJw1vgur3A9tTDsj97E= ++github.com/containers/image/v5 v5.29.5 h1:hMA9TBrk/tpXX7tYHTjbuyJ6L04Hm+m97+CZaU0VGwI= ++github.com/containers/image/v5 v5.29.5/go.mod h1:kQ7qcDsps424ZAz24thD+x7+dJw1vgur3A9tTDsj97E= + github.com/containers/libhvee v0.5.0 h1:rDhfG2NI8Q+VgeXht2dXezanxEdpj9pHqYX3vWfOGUw= + github.com/containers/libhvee v0.5.0/go.mod h1:yvU3Em2u1ZLl2VLd2glMIBWriBwfhWsDaRJsvixUIB0= + github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA= +@@ -277,8 +277,8 @@ github.com/containers/luksy v0.0.0-20231030195837-b5a7f79da98b/go.mod h1:menB9p4 + github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= + github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= + github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +-github.com/containers/ocicrypt v1.1.9 h1:2Csfba4jse85Raxk5HIyEk8OwZNjRvfkhEGijOjIdEM= +-github.com/containers/ocicrypt v1.1.9/go.mod h1:dTKx1918d8TDkxXvarscpNVY+lyPakPNFN4jwA9GBys= ++github.com/containers/ocicrypt v1.1.10 h1:r7UR6o8+lyhkEywetubUUgcKFjOWOaWz8cEBrCPX0ic= ++github.com/containers/ocicrypt v1.1.10/go.mod h1:YfzSSr06PTHQwSTUKqDSjish9BeW1E4HUmreluQcMd8= + github.com/containers/psgo v1.8.0 h1:2loGekmGAxM9ir5OsXWEfGwFxorMPYnc6gEDsGFQvhY= + github.com/containers/psgo v1.8.0/go.mod h1:T8ZxnX3Ur4RvnhxFJ7t8xJ1F48RhiZB4rSrOaR/qGHc= + github.com/containers/storage v1.43.0/go.mod h1:uZ147thiIFGdVTjMmIw19knttQnUCl3y9zjreHrg11s= +@@ -387,6 +387,7 @@ github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a h1:yDWHCSQ40h88yi + github.com/facebookgo/limitgroup v0.0.0-20150612190941-6abd8d71ec01 h1:IeaD1VDVBPlx3viJT9Md8if8IxxJnO+x0JCGb054heg= + github.com/facebookgo/muster v0.0.0-20150708232844-fd3d7953fd52 h1:a4DFiKFJiDRGFD1qIcqGLX/WlUMD9dyLSLDt+9QZgt8= + github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= ++github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= + github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= + github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= + github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +@@ -413,8 +414,8 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9 + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= + github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +-github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= +-github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= ++github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= ++github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= + github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= + github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= + github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +@@ -640,8 +641,7 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY + github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= + github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= + github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +-github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= +-github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= ++github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= + github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= + github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= + github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +@@ -749,9 +749,10 @@ github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsI + github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= + github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= + github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= ++github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= + github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +-github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +-github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= ++github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= ++github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= + github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= + github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= + github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +@@ -886,6 +887,8 @@ github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuh + github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= + github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= + github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= ++github.com/openshift/golang-crypto v0.33.1-0.20250310193910-9003f682e581 h1:YWomd7tA7icznvjpDrSJ8Ksfd0xPWG4E0nEBhvABjSA= ++github.com/openshift/golang-crypto v0.33.1-0.20250310193910-9003f682e581/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= + github.com/openshift/imagebuilder v1.2.6-0.20231110114814-35a50d57f722 h1:vhEmg+NeucmSYnT2j9ukkZLrR/ZOFUuUiGhxlBAlW8U= + github.com/openshift/imagebuilder v1.2.6-0.20231110114814-35a50d57f722/go.mod h1:+rSifDZnwJPSW2uYHl7ePSVxq4DEu1VlhNR1uIz/Lm4= + github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +@@ -1163,27 +1166,6 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= + golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= + golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= + golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +-golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +-golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +-golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +-golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +-golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +-golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +-golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +-golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +-golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +-golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +-golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= + golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +@@ -1218,8 +1200,11 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +-golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +-golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= ++golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= ++golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= ++golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= ++golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= ++golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= + golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +@@ -1229,7 +1214,6 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r + golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +@@ -1262,11 +1246,12 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b + golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= + golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= + golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= + golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +-golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +-golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= ++golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= ++golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= ++golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= ++golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= ++golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= + golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= + golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +@@ -1287,8 +1272,12 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ + golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= ++golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= + golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= ++golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= ++golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= ++golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= + golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +@@ -1297,7 +1286,6 @@ golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5h + golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +@@ -1377,19 +1365,25 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc + golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= ++golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +-golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= ++golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +-golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +-golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= ++golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= ++golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= ++golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= ++golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= ++golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= ++golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= + golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +@@ -1400,9 +1394,12 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= + golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= + golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= + golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= ++golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= ++golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= + golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= ++golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= ++golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= ++golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= + golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +@@ -1460,8 +1457,10 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f + golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= + golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= + golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +-golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +-golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= ++golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= ++golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= ++golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= ++golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= + golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +diff --git a/vendor/github.com/containers/buildah/.cirrus.yml b/vendor/github.com/containers/buildah/.cirrus.yml +index 5d999641b3..a046ea9cfa 100644 +--- a/vendor/github.com/containers/buildah/.cirrus.yml ++++ b/vendor/github.com/containers/buildah/.cirrus.yml +@@ -6,7 +6,7 @@ env: + #### Global variables used for all tasks + #### + # Name of the ultimate destination branch for this CI run, PR or post-merge. +- DEST_BRANCH: "main" ++ DEST_BRANCH: "release-1.33" + GOPATH: "/var/tmp/go" + GOSRC: "${GOPATH}/src/github.com/containers/buildah" + # Overrides default location (/tmp/cirrus) for repo clone +@@ -137,10 +137,8 @@ cross_build_task: + alias: cross_build + only_if: >- + $CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' +- + env: + HOME: /root +- + script: + - go version + - make cross CGO_ENABLED=0 +diff --git a/vendor/github.com/containers/buildah/.packit.yaml b/vendor/github.com/containers/buildah/.packit.yaml +index 76b297c14a..07cb599ee4 100644 +--- a/vendor/github.com/containers/buildah/.packit.yaml ++++ b/vendor/github.com/containers/buildah/.packit.yaml +@@ -18,12 +18,6 @@ jobs: + targets: + - fedora-all-x86_64 + - fedora-all-aarch64 +- - fedora-eln-x86_64 +- - fedora-eln-aarch64 +- - centos-stream+epel-next-8-x86_64 +- - centos-stream+epel-next-8-aarch64 +- - centos-stream+epel-next-9-x86_64 +- - centos-stream+epel-next-9-aarch64 + additional_repos: + - "copr://rhcontainerbot/podman-next" + +diff --git a/vendor/github.com/containers/buildah/CHANGELOG.md b/vendor/github.com/containers/buildah/CHANGELOG.md +index c46eb3ed91..d8764a67ac 100644 +--- a/vendor/github.com/containers/buildah/CHANGELOG.md ++++ b/vendor/github.com/containers/buildah/CHANGELOG.md +@@ -2,6 +2,51 @@ + + # Changelog + ++## v1.33.12 (2025-01-20) ++ ++ Fix TOCTOU error when bind and cache mounts use "src" values ++ define.TempDirForURL(): always use an intermediate subdirectory ++ internal/volume.GetBindMount(): discard writes in bind mounts ++ pkg/overlay: add a MountLabel flag to Options ++ pkg/overlay: add a ForceMount flag to Options ++ Add internal/volumes.bindFromChroot() ++ Add an internal/open package ++ Allow cache mounts to be stages or additional build contexts ++ Disable most packit copr targets ++ Integration tests: switch some base images ++ [release-1.33] Bump to Buildah v1.33.11 ++ [release-1.33] Bump c/storage to v1.51.2, fixes CVE-2024-9676 ++ [release-1.33] Bump Buildah to v1.33.10 ++ [release-1.33] CVE-2024-9407: validate "bind-propagation" flag settings ++ [release-1.33] Properly validate cache IDs and sources ++ vendor: update c/common to v0.57.7 ++ [release-1.33] Bump to v1.33.9 ++ [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ Cross-build on Fedora ++ ++## v1.33.11 (2024-10-25) ++ ++ [release-1.33] Bump c/storage to v1.51.2, fixes CVE-2024-9676 ++ ++## v1.33.10 (2024-10-17) ++ ++ [release-1.33] Properly validate cache IDs and sources ++ vendor: update c/common to v0.57.7 ++ [release-1.33] Bump to v1.33.9 ++ [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ Cross-build on Fedora ++ ++## v1.33.9 (2024-07-16) ++ ++ [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ ++## v1.33.8 (2024-05-17) ++ ++ [release-1.33] Bump c/image v5.29.3, c/common v0.57.5, CVE-2024-3727 ++ integration test: handle new labels in "bud and test --unsetlabel" ++ [release-1.33] Bump go-jose CVE-2024-28180 ++ [release-1.33] Bump ocicrypt and go-jose CVE-2024-28180 ++ + ## v1.33.7 (2024-03-18) + + CVE-2024-1753 container escape fix +diff --git a/vendor/github.com/containers/buildah/changelog.txt b/vendor/github.com/containers/buildah/changelog.txt +index ef2049f38a..c33668f0d2 100644 +--- a/vendor/github.com/containers/buildah/changelog.txt ++++ b/vendor/github.com/containers/buildah/changelog.txt +@@ -1,3 +1,43 @@ ++- Changelog for v1.33.12 (2025-01-20) ++ * Fix TOCTOU error when bind and cache mounts use "src" values ++ * define.TempDirForURL(): always use an intermediate subdirectory ++ * internal/volume.GetBindMount(): discard writes in bind mounts ++ * pkg/overlay: add a MountLabel flag to Options ++ * pkg/overlay: add a ForceMount flag to Options ++ * Add internal/volumes.bindFromChroot() ++ * Add an internal/open package ++ * Allow cache mounts to be stages or additional build contexts ++ * Disable most packit copr targets ++ * Integration tests: switch some base images ++ * [release-1.33] Bump to Buildah v1.33.11 ++ * [release-1.33] Bump c/storage to v1.51.2, fixes CVE-2024-9676 ++ * [release-1.33] Bump Buildah to v1.33.10 ++ * [release-1.33] CVE-2024-9407: validate "bind-propagation" flag settings ++ * [release-1.33] Properly validate cache IDs and sources ++ * vendor: update c/common to v0.57.7 ++ * [release-1.33] Bump to v1.33.9 ++ * [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ * Cross-build on Fedora ++ ++- Changelog for v1.33.11 (2024-10-25) ++ * [release-1.33] Bump c/storage to v1.51.2, fixes CVE-2024-9676 ++ ++- Changelog for v1.33.10 (2024-10-17) ++ * [release-1.33] Properly validate cache IDs and sources ++ * vendor: update c/common to v0.57.7 ++ * [release-1.33] Bump to v1.33.9 ++ * [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ * Cross-build on Fedora ++ ++- Changelog for v1.33.9 (2024-07-16) ++ * [release-1.33] Fixes Listing tags in JFrog Artifactory may fail ++ ++- Changelog for v1.33.8 (2024-05-17) ++ * [release-1.33] Bump c/image v5.29.3, c/common v0.57.5, CVE-2024-3727 ++ * integration test: handle new labels in "bud and test --unsetlabel" ++ * [release-1.33] Bump go-jose CVE-2024-28180 ++ * [release-1.33] Bump ocicrypt and go-jose CVE-2024-28180 ++ + - Changelog for v1.33.7 (2024-03-18) + * CVE-2024-1753 container escape fix + * tests: skip_if_no_unshare(): check for --setuid +diff --git a/vendor/github.com/containers/buildah/define/types.go b/vendor/github.com/containers/buildah/define/types.go +index 0e1e96366a..fdac857b1b 100644 +--- a/vendor/github.com/containers/buildah/define/types.go ++++ b/vendor/github.com/containers/buildah/define/types.go +@@ -29,7 +29,7 @@ const ( + // identify working containers. + Package = "buildah" + // Version for the Package. Also used by .packit.sh for Packit builds. +- Version = "1.33.11" ++ Version = "1.33.12" + + // DefaultRuntime if containers.conf fails. + DefaultRuntime = "runc" +@@ -130,13 +130,13 @@ type ConfidentialWorkloadOptions struct { + FirmwareLibrary string + } + +-// TempDirForURL checks if the passed-in string looks like a URL or -. If it is, +-// TempDirForURL creates a temporary directory, arranges for its contents to be +-// the contents of that URL, and returns the temporary directory's path, along +-// with the name of a subdirectory which should be used as the build context +-// (which may be empty or "."). Removal of the temporary directory is the +-// responsibility of the caller. If the string doesn't look like a URL, +-// TempDirForURL returns empty strings and a nil error code. ++// TempDirForURL checks if the passed-in string looks like a URL or "-". If it ++// is, TempDirForURL creates a temporary directory, arranges for its contents ++// to be the contents of that URL, and returns the temporary directory's path, ++// along with the relative name of a subdirectory which should be used as the ++// build context (which may be empty or "."). Removal of the temporary ++// directory is the responsibility of the caller. If the string doesn't look ++// like a URL or "-", TempDirForURL returns empty strings and a nil error code. + func TempDirForURL(dir, prefix, url string) (name string, subdir string, err error) { + if !strings.HasPrefix(url, "http://") && + !strings.HasPrefix(url, "https://") && +@@ -149,19 +149,24 @@ func TempDirForURL(dir, prefix, url string) (name string, subdir string, err err + if err != nil { + return "", "", fmt.Errorf("creating temporary directory for %q: %w", url, err) + } ++ downloadDir := filepath.Join(name, "download") ++ if err = os.MkdirAll(downloadDir, 0o700); err != nil { ++ return "", "", fmt.Errorf("creating directory %q for %q: %w", downloadDir, url, err) ++ } + urlParsed, err := urlpkg.Parse(url) + if err != nil { + return "", "", fmt.Errorf("parsing url %q: %w", url, err) + } + if strings.HasPrefix(url, "git://") || strings.HasSuffix(urlParsed.Path, ".git") { +- combinedOutput, gitSubDir, err := cloneToDirectory(url, name) ++ combinedOutput, gitSubDir, err := cloneToDirectory(url, downloadDir) + if err != nil { + if err2 := os.RemoveAll(name); err2 != nil { + logrus.Debugf("error removing temporary directory %q: %v", name, err2) + } + return "", "", fmt.Errorf("cloning %q to %q:\n%s: %w", url, name, string(combinedOutput), err) + } +- return name, gitSubDir, nil ++ logrus.Debugf("Build context is at %q", filepath.Join(downloadDir, gitSubDir)) ++ return name, filepath.Join(filepath.Base(downloadDir), gitSubDir), nil + } + if strings.HasPrefix(url, "github.com/") { + ghurl := url +@@ -170,28 +175,29 @@ func TempDirForURL(dir, prefix, url string) (name string, subdir string, err err + subdir = path.Base(ghurl) + "-master" + } + if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") { +- err = downloadToDirectory(url, name) ++ err = downloadToDirectory(url, downloadDir) + if err != nil { + if err2 := os.RemoveAll(name); err2 != nil { + logrus.Debugf("error removing temporary directory %q: %v", name, err2) + } +- return "", subdir, err ++ return "", "", err + } +- return name, subdir, nil ++ logrus.Debugf("Build context is at %q", filepath.Join(downloadDir, subdir)) ++ return name, filepath.Join(filepath.Base(downloadDir), subdir), nil + } + if url == "-" { +- err = stdinToDirectory(name) ++ err = stdinToDirectory(downloadDir) + if err != nil { + if err2 := os.RemoveAll(name); err2 != nil { + logrus.Debugf("error removing temporary directory %q: %v", name, err2) + } +- return "", subdir, err ++ return "", "", err + } +- logrus.Debugf("Build context is at %q", name) +- return name, subdir, nil ++ logrus.Debugf("Build context is at %q", filepath.Join(downloadDir, subdir)) ++ return name, filepath.Join(filepath.Base(downloadDir), subdir), nil + } + logrus.Debugf("don't know how to retrieve %q", url) +- if err2 := os.Remove(name); err2 != nil { ++ if err2 := os.RemoveAll(name); err2 != nil { + logrus.Debugf("error removing temporary directory %q: %v", name, err2) + } + return "", "", errors.New("unreachable code reached") +diff --git a/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go b/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go +index 9398dcef8d..e985690dfe 100644 +--- a/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go ++++ b/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go +@@ -597,7 +597,12 @@ func (s *StageExecutor) runStageMountPoints(mountList []string) (map[string]inte + // to `mountPoint` replaced from additional + // build-context. Reason: Parser will use this + // `from` to refer from stageMountPoints map later. +- stageMountPoints[from] = internal.StageMountDetails{IsStage: false, DidExecute: true, MountPoint: mountPoint} ++ stageMountPoints[from] = internal.StageMountDetails{ ++ IsAdditionalBuildContext: true, ++ IsImage: true, ++ DidExecute: true, ++ MountPoint: mountPoint, ++ } + break + } else { + // Most likely this points to path on filesystem +@@ -629,7 +634,11 @@ func (s *StageExecutor) runStageMountPoints(mountList []string) (map[string]inte + mountPoint = additionalBuildContext.DownloadedCache + } + } +- stageMountPoints[from] = internal.StageMountDetails{IsStage: true, DidExecute: true, MountPoint: mountPoint} ++ stageMountPoints[from] = internal.StageMountDetails{ ++ IsAdditionalBuildContext: true, ++ DidExecute: true, ++ MountPoint: mountPoint, ++ } + break + } + } +@@ -640,14 +649,22 @@ func (s *StageExecutor) runStageMountPoints(mountList []string) (map[string]inte + return nil, err + } + if otherStage, ok := s.executor.stages[from]; ok && otherStage.index < s.index { +- stageMountPoints[from] = internal.StageMountDetails{IsStage: true, DidExecute: otherStage.didExecute, MountPoint: otherStage.mountPoint} ++ stageMountPoints[from] = internal.StageMountDetails{ ++ IsStage: true, ++ DidExecute: otherStage.didExecute, ++ MountPoint: otherStage.mountPoint, ++ } + break + } else { + mountPoint, err := s.getImageRootfs(s.ctx, from) + if err != nil { + return nil, fmt.Errorf("%s from=%s: no stage or image found with that name", flag, from) + } +- stageMountPoints[from] = internal.StageMountDetails{IsStage: false, DidExecute: true, MountPoint: mountPoint} ++ stageMountPoints[from] = internal.StageMountDetails{ ++ IsImage: true, ++ DidExecute: true, ++ MountPoint: mountPoint, ++ } + break + } + default: +diff --git a/vendor/github.com/containers/buildah/internal/open/open.go b/vendor/github.com/containers/buildah/internal/open/open.go +new file mode 100644 +index 0000000000..863dc79f21 +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/open/open.go +@@ -0,0 +1,39 @@ ++package open ++ ++import ( ++ "errors" ++ "fmt" ++ "syscall" ++) ++ ++// InChroot opens the file at `path` after chrooting to `root` and then ++// changing its working directory to `wd`. Both `wd` and `path` are evaluated ++// in the chroot. ++// Returns a file handle, an Errno value if there was an error and the ++// underlying error was a standard library error code, and a non-empty error if ++// one was detected. ++func InChroot(root, wd, path string, mode int, perm uint32) (fd int, errno syscall.Errno, err error) { ++ requests := requests{ ++ Root: root, ++ Wd: wd, ++ Open: []request{ ++ { ++ Path: path, ++ Mode: mode, ++ Perms: perm, ++ }, ++ }, ++ } ++ results := inChroot(requests) ++ if len(results.Open) != 1 { ++ return -1, 0, fmt.Errorf("got %d results back instead of 1", len(results.Open)) ++ } ++ if results.Open[0].Err != "" { ++ if results.Open[0].Errno != 0 { ++ err = fmt.Errorf("%s: %w", results.Open[0].Err, results.Open[0].Errno) ++ } else { ++ err = errors.New(results.Open[0].Err) ++ } ++ } ++ return int(results.Open[0].Fd), results.Open[0].Errno, err ++} +diff --git a/vendor/github.com/containers/buildah/internal/open/open_linux.go b/vendor/github.com/containers/buildah/internal/open/open_linux.go +new file mode 100644 +index 0000000000..3d9d608b5f +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/open/open_linux.go +@@ -0,0 +1,88 @@ ++package open ++ ++import ( ++ "bytes" ++ "encoding/json" ++ "errors" ++ "fmt" ++ "os" ++ "strings" ++ ++ "github.com/containers/storage/pkg/reexec" ++ "github.com/sirupsen/logrus" ++ "golang.org/x/sys/unix" ++) ++ ++const ( ++ bindFdToPathCommand = "buildah-bind-fd-to-path" ++) ++ ++func init() { ++ reexec.Register(bindFdToPathCommand, bindFdToPathMain) ++} ++ ++// BindFdToPath creates a bind mount from the open file (which is actually a ++// directory) to the specified location. If it succeeds, the caller will need ++// to unmount the targetPath when it's finished using it. Regardless, it ++// closes the passed-in descriptor. ++func BindFdToPath(fd uintptr, targetPath string) error { ++ f := os.NewFile(fd, "passed-in directory descriptor") ++ defer func() { ++ if err := f.Close(); err != nil { ++ logrus.Debugf("closing descriptor %d after attempting to bind to %q: %v", fd, targetPath, err) ++ } ++ }() ++ pipeReader, pipeWriter, err := os.Pipe() ++ if err != nil { ++ return err ++ } ++ cmd := reexec.Command(bindFdToPathCommand) ++ cmd.Stdin = pipeReader ++ var stdout bytes.Buffer ++ var stderr bytes.Buffer ++ cmd.Stdout, cmd.Stderr = &stdout, &stderr ++ cmd.ExtraFiles = append(cmd.ExtraFiles, f) ++ ++ err = cmd.Start() ++ pipeReader.Close() ++ if err != nil { ++ pipeWriter.Close() ++ return fmt.Errorf("starting child: %w", err) ++ } ++ ++ encoder := json.NewEncoder(pipeWriter) ++ if err := encoder.Encode(&targetPath); err != nil { ++ return fmt.Errorf("sending target path to child: %w", err) ++ } ++ pipeWriter.Close() ++ err = cmd.Wait() ++ trimmedOutput := strings.TrimSpace(stdout.String()) + strings.TrimSpace(stderr.String()) ++ if err != nil { ++ if len(trimmedOutput) > 0 { ++ err = fmt.Errorf("%s: %w", trimmedOutput, err) ++ } ++ } else { ++ if len(trimmedOutput) > 0 { ++ err = errors.New(trimmedOutput) ++ } ++ } ++ return err ++} ++ ++func bindFdToPathMain() { ++ var targetPath string ++ decoder := json.NewDecoder(os.Stdin) ++ if err := decoder.Decode(&targetPath); err != nil { ++ fmt.Fprintf(os.Stderr, "error decoding target path") ++ os.Exit(1) ++ } ++ if err := unix.Fchdir(3); err != nil { ++ fmt.Fprintf(os.Stderr, "fchdir(): %v", err) ++ os.Exit(1) ++ } ++ if err := unix.Mount(".", targetPath, "bind", unix.MS_BIND, ""); err != nil { ++ fmt.Fprintf(os.Stderr, "bind-mounting passed-in directory to %q: %v", targetPath, err) ++ os.Exit(1) ++ } ++ os.Exit(0) ++} +diff --git a/vendor/github.com/containers/buildah/internal/open/open_types.go b/vendor/github.com/containers/buildah/internal/open/open_types.go +new file mode 100644 +index 0000000000..11dbe38db9 +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/open/open_types.go +@@ -0,0 +1,28 @@ ++package open ++ ++import ( ++ "syscall" ++) ++ ++type request struct { ++ Path string ++ Mode int ++ Perms uint32 ++} ++ ++type requests struct { ++ Root string ++ Wd string ++ Open []request ++} ++ ++type result struct { ++ Fd uintptr // as returned by open() ++ Err string // if err was not `nil`, err.Error() ++ Errno syscall.Errno // if err was not `nil` and included a syscall.Errno, its value ++} ++ ++type results struct { ++ Err string ++ Open []result ++} +diff --git a/vendor/github.com/containers/buildah/internal/open/open_unix.go b/vendor/github.com/containers/buildah/internal/open/open_unix.go +new file mode 100644 +index 0000000000..fd254e8745 +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/open/open_unix.go +@@ -0,0 +1,168 @@ ++//go:build linux || freebsd || darwin ++ ++package open ++ ++import ( ++ "bytes" ++ "encoding/json" ++ "errors" ++ "fmt" ++ "os" ++ "syscall" ++ ++ "github.com/containers/storage/pkg/reexec" ++ "golang.org/x/sys/unix" ++) ++ ++const ( ++ inChrootCommand = "buildah-open-in-chroot" ++) ++ ++func init() { ++ reexec.Register(inChrootCommand, inChrootMain) ++} ++ ++func inChroot(requests requests) results { ++ sock, err := unix.Socketpair(unix.AF_UNIX, unix.SOCK_STREAM, 0) ++ if err != nil { ++ return results{Err: fmt.Errorf("creating socket pair: %w", err).Error()} ++ } ++ parentSock := sock[0] ++ childSock := sock[1] ++ parentEnd := os.NewFile(uintptr(parentSock), "parent end of socket pair") ++ childEnd := os.NewFile(uintptr(childSock), "child end of socket pair") ++ cmd := reexec.Command(inChrootCommand) ++ cmd.ExtraFiles = append(cmd.ExtraFiles, childEnd) ++ err = cmd.Start() ++ childEnd.Close() ++ defer parentEnd.Close() ++ if err != nil { ++ return results{Err: err.Error()} ++ } ++ encoder := json.NewEncoder(parentEnd) ++ if err := encoder.Encode(&requests); err != nil { ++ return results{Err: fmt.Errorf("sending request down socket: %w", err).Error()} ++ } ++ if err := unix.Shutdown(parentSock, unix.SHUT_WR); err != nil { ++ return results{Err: fmt.Errorf("finishing sending request down socket: %w", err).Error()} ++ } ++ b := make([]byte, 65536) ++ oob := make([]byte, 65536) ++ n, oobn, _, _, err := unix.Recvmsg(parentSock, b, oob, 0) ++ if err != nil { ++ return results{Err: fmt.Errorf("receiving message: %w", err).Error()} ++ } ++ if err := unix.Shutdown(parentSock, unix.SHUT_RD); err != nil { ++ return results{Err: fmt.Errorf("finishing socket: %w", err).Error()} ++ } ++ if n > len(b) { ++ return results{Err: fmt.Errorf("too much regular data: %d > %d", n, len(b)).Error()} ++ } ++ if oobn > len(oob) { ++ return results{Err: fmt.Errorf("too much OOB data: %d > %d", oobn, len(oob)).Error()} ++ } ++ scms, err := unix.ParseSocketControlMessage(oob[:oobn]) ++ if err != nil { ++ return results{Err: fmt.Errorf("parsing control message: %w", err).Error()} ++ } ++ var receivedFds []int ++ for i := range scms { ++ fds, err := unix.ParseUnixRights(&scms[i]) ++ if err != nil { ++ return results{Err: fmt.Errorf("parsing rights message %d: %w", i, err).Error()} ++ } ++ receivedFds = append(receivedFds, fds...) ++ } ++ decoder := json.NewDecoder(bytes.NewReader(b[:n])) ++ var result results ++ if err := decoder.Decode(&result); err != nil { ++ return results{Err: fmt.Errorf("decoding results: %w", err).Error()} ++ } ++ j := 0 ++ for i := range result.Open { ++ if result.Open[i].Err == "" { ++ if j >= len(receivedFds) { ++ for _, fd := range receivedFds { ++ unix.Close(fd) ++ } ++ return results{Err: fmt.Errorf("didn't receive enough FDs").Error()} ++ } ++ result.Open[i].Fd = uintptr(receivedFds[j]) ++ j++ ++ } ++ } ++ return result ++} ++ ++func inChrootMain() { ++ var theseRequests requests ++ var theseResults results ++ sockFd := 3 ++ sock := os.NewFile(uintptr(sockFd), "socket connection to parent process") ++ defer sock.Close() ++ encoder := json.NewEncoder(sock) ++ decoder := json.NewDecoder(sock) ++ if err := decoder.Decode(&theseRequests); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("decoding request: %w", err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ } ++ if theseRequests.Root != "" { ++ if err := os.Chdir(theseRequests.Root); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("changing to %q: %w", theseRequests.Root, err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ if err := unix.Chroot(theseRequests.Root); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("chrooting to %q: %w", theseRequests.Root, err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ if err := os.Chdir("/"); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("changing to new root: %w", err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ } ++ if theseRequests.Wd != "" { ++ if err := os.Chdir(theseRequests.Wd); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("changing to %q in chroot: %w", theseRequests.Wd, err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ } ++ var fds []int ++ for _, request := range theseRequests.Open { ++ fd, err := unix.Open(request.Path, request.Mode, request.Perms) ++ thisResult := result{Fd: uintptr(fd)} ++ if err == nil { ++ fds = append(fds, fd) ++ } else { ++ var errno syscall.Errno ++ thisResult.Err = err.Error() ++ if errors.As(err, &errno) { ++ thisResult.Errno = errno ++ } ++ } ++ theseResults.Open = append(theseResults.Open, thisResult) ++ } ++ rights := unix.UnixRights(fds...) ++ inband, err := json.Marshal(&theseResults) ++ if err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("sending response: %w", err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ if err := unix.Sendmsg(sockFd, inband, rights, nil, 0); err != nil { ++ if err := encoder.Encode(results{Err: fmt.Errorf("sending response: %w", err).Error()}); err != nil { ++ os.Exit(1) ++ } ++ os.Exit(1) ++ } ++ os.Exit(0) ++} +diff --git a/vendor/github.com/containers/buildah/internal/open/open_unsupported.go b/vendor/github.com/containers/buildah/internal/open/open_unsupported.go +new file mode 100644 +index 0000000000..111056a18b +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/open/open_unsupported.go +@@ -0,0 +1,7 @@ ++//go:build !linux && !freebsd && !darwin ++ ++package open ++ ++func inChroot(requests requests) results { ++ return results{Err: "open-in-chroot not available on this platform"} ++} +diff --git a/vendor/github.com/containers/buildah/internal/types.go b/vendor/github.com/containers/buildah/internal/types.go +index ee87eca225..45aac0b016 100644 +--- a/vendor/github.com/containers/buildah/internal/types.go ++++ b/vendor/github.com/containers/buildah/internal/types.go +@@ -12,7 +12,9 @@ const ( + // StageExecutor has ability to mount stages/images in current context and + // automatically clean them up. + type StageMountDetails struct { +- DidExecute bool // tells if the stage which is being mounted was freshly executed or was part of older cache +- IsStage bool // tells if mountpoint returned from stage executor is stage or image +- MountPoint string // mountpoint of stage/image ++ DidExecute bool // true if this is a freshly-executed stage, or an image, possibly from a non-local cache ++ IsStage bool // true if the mountpoint is a stage's rootfs ++ IsImage bool // true if the mountpoint is an image's rootfs ++ IsAdditionalBuildContext bool // true if the mountpoint is an additional build context ++ MountPoint string // mountpoint of the stage or image's root directory or path of the additional build context + } +diff --git a/vendor/github.com/containers/buildah/internal/volumes/bind_linux.go b/vendor/github.com/containers/buildah/internal/volumes/bind_linux.go +new file mode 100644 +index 0000000000..f8723eb080 +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/volumes/bind_linux.go +@@ -0,0 +1,102 @@ ++package volumes ++ ++import ( ++ "errors" ++ "fmt" ++ "os" ++ ++ "github.com/containers/buildah/internal/open" ++ "github.com/containers/storage/pkg/mount" ++ "github.com/sirupsen/logrus" ++ "golang.org/x/sys/unix" ++) ++ ++// bindFromChroot opens "path" inside of "root" using a chrooted subprocess ++// that returns a descriptor, then creates a uniquely-named temporary directory ++// or file under "tmp" and bind-mounts the opened descriptor to it, returning ++// the path of the temporary file or directory. The caller is responsible for ++// unmounting and removing the temporary. ++func bindFromChroot(root, path, tmp string) (string, error) { ++ fd, _, err := open.InChroot(root, "", path, unix.O_DIRECTORY|unix.O_RDONLY, 0) ++ if err != nil { ++ if !errors.Is(err, unix.ENOTDIR) { ++ return "", fmt.Errorf("opening directory %q under %q: %w", path, root, err) ++ } ++ fd, _, err = open.InChroot(root, "", path, unix.O_RDWR, 0) ++ if err != nil { ++ return "", fmt.Errorf("opening non-directory %q under %q: %w", path, root, err) ++ } ++ } ++ defer func() { ++ if err := unix.Close(fd); err != nil { ++ logrus.Debugf("closing %q under %q: %v", path, root, err) ++ } ++ }() ++ ++ succeeded := false ++ var dest string ++ var destF *os.File ++ defer func() { ++ if !succeeded { ++ if destF != nil { ++ if err := destF.Close(); err != nil { ++ logrus.Debugf("closing bind target %q: %v", dest, err) ++ } ++ } ++ if dest != "" { ++ if err := os.Remove(dest); err != nil { ++ logrus.Debugf("removing bind target %q: %v", dest, err) ++ } ++ } ++ } ++ }() ++ ++ var st unix.Stat_t ++ if err = unix.Fstat(fd, &st); err != nil { ++ return "", fmt.Errorf("checking if %q under %q was a directory: %w", path, root, err) ++ } ++ ++ if st.Mode&unix.S_IFDIR == unix.S_IFDIR { ++ if dest, err = os.MkdirTemp(tmp, "bind"); err != nil { ++ return "", fmt.Errorf("creating a bind target directory: %w", err) ++ } ++ } else { ++ if destF, err = os.CreateTemp(tmp, "bind"); err != nil { ++ return "", fmt.Errorf("creating a bind target non-directory: %w", err) ++ } ++ if err := destF.Close(); err != nil { ++ logrus.Debugf("closing bind target %q: %v", dest, err) ++ } ++ dest = destF.Name() ++ } ++ defer func() { ++ if !succeeded { ++ if err := os.Remove(dest); err != nil { ++ logrus.Debugf("removing bind target %q: %v", dest, err) ++ } ++ } ++ }() ++ ++ if err := unix.Mount(fmt.Sprintf("/proc/self/fd/%d", fd), dest, "bind", unix.MS_BIND, ""); err != nil { ++ return "", fmt.Errorf("bind-mounting passed-in descriptor to %q: %w", dest, err) ++ } ++ defer func() { ++ if !succeeded { ++ if err := mount.Unmount(dest); err != nil { ++ logrus.Debugf("unmounting bound target %q: %v", dest, err) ++ } ++ } ++ }() ++ ++ var st2 unix.Stat_t ++ if err = unix.Stat(dest, &st2); err != nil { ++ return "", fmt.Errorf("looking up device/inode of newly-bind-mounted %q: %w", dest, err) ++ } ++ ++ if st2.Dev != st.Dev || st2.Ino != st.Ino { ++ return "", fmt.Errorf("device/inode weren't what we expected after bind mounting: %w", err) ++ } ++ ++ succeeded = true ++ return dest, nil ++} +diff --git a/vendor/github.com/containers/buildah/internal/volumes/bind_notlinux.go b/vendor/github.com/containers/buildah/internal/volumes/bind_notlinux.go +new file mode 100644 +index 0000000000..d9340c188f +--- /dev/null ++++ b/vendor/github.com/containers/buildah/internal/volumes/bind_notlinux.go +@@ -0,0 +1,15 @@ ++//go:build !linux ++ ++package volumes ++ ++import "errors" ++ ++// bindFromChroot would open "path" inside of "root" using a chrooted ++// subprocess that returns a descriptor, then would create a uniquely-named ++// temporary directory or file under "tmp" and bind-mount the opened descriptor ++// to it, returning the path of the temporary file or directory. The caller ++// would be responsible for unmounting and removing the temporary. For now, ++// this just returns an error because it is not implemented for this platform. ++func bindFromChroot(root, path, tmp string) (string, error) { ++ return "", errors.New("not available on this system") ++} +diff --git a/vendor/github.com/containers/buildah/internal/volumes/volumes.go b/vendor/github.com/containers/buildah/internal/volumes/volumes.go +index f20b254ef7..28a9f259ac 100644 +--- a/vendor/github.com/containers/buildah/internal/volumes/volumes.go ++++ b/vendor/github.com/containers/buildah/internal/volumes/volumes.go +@@ -17,15 +17,19 @@ import ( + internalParse "github.com/containers/buildah/internal/parse" + "github.com/containers/buildah/internal/tmpdir" + internalUtil "github.com/containers/buildah/internal/util" ++ "github.com/containers/buildah/pkg/overlay" + "github.com/containers/common/pkg/parse" + "github.com/containers/image/v5/types" + "github.com/containers/storage" + "github.com/containers/storage/pkg/idtools" + "github.com/containers/storage/pkg/lockfile" ++ "github.com/containers/storage/pkg/mount" + "github.com/containers/storage/pkg/unshare" + digest "github.com/opencontainers/go-digest" + specs "github.com/opencontainers/runtime-spec/specs-go" + selinux "github.com/opencontainers/selinux/go-selinux" ++ "github.com/sirupsen/logrus" ++ "golang.org/x/exp/slices" + ) + + const ( +@@ -56,17 +60,82 @@ func CacheParent() string { + return filepath.Join(tmpdir.GetTempDir(), buildahCacheDir+"-"+strconv.Itoa(unshare.GetRootlessUID())) + } + ++func mountIsReadWrite(m specs.Mount) bool { ++ // in case of conflicts, the last one wins, so it's not enough ++ // to check for the presence of either "rw" or "ro" anywhere ++ // with e.g. slices.Contains() ++ rw := true ++ for _, option := range m.Options { ++ switch option { ++ case "rw": ++ rw = true ++ case "ro": ++ rw = false ++ } ++ } ++ return rw ++} ++ ++func convertToOverlay(m specs.Mount, store storage.Store, mountLabel, tmpDir string, uid, gid int) (specs.Mount, string, error) { ++ overlayDir, err := overlay.TempDir(tmpDir, uid, gid) ++ if err != nil { ++ return specs.Mount{}, "", fmt.Errorf("setting up overlay for %q: %w", m.Destination, err) ++ } ++ options := overlay.Options{GraphOpts: slices.Clone(store.GraphOptions()), ForceMount: true, MountLabel: mountLabel} ++ fileInfo, err := os.Stat(m.Source) ++ if err != nil { ++ return specs.Mount{}, "", fmt.Errorf("setting up overlay of %q: %w", m.Source, err) ++ } ++ // we might be trying to "overlay" for a non-directory, and the kernel doesn't like that very much ++ var mountThisInstead specs.Mount ++ if fileInfo.IsDir() { ++ // do the normal thing of mounting this directory as a lower with a temporary upper ++ mountThisInstead, err = overlay.MountWithOptions(overlayDir, m.Source, m.Destination, &options) ++ if err != nil { ++ return specs.Mount{}, "", fmt.Errorf("setting up overlay of %q: %w", m.Source, err) ++ } ++ } else { ++ // mount the parent directory as the lower with a temporary upper, and return a ++ // bind mount from the non-directory in the merged directory to the destination ++ sourceDir := filepath.Dir(m.Source) ++ sourceBase := filepath.Base(m.Source) ++ destination := m.Destination ++ mountedOverlay, err := overlay.MountWithOptions(overlayDir, sourceDir, destination, &options) ++ if err != nil { ++ return specs.Mount{}, "", fmt.Errorf("setting up overlay of %q: %w", sourceDir, err) ++ } ++ if mountedOverlay.Type != define.TypeBind { ++ if err2 := overlay.RemoveTemp(overlayDir); err2 != nil { ++ return specs.Mount{}, "", fmt.Errorf("cleaning up after failing to set up overlay: %v, while setting up overlay for %q: %w", err2, destination, err) ++ } ++ return specs.Mount{}, "", fmt.Errorf("setting up overlay for %q at %q: %w", mountedOverlay.Source, destination, err) ++ } ++ mountThisInstead = mountedOverlay ++ mountThisInstead.Source = filepath.Join(mountedOverlay.Source, sourceBase) ++ mountThisInstead.Destination = destination ++ } ++ return mountThisInstead, overlayDir, nil ++} ++ + // GetBindMount parses a single bind mount entry from the --mount flag. +-// Returns specifiedMount and a string which contains name of image that we mounted otherwise its empty. +-// Caller is expected to perform unmount of any mounted images +-func GetBindMount(ctx *types.SystemContext, args []string, contextDir string, store storage.Store, imageMountLabel string, additionalMountPoints map[string]internal.StageMountDetails, workDir string) (specs.Mount, string, error) { ++// ++// Returns a Mount to add to the runtime spec's list of mounts, the ID of the ++// image we mounted if we mounted one, the path of a mounted location if one ++// needs to be unmounted and removed, and the path of an overlay mount if one ++// needs to be cleaned up, or an error. ++// ++// The caller is expected to, after the command which uses the mount exits, ++// clean up the overlay filesystem (if we provided a path to it), unmount and ++// remove the mountpoint for the mounted filesystem (if we provided the path to ++// its mountpoint), and then unmount the image (if we mounted one). ++func GetBindMount(sys *types.SystemContext, args []string, contextDir string, store storage.Store, mountLabel string, additionalMountPoints map[string]internal.StageMountDetails, workDir, tmpDir string) (specs.Mount, string, string, string, error) { + newMount := specs.Mount{ + Type: define.TypeBind, + } + +- setRelabel := false +- mountReadability := false +- setDest := false ++ setRelabel := "" ++ mountReadability := "" ++ setDest := "" + bindNonRecursive := false + fromImage := "" + +@@ -79,86 +148,85 @@ func GetBindMount(ctx *types.SystemContext, args []string, contextDir string, st + case "bind-nonrecursive": + newMount.Options = append(newMount.Options, "bind") + bindNonRecursive = true +- case "ro", "nosuid", "nodev", "noexec": ++ case "nosuid", "nodev", "noexec": + // TODO: detect duplication of these options. + // (Is this necessary?) + newMount.Options = append(newMount.Options, kv[0]) +- mountReadability = true + case "rw", "readwrite": + newMount.Options = append(newMount.Options, "rw") +- mountReadability = true +- case "readonly": +- // Alias for "ro" ++ mountReadability = "rw" ++ case "ro", "readonly": + newMount.Options = append(newMount.Options, "ro") +- mountReadability = true ++ mountReadability = "ro" + case "shared", "rshared", "private", "rprivate", "slave", "rslave", "Z", "z", "U": + newMount.Options = append(newMount.Options, kv[0]) + case "from": + if len(kv) == 1 { +- return newMount, "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", "", "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + fromImage = kv[1] + case "bind-propagation": + if len(kv) == 1 { +- return newMount, "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", "", "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + switch kv[1] { + default: +- return newMount, "", fmt.Errorf("%v: %q: %w", kv[0], kv[1], errBadMntOption) ++ return newMount, "", "", "", fmt.Errorf("%v: %q: %w", kv[0], kv[1], errBadMntOption) + case "shared", "rshared", "private", "rprivate", "slave", "rslave": + // this should be the relevant parts of the same list of options we accepted above + } + newMount.Options = append(newMount.Options, kv[1]) + case "src", "source": + if len(kv) == 1 { +- return newMount, "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", "", "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + newMount.Source = kv[1] + case "target", "dst", "destination": + if len(kv) == 1 { +- return newMount, "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", "", "", fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + targetPath := kv[1] ++ setDest = targetPath + if !path.IsAbs(targetPath) { + targetPath = filepath.Join(workDir, targetPath) + } + if err := parse.ValidateVolumeCtrDir(targetPath); err != nil { +- return newMount, "", err ++ return newMount, "", "", "", err + } + newMount.Destination = targetPath +- setDest = true + case "relabel": +- if setRelabel { +- return newMount, "", fmt.Errorf("cannot pass 'relabel' option more than once: %w", errBadOptionArg) ++ if setRelabel != "" { ++ return newMount, "", "", "", fmt.Errorf("cannot pass 'relabel' option more than once: %w", errBadOptionArg) + } +- setRelabel = true + if len(kv) != 2 { +- return newMount, "", fmt.Errorf("%s mount option must be 'private' or 'shared': %w", kv[0], errBadMntOption) ++ return newMount, "", "", "", fmt.Errorf("%s mount option must be 'private' or 'shared': %w", kv[0], errBadMntOption) + } ++ setRelabel = kv[1] + switch kv[1] { + case "private": + newMount.Options = append(newMount.Options, "Z") + case "shared": + newMount.Options = append(newMount.Options, "z") + default: +- return newMount, "", fmt.Errorf("%s mount option must be 'private' or 'shared': %w", kv[0], errBadMntOption) ++ return newMount, "", "", "", fmt.Errorf("%s mount option must be 'private' or 'shared': %w", kv[0], errBadMntOption) + } + case "consistency": + // Option for OS X only, has no meaning on other platforms + // and can thus be safely ignored. + // See also the handling of the equivalent "delegated" and "cached" in ValidateVolumeOpts + default: +- return newMount, "", fmt.Errorf("%v: %w", kv[0], errBadMntOption) ++ return newMount, "", "", "", fmt.Errorf("%v: %w", kv[0], errBadMntOption) + } + } + + // default mount readability is always readonly +- if !mountReadability { ++ if mountReadability == "" { + newMount.Options = append(newMount.Options, "ro") + } + + // Following variable ensures that we return imagename only if we did additional mount +- isImageMounted := false ++ succeeded := false ++ mountedImage := "" + if fromImage != "" { + mountPoint := "" + if additionalMountPoints != nil { +@@ -169,16 +237,23 @@ func GetBindMount(ctx *types.SystemContext, args []string, contextDir string, st + // if mountPoint of image was not found in additionalMap + // or additionalMap was nil, try mounting image + if mountPoint == "" { +- image, err := internalUtil.LookupImage(ctx, store, fromImage) ++ image, err := internalUtil.LookupImage(sys, store, fromImage) + if err != nil { +- return newMount, "", err ++ return newMount, "", "", "", err + } + +- mountPoint, err = image.Mount(context.Background(), nil, imageMountLabel) ++ mountPoint, err = image.Mount(context.Background(), nil, mountLabel) + if err != nil { +- return newMount, "", err +- } +- isImageMounted = true ++ return newMount, "", "", "", err ++ } ++ mountedImage = image.ID() ++ defer func() { ++ if !succeeded { ++ if _, err := store.UnmountImage(mountedImage, false); err != nil { ++ logrus.Debugf("unmounting bind-mounted image %q: %v", fromImage, err) ++ } ++ } ++ }() + } + contextDir = mountPoint + } +@@ -189,48 +264,73 @@ func GetBindMount(ctx *types.SystemContext, args []string, contextDir string, st + newMount.Options = append(newMount.Options, "rbind") + } + +- if !setDest { +- return newMount, fromImage, errBadVolDest ++ if setDest == "" { ++ return newMount, "", "", "", errBadVolDest + } + + // buildkit parity: support absolute path for sources from current build context + if contextDir != "" { + // path should be /contextDir/specified path +- evaluated, err := copier.Eval(contextDir, newMount.Source, copier.EvalOptions{}) ++ evaluated, err := copier.Eval(contextDir, contextDir+string(filepath.Separator)+newMount.Source, copier.EvalOptions{}) + if err != nil { +- return newMount, "", err ++ return newMount, "", "", "", err + } + newMount.Source = evaluated + } else { + // looks like its coming from `build run --mount=type=bind` allow using absolute path + // error out if no source is set + if newMount.Source == "" { +- return newMount, "", errBadVolSrc ++ return newMount, "", "", "", errBadVolSrc + } + if err := parse.ValidateVolumeHostDir(newMount.Source); err != nil { +- return newMount, "", err ++ return newMount, "", "", "", err + } + } + + opts, err := parse.ValidateVolumeOpts(newMount.Options) + if err != nil { +- return newMount, fromImage, err ++ return newMount, "", "", "", err + } + newMount.Options = opts + +- if !isImageMounted { +- // we don't want any cleanups if image was not mounted explicitly +- // so dont return anything +- fromImage = "" ++ var intermediateMount string ++ if contextDir != "" && newMount.Source != contextDir { ++ rel, err := filepath.Rel(contextDir, newMount.Source) ++ if err != nil { ++ return newMount, "", "", "", fmt.Errorf("computing pathname of bind subdirectory: %w", err) ++ } ++ if rel != "." && rel != "/" { ++ mnt, err := bindFromChroot(contextDir, rel, tmpDir) ++ if err != nil { ++ return newMount, "", "", "", fmt.Errorf("sanitizing bind subdirectory %q: %w", newMount.Source, err) ++ } ++ logrus.Debugf("bind-mounted %q under %q to %q", rel, contextDir, mnt) ++ intermediateMount = mnt ++ newMount.Source = intermediateMount ++ } + } + +- return newMount, fromImage, nil ++ overlayDir := "" ++ if mountedImage != "" || mountIsReadWrite(newMount) { ++ if newMount, overlayDir, err = convertToOverlay(newMount, store, mountLabel, tmpDir, 0, 0); err != nil { ++ return newMount, "", "", "", err ++ } ++ } ++ ++ succeeded = true ++ return newMount, mountedImage, intermediateMount, overlayDir, nil + } + + // GetCacheMount parses a single cache mount entry from the --mount flag. + // +-// If this function succeeds and returns a non-nil *lockfile.LockFile, the caller must unlock it (when??). +-func GetCacheMount(args []string, store storage.Store, imageMountLabel string, additionalMountPoints map[string]internal.StageMountDetails, workDir string) (specs.Mount, *lockfile.LockFile, error) { ++// Returns a Mount to add to the runtime spec's list of mounts, the path of a ++// mounted filesystem if one needs to be unmounted, and an optional lock that ++// needs to be released, or an error. ++// ++// The caller is expected to, after the command which uses the mount exits, ++// unmount and remove the mountpoint of the mounted filesystem (if we provided ++// the path to its mountpoint) and release the lock (if we took one). ++func GetCacheMount(args []string, additionalMountPoints map[string]internal.StageMountDetails, workDir, tmpDir string) (specs.Mount, string, *lockfile.LockFile, error) { + var err error + var mode uint64 + var buildahLockFilesDir string +@@ -281,69 +381,69 @@ func GetCacheMount(args []string, store storage.Store, imageMountLabel string, a + sharing = kv[1] + case "bind-propagation": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + switch kv[1] { + default: +- return newMount, nil, fmt.Errorf("%v: %q: %w", kv[0], kv[1], errBadMntOption) ++ return newMount, "", nil, fmt.Errorf("%v: %q: %w", kv[0], kv[1], errBadMntOption) + case "shared", "rshared", "private", "rprivate", "slave", "rslave": + // this should be the relevant parts of the same list of options we accepted above + } + newMount.Options = append(newMount.Options, kv[1]) + case "id": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + id = kv[1] + case "from": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + fromStage = kv[1] + case "target", "dst", "destination": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + targetPath := kv[1] + if !path.IsAbs(targetPath) { + targetPath = filepath.Join(workDir, targetPath) + } + if err := parse.ValidateVolumeCtrDir(targetPath); err != nil { +- return newMount, nil, err ++ return newMount, "", nil, err + } + newMount.Destination = targetPath + setDest = true + case "src", "source": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + newMount.Source = kv[1] + case "mode": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + mode, err = strconv.ParseUint(kv[1], 8, 32) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to parse cache mode: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to parse cache mode: %w", err) + } + case "uid": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + uid, err = strconv.Atoi(kv[1]) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to parse cache uid: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to parse cache uid: %w", err) + } + case "gid": + if len(kv) == 1 { +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadOptionArg) + } + gid, err = strconv.Atoi(kv[1]) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to parse cache gid: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to parse cache gid: %w", err) + } + default: +- return newMount, nil, fmt.Errorf("%v: %w", kv[0], errBadMntOption) ++ return newMount, "", nil, fmt.Errorf("%v: %w", kv[0], errBadMntOption) + } + } + +@@ -354,16 +454,18 @@ func GetCacheMount(args []string, store storage.Store, imageMountLabel string, a + } + + if !setDest { +- return newMount, nil, errBadVolDest ++ return newMount, "", nil, errBadVolDest + } + ++ thisCacheRoot := "" + if fromStage != "" { +- // do not create cache on host +- // instead use read-only mounted stage as cache ++ // do not create and use a cache directory on the host, ++ // instead use the location in the mounted stage or ++ // temporary directory as the cache + mountPoint := "" + if additionalMountPoints != nil { + if val, ok := additionalMountPoints[fromStage]; ok { +- if val.IsStage { ++ if !val.IsImage { + mountPoint = val.MountPoint + } + } +@@ -371,14 +473,9 @@ func GetCacheMount(args []string, store storage.Store, imageMountLabel string, a + // Cache does not supports using image so if not stage found + // return with error + if mountPoint == "" { +- return newMount, nil, fmt.Errorf("no stage found with name %s", fromStage) ++ return newMount, "", nil, fmt.Errorf("no stage or additional build context found with name %s", fromStage) + } +- // path should be /contextDir/specified path +- evaluated, err := copier.Eval(mountPoint, string(filepath.Separator)+newMount.Source, copier.EvalOptions{}) +- if err != nil { +- return newMount, nil, err +- } +- newMount.Source = evaluated ++ thisCacheRoot = mountPoint + } else { + // we need to create cache on host if no image is being used + +@@ -388,64 +485,73 @@ func GetCacheMount(args []string, store storage.Store, imageMountLabel string, a + + // cache parent directory: creates separate cache parent for each user. + cacheParent := CacheParent() ++ + // create cache on host if not present + err = os.MkdirAll(cacheParent, os.FileMode(0755)) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to create build cache directory: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to create build cache directory: %w", err) + } + + if id != "" { + // Don't let the user control where we place the directory. + dirID := digest.FromString(id).Encoded()[:16] +- newMount.Source = filepath.Join(cacheParent, dirID) ++ thisCacheRoot = filepath.Join(cacheParent, dirID) + buildahLockFilesDir = filepath.Join(BuildahCacheLockfileDir, dirID) + } else { + // Don't let the user control where we place the directory. + dirID := digest.FromString(newMount.Destination).Encoded()[:16] +- newMount.Source = filepath.Join(cacheParent, dirID) ++ thisCacheRoot = filepath.Join(cacheParent, dirID) + buildahLockFilesDir = filepath.Join(BuildahCacheLockfileDir, dirID) + } ++ + idPair := idtools.IDPair{ + UID: uid, + GID: gid, + } +- //buildkit parity: change uid and gid if specified otheriwise keep `0` +- err = idtools.MkdirAllAndChownNew(newMount.Source, os.FileMode(mode), idPair) ++ // buildkit parity: change uid and gid if specified, otherwise keep `0` ++ err = idtools.MkdirAllAndChownNew(thisCacheRoot, os.FileMode(mode), idPair) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to change uid,gid of cache directory: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to change uid,gid of cache directory: %w", err) + } + + // create a subdirectory inside `cacheParent` just to store lockfiles + buildahLockFilesDir = filepath.Join(cacheParent, buildahLockFilesDir) + err = os.MkdirAll(buildahLockFilesDir, os.FileMode(0700)) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to create build cache lockfiles directory: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to create build cache lockfiles directory: %w", err) + } + } + +- var targetLock *lockfile.LockFile // = nil ++ // path should be /mountPoint/specified path ++ evaluated, err := copier.Eval(thisCacheRoot, thisCacheRoot+string(filepath.Separator)+newMount.Source, copier.EvalOptions{}) ++ if err != nil { ++ return newMount, "", nil, err ++ } ++ newMount.Source = evaluated ++ + succeeded := false +- defer func() { +- if !succeeded && targetLock != nil { +- targetLock.Unlock() +- } +- }() ++ var targetLock *lockfile.LockFile + switch sharing { + case "locked": + // lock parent cache + lockfile, err := lockfile.GetLockFile(filepath.Join(buildahLockFilesDir, BuildahCacheLockfile)) + if err != nil { +- return newMount, nil, fmt.Errorf("unable to acquire lock when sharing mode is locked: %w", err) ++ return newMount, "", nil, fmt.Errorf("unable to acquire lock when sharing mode is locked: %w", err) + } + // Will be unlocked after the RUN step is executed. + lockfile.Lock() + targetLock = lockfile ++ defer func() { ++ if !succeeded { ++ targetLock.Unlock() ++ } ++ }() + case "shared": + // do nothing since default is `shared` + break + default: + // error out for unknown values +- return newMount, nil, fmt.Errorf("unrecognized value %q for field `sharing`: %w", sharing, err) ++ return newMount, "", nil, fmt.Errorf("unrecognized value %q for field `sharing`: %w", sharing, err) + } + + // buildkit parity: default sharing should be shared +@@ -463,12 +569,29 @@ func GetCacheMount(args []string, store storage.Store, imageMountLabel string, a + + opts, err := parse.ValidateVolumeOpts(newMount.Options) + if err != nil { +- return newMount, nil, err ++ return newMount, "", nil, err + } + newMount.Options = opts + ++ var intermediateMount string ++ if newMount.Source != thisCacheRoot { ++ rel, err := filepath.Rel(thisCacheRoot, newMount.Source) ++ if err != nil { ++ return newMount, "", nil, fmt.Errorf("computing pathname of cache subdirectory: %w", err) ++ } ++ if rel != "." && rel != "/" { ++ mnt, err := bindFromChroot(thisCacheRoot, rel, tmpDir) ++ if err != nil { ++ return newMount, "", nil, fmt.Errorf("sanitizing cache subdirectory %q: %w", newMount.Source, err) ++ } ++ logrus.Debugf("bind-mounted %q under %q to %q", rel, thisCacheRoot, mnt) ++ intermediateMount = mnt ++ newMount.Source = intermediateMount ++ } ++ } ++ + succeeded = true +- return newMount, targetLock, nil ++ return newMount, intermediateMount, targetLock, nil + } + + func getVolumeMounts(volumes []string) (map[string]specs.Mount, error) { +@@ -494,27 +617,53 @@ func UnlockLockArray(locks []*lockfile.LockFile) { + } + } + +-// GetVolumes gets the volumes from --volume and --mount ++// GetVolumes gets the volumes from --volume and --mount flags. + // +-// If this function succeeds, the caller must unlock the returned *lockfile.LockFile s if any (when??). +-func GetVolumes(ctx *types.SystemContext, store storage.Store, volumes []string, mounts []string, contextDir string, workDir string) ([]specs.Mount, []string, []*lockfile.LockFile, error) { +- unifiedMounts, mountedImages, targetLocks, err := getMounts(ctx, store, mounts, contextDir, workDir) ++// Returns a slice of Mounts to add to the runtime spec's list of mounts, the ++// IDs of any images we mounted, a slice of bind-mounted paths, a slice of ++// overlay directories and a slice of locks that we acquired, or an error. ++// ++// The caller is expected to, after the command which uses the mounts and ++// volumes exits, clean up the overlay directories, unmount and remove the ++// mountpoints for the bind-mounted paths, unmount any images we mounted, and ++// release the locks we returned (either using UnlockLockArray() or by ++// iterating over them and unlocking them). ++func GetVolumes(ctx *types.SystemContext, store storage.Store, mountLabel string, volumes []string, mounts []string, contextDir, workDir, tmpDir string) ([]specs.Mount, []string, []string, []string, []*lockfile.LockFile, error) { ++ unifiedMounts, mountedImages, intermediateMounts, overlayMounts, targetLocks, err := getMounts(ctx, store, mountLabel, mounts, contextDir, workDir, tmpDir) + if err != nil { +- return nil, mountedImages, nil, err ++ return nil, nil, nil, nil, nil, err + } + succeeded := false + defer func() { + if !succeeded { ++ for _, overlayMount := range overlayMounts { ++ if err := overlay.RemoveTemp(overlayMount); err != nil { ++ logrus.Debugf("unmounting overlay at %q: %v", overlayMount, err) ++ } ++ } ++ for _, intermediateMount := range intermediateMounts { ++ if err := mount.Unmount(intermediateMount); err != nil { ++ logrus.Debugf("unmounting intermediate mount point %q: %v", intermediateMount, err) ++ } ++ if err := os.Remove(intermediateMount); err != nil { ++ logrus.Debugf("removing should-be-empty directory %q: %v", intermediateMount, err) ++ } ++ } ++ for _, image := range mountedImages { ++ if _, err := store.UnmountImage(image, false); err != nil { ++ logrus.Debugf("unmounting image %q: %v", image, err) ++ } ++ } + UnlockLockArray(targetLocks) + } + }() + volumeMounts, err := getVolumeMounts(volumes) + if err != nil { +- return nil, mountedImages, nil, err ++ return nil, nil, nil, nil, nil, err + } + for dest, mount := range volumeMounts { + if _, ok := unifiedMounts[dest]; ok { +- return nil, mountedImages, nil, fmt.Errorf("%v: %w", dest, errDuplicateDest) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%v: %w", dest, errDuplicateDest) + } + unifiedMounts[dest] = mount + } +@@ -524,24 +673,53 @@ func GetVolumes(ctx *types.SystemContext, store storage.Store, volumes []string, + finalMounts = append(finalMounts, mount) + } + succeeded = true +- return finalMounts, mountedImages, targetLocks, nil ++ return finalMounts, mountedImages, intermediateMounts, overlayMounts, targetLocks, nil + } + +-// getMounts takes user-provided input from the --mount flag and creates OCI +-// spec mounts. +-// buildah run --mount type=bind,src=/etc/resolv.conf,target=/etc/resolv.conf ... +-// buildah run --mount type=tmpfs,target=/dev/shm ... ++// getMounts takes user-provided inputs from the --mount flag and returns a ++// slice of OCI spec mounts, a slice of mounted image IDs, a slice of other ++// mount locations, a slice of overlay mounts, and a slice of locks, or an ++// error. + // +-// If this function succeeds, the caller must unlock the returned *lockfile.LockFile s if any (when??). +-func getMounts(ctx *types.SystemContext, store storage.Store, mounts []string, contextDir string, workDir string) (map[string]specs.Mount, []string, []*lockfile.LockFile, error) { ++// buildah run --mount type=bind,src=/etc/resolv.conf,target=/etc/resolv.conf ... ++// buildah run --mount type=cache,target=/var/cache ... ++// buildah run --mount type=tmpfs,target=/dev/shm ... ++// ++// The caller is expected to, after the command which uses the mounts exits, ++// unmount the overlay filesystems (if we mounted any), unmount the other ++// mounted filesystems and remove their mountpoints (if we provided any paths ++// to mountpoints), unmount any mounted images (if we provided the IDs of any), ++// and then unlock the locks we returned (either using UnlockLockArray() or by ++// iterating over them and unlocking them). ++func getMounts(ctx *types.SystemContext, store storage.Store, mountLabel string, mounts []string, contextDir, workDir, tmpDir string) (map[string]specs.Mount, []string, []string, []string, []*lockfile.LockFile, error) { + // If `type` is not set default to "bind" + mountType := define.TypeBind +- finalMounts := make(map[string]specs.Mount) +- mountedImages := make([]string, 0) +- targetLocks := make([]*lockfile.LockFile, 0) ++ finalMounts := make(map[string]specs.Mount, len(mounts)) ++ mountedImages := make([]string, 0, len(mounts)) ++ intermediateMounts := make([]string, 0, len(mounts)) ++ overlayMounts := make([]string, 0, len(mounts)) ++ targetLocks := make([]*lockfile.LockFile, 0, len(mounts)) + succeeded := false + defer func() { + if !succeeded { ++ for _, overlayDir := range overlayMounts { ++ if err := overlay.RemoveTemp(overlayDir); err != nil { ++ logrus.Debugf("unmounting overlay mount at %q: %v", overlayDir, err) ++ } ++ } ++ for _, intermediateMount := range intermediateMounts { ++ if err := mount.Unmount(intermediateMount); err != nil { ++ logrus.Debugf("unmounting intermediate mount point %q: %v", intermediateMount, err) ++ } ++ if err := os.Remove(intermediateMount); err != nil { ++ logrus.Debugf("removing should-be-empty directory %q: %v", intermediateMount, err) ++ } ++ } ++ for _, image := range mountedImages { ++ if _, err := store.UnmountImage(image, false); err != nil { ++ logrus.Debugf("unmounting image %q: %v", image, err) ++ } ++ } + UnlockLockArray(targetLocks) + } + }() +@@ -554,56 +732,67 @@ func getMounts(ctx *types.SystemContext, store storage.Store, mounts []string, c + for _, mount := range mounts { + tokens := strings.Split(mount, ",") + if len(tokens) < 2 { +- return nil, mountedImages, nil, fmt.Errorf("%q: %w", mount, errInvalidSyntax) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%q: %w", mount, errInvalidSyntax) + } + for _, field := range tokens { + if strings.HasPrefix(field, "type=") { + kv := strings.Split(field, "=") + if len(kv) != 2 { +- return nil, mountedImages, nil, fmt.Errorf("%q: %w", mount, errInvalidSyntax) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%q: %w", mount, errInvalidSyntax) + } + mountType = kv[1] + } + } + switch mountType { + case define.TypeBind: +- mount, image, err := GetBindMount(ctx, tokens, contextDir, store, "", nil, workDir) ++ mount, image, intermediateMount, overlayMount, err := GetBindMount(ctx, tokens, contextDir, store, mountLabel, nil, workDir, tmpDir) + if err != nil { +- return nil, mountedImages, nil, err ++ return nil, nil, nil, nil, nil, err ++ } ++ if image != "" { ++ mountedImages = append(mountedImages, image) ++ } ++ if intermediateMount != "" { ++ intermediateMounts = append(intermediateMounts, intermediateMount) ++ } ++ if overlayMount != "" { ++ overlayMounts = append(overlayMounts, overlayMount) + } + if _, ok := finalMounts[mount.Destination]; ok { +- return nil, mountedImages, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) + } + finalMounts[mount.Destination] = mount +- mountedImages = append(mountedImages, image) + case TypeCache: +- mount, tl, err := GetCacheMount(tokens, store, "", nil, workDir) ++ mount, intermediateMount, tl, err := GetCacheMount(tokens, nil, workDir, tmpDir) + if err != nil { +- return nil, mountedImages, nil, err ++ return nil, nil, nil, nil, nil, err ++ } ++ if intermediateMount != "" { ++ intermediateMounts = append(intermediateMounts, intermediateMount) + } + if tl != nil { + targetLocks = append(targetLocks, tl) + } + if _, ok := finalMounts[mount.Destination]; ok { +- return nil, mountedImages, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) + } + finalMounts[mount.Destination] = mount + case TypeTmpfs: + mount, err := GetTmpfsMount(tokens) + if err != nil { +- return nil, mountedImages, nil, err ++ return nil, nil, nil, nil, nil, err + } + if _, ok := finalMounts[mount.Destination]; ok { +- return nil, mountedImages, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) ++ return nil, nil, nil, nil, nil, fmt.Errorf("%v: %w", mount.Destination, errDuplicateDest) + } + finalMounts[mount.Destination] = mount + default: +- return nil, mountedImages, nil, fmt.Errorf("invalid filesystem type %q", mountType) ++ return nil, nil, nil, nil, nil, fmt.Errorf("invalid filesystem type %q", mountType) + } + } + + succeeded = true +- return finalMounts, mountedImages, targetLocks, nil ++ return finalMounts, mountedImages, intermediateMounts, overlayMounts, targetLocks, nil + } + + // GetTmpfsMount parses a single tmpfs mount entry from the --mount flag +diff --git a/vendor/github.com/containers/buildah/pkg/overlay/overlay.go b/vendor/github.com/containers/buildah/pkg/overlay/overlay.go +index e416ecd780..83c702c28d 100644 +--- a/vendor/github.com/containers/buildah/pkg/overlay/overlay.go ++++ b/vendor/github.com/containers/buildah/pkg/overlay/overlay.go +@@ -6,15 +6,16 @@ import ( + "os/exec" + "path/filepath" + "strings" ++ "syscall" + + "errors" + + "github.com/containers/storage/pkg/idtools" ++ "github.com/containers/storage/pkg/mount" + "github.com/containers/storage/pkg/system" + "github.com/containers/storage/pkg/unshare" + "github.com/opencontainers/runtime-spec/specs-go" + "github.com/sirupsen/logrus" +- "golang.org/x/sys/unix" + ) + + // Options type holds various configuration options for overlay +@@ -49,6 +50,12 @@ type Options struct { + RootUID int + // RootGID is not used yet but keeping it here for legacy reasons. + RootGID int ++ // Force overlay mounting and return a bind mount, rather than ++ // attempting to optimize by having the runtime actually mount and ++ // manage the overlay filesystem. ++ ForceMount bool ++ // MountLabel is a label to force for the overlay filesystem. ++ MountLabel string + } + + // TempDir generates an overlay Temp directory in the container content +@@ -145,6 +152,12 @@ func mountWithMountProgram(mountProgram, overlayOptions, mergeDir string) error + return nil + } + ++// mountNatively mounts an overlay at mergeDir using the kernel's mount() ++// system call. ++func mountNatively(overlayOptions, mergeDir string) error { ++ return mount.Mount("overlay", mergeDir, "overlay", overlayOptions) ++} ++ + // Convert ":" to "\:", the path which will be overlay mounted need to be escaped + func escapeColon(source string) string { + return strings.ReplaceAll(source, ":", "\\:") +@@ -180,7 +193,7 @@ func Unmount(contentDir string) error { + } + + // Ignore EINVAL as the specified merge dir is not a mount point +- if err := unix.Unmount(mergeDir, 0); err != nil && !errors.Is(err, os.ErrNotExist) && err != unix.EINVAL { ++ if err := mount.Unmount(mergeDir); err != nil && !errors.Is(err, os.ErrNotExist) && err != syscall.EINVAL { + return fmt.Errorf("unmount overlay %s: %w", mergeDir, err) + } + return nil +diff --git a/vendor/github.com/containers/buildah/pkg/overlay/overlay_linux.go b/vendor/github.com/containers/buildah/pkg/overlay/overlay_linux.go +index 9bd72bc240..57b22dd5db 100644 +--- a/vendor/github.com/containers/buildah/pkg/overlay/overlay_linux.go ++++ b/vendor/github.com/containers/buildah/pkg/overlay/overlay_linux.go +@@ -9,6 +9,7 @@ import ( + + "github.com/containers/storage/pkg/unshare" + "github.com/opencontainers/runtime-spec/specs-go" ++ "github.com/opencontainers/selinux/go-selinux/label" + ) + + // MountWithOptions creates a subdir of the contentDir based on the source directory +@@ -52,6 +53,9 @@ func MountWithOptions(contentDir, source, dest string, opts *Options) (mount spe + } + overlayOptions = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s,private", escapeColon(source), upperDir, workDir) + } ++ if opts.MountLabel != "" { ++ overlayOptions = overlayOptions + "," + label.FormatMountLabel("", opts.MountLabel) ++ } + + mountProgram := findMountProgram(opts.GraphOpts) + if mountProgram != "" { +@@ -76,5 +80,17 @@ func MountWithOptions(contentDir, source, dest string, opts *Options) (mount spe + mount.Type = "overlay" + mount.Options = strings.Split(overlayOptions, ",") + ++ if opts.ForceMount { ++ if err := mountNatively(overlayOptions, mergeDir); err != nil { ++ return mount, err ++ } ++ ++ mount.Source = mergeDir ++ mount.Destination = dest ++ mount.Type = "bind" ++ mount.Options = []string{"bind", "slave"} ++ return mount, nil ++ } ++ + return mount, nil + } +diff --git a/vendor/github.com/containers/buildah/pkg/overlay/overlay_unsupported.go b/vendor/github.com/containers/buildah/pkg/overlay/overlay_unsupported.go +new file mode 100644 +index 0000000000..538db65e0f +--- /dev/null ++++ b/vendor/github.com/containers/buildah/pkg/overlay/overlay_unsupported.go +@@ -0,0 +1,20 @@ ++//go:build !freebsd && !linux ++// +build !freebsd,!linux ++ ++package overlay ++ ++import ( ++ "fmt" ++ "runtime" ++ ++ "github.com/opencontainers/runtime-spec/specs-go" ++) ++ ++// MountWithOptions creates a subdir of the contentDir based on the source directory ++// from the source system. It then mounts up the source directory on to the ++// generated mount point and returns the mount point to the caller. ++// But allows api to set custom workdir, upperdir and other overlay options ++// Following API is being used by podman at the moment ++func MountWithOptions(contentDir, source, dest string, opts *Options) (mount specs.Mount, err error) { ++ return mount, fmt.Errorf("read/write overlay mounts not supported on %q", runtime.GOOS) ++} +diff --git a/vendor/github.com/containers/buildah/run.go b/vendor/github.com/containers/buildah/run.go +index 77887dfe8f..9d5798816e 100644 +--- a/vendor/github.com/containers/buildah/run.go ++++ b/vendor/github.com/containers/buildah/run.go +@@ -168,18 +168,22 @@ type RunOptions struct { + + // RunMountArtifacts are the artifacts created when using a run mount. + type runMountArtifacts struct { +- // RunMountTargets are the run mount targets inside the container ++ // RunMountTargets are the run mount targets inside the container which should be removed + RunMountTargets []string ++ // RunOverlayDirs are overlay directories which will need to be cleaned up using overlay.RemoveTemp() ++ RunOverlayDirs []string + // TmpFiles are artifacts that need to be removed outside the container + TmpFiles []string +- // Any external images which were mounted inside container ++ // Any images which were mounted, which should be unmounted + MountedImages []string +- // Agents are the ssh agents started ++ // Agents are the ssh agents started, which should have their Shutdown() methods called + Agents []*sshagent.AgentServer + // SSHAuthSock is the path to the ssh auth sock inside the container + SSHAuthSock string +- // TargetLocks to be unlocked if there are any. ++ // Lock files, which should have their Unlock() methods called + TargetLocks []*lockfile.LockFile ++ // Intermediate mount points, which should be Unmount()ed and Removed()d ++ IntermediateMounts []string + } + + // RunMountInfo are the available run mounts for this run +diff --git a/vendor/github.com/containers/buildah/run_common.go b/vendor/github.com/containers/buildah/run_common.go +index 93550f62bb..50e3bfa967 100644 +--- a/vendor/github.com/containers/buildah/run_common.go ++++ b/vendor/github.com/containers/buildah/run_common.go +@@ -26,7 +26,6 @@ import ( + "github.com/containers/buildah/copier" + "github.com/containers/buildah/define" + "github.com/containers/buildah/internal" +- internalUtil "github.com/containers/buildah/internal/util" + "github.com/containers/buildah/internal/volumes" + "github.com/containers/buildah/pkg/overlay" + "github.com/containers/buildah/pkg/sshagent" +@@ -38,14 +37,14 @@ import ( + netUtil "github.com/containers/common/libnetwork/util" + "github.com/containers/common/pkg/config" + "github.com/containers/common/pkg/subscriptions" +- imageTypes "github.com/containers/image/v5/types" ++ "github.com/containers/image/v5/types" + "github.com/containers/storage" + "github.com/containers/storage/pkg/idtools" + "github.com/containers/storage/pkg/ioutils" + "github.com/containers/storage/pkg/lockfile" ++ "github.com/containers/storage/pkg/mount" + "github.com/containers/storage/pkg/reexec" + "github.com/containers/storage/pkg/unshare" +- storageTypes "github.com/containers/storage/types" + "github.com/opencontainers/go-digest" + "github.com/opencontainers/runtime-spec/specs-go" + "github.com/opencontainers/runtime-tools/generate" +@@ -1283,8 +1282,10 @@ func init() { + reexec.Register(runUsingRuntimeCommand, runUsingRuntimeMain) + } + +-// If this succeeds, the caller must call cleanupMounts(). +-func (b *Builder) setupMounts(mountPoint string, spec *specs.Spec, bundlePath string, optionMounts []specs.Mount, bindFiles map[string]string, builtinVolumes, volumeMounts []string, runFileMounts []string, runMountInfo runMountInfo) (*runMountArtifacts, error) { ++// If this succeeds, after the command which uses the spec finishes running, ++// the caller must call b.cleanupRunMounts() on the returned runMountArtifacts ++// structure. ++func (b *Builder) setupMounts(mountPoint string, spec *specs.Spec, bundlePath string, optionMounts []specs.Mount, bindFiles map[string]string, builtinVolumes []string, volumeMounts []string, runFileMounts []string, runMountInfo runMountInfo) (*runMountArtifacts, error) { + // Start building a new list of mounts. + var mounts []specs.Mount + haveMount := func(destination string) bool { +@@ -1342,14 +1343,16 @@ func (b *Builder) setupMounts(mountPoint string, spec *specs.Spec, bundlePath st + processGID: int(processGID), + } + // Get the list of mounts that are just for this Run() call. +- runMounts, mountArtifacts, err := b.runSetupRunMounts(mountPoint, runFileMounts, runMountInfo, idMaps) ++ runMounts, mountArtifacts, err := b.runSetupRunMounts(mountPoint, bundlePath, runFileMounts, runMountInfo, idMaps) + if err != nil { + return nil, err + } + succeeded := false + defer func() { + if !succeeded { +- volumes.UnlockLockArray(mountArtifacts.TargetLocks) ++ if err := b.cleanupRunMounts(mountPoint, mountArtifacts); err != nil { ++ b.Logger.Debugf("cleaning up run mounts: %v", err) ++ } + } + }() + // Add temporary copies of the contents of volume locations at the +@@ -1498,28 +1501,61 @@ func checkIfMountDestinationPreExists(root string, dest string) (bool, error) { + + // runSetupRunMounts sets up mounts that exist only in this RUN, not in subsequent runs + // +-// If this function succeeds, the caller must unlock runMountArtifacts.TargetLocks (when??) +-func (b *Builder) runSetupRunMounts(mountPoint string, mounts []string, sources runMountInfo, idMaps IDMaps) ([]specs.Mount, *runMountArtifacts, error) { +- mountTargets := make([]string, 0, 10) ++// If this function succeeds, the caller must free the returned ++// runMountArtifacts by calling b.cleanupRunMounts() after the command being ++// executed with those mounts has finished. ++func (b *Builder) runSetupRunMounts(mountPoint, bundlePath string, mounts []string, sources runMountInfo, idMaps IDMaps) ([]specs.Mount, *runMountArtifacts, error) { ++ mountTargets := make([]string, 0, len(mounts)) + tmpFiles := make([]string, 0, len(mounts)) +- mountImages := make([]string, 0, 10) ++ mountImages := make([]string, 0, len(mounts)) ++ intermediateMounts := make([]string, 0, len(mounts)) + finalMounts := make([]specs.Mount, 0, len(mounts)) + agents := make([]*sshagent.AgentServer, 0, len(mounts)) +- sshCount := 0 + defaultSSHSock := "" + targetLocks := []*lockfile.LockFile{} ++ var overlayDirs []string + succeeded := false + defer func() { + if !succeeded { ++ for _, agent := range agents { ++ servePath := agent.ServePath() ++ if err := agent.Shutdown(); err != nil { ++ b.Logger.Errorf("shutting down SSH agent at %q: %v", servePath, err) ++ } ++ } ++ for _, overlayDir := range overlayDirs { ++ if err := overlay.RemoveTemp(overlayDir); err != nil { ++ b.Logger.Error(err.Error()) ++ } ++ } ++ for _, intermediateMount := range intermediateMounts { ++ if err := mount.Unmount(intermediateMount); err != nil { ++ b.Logger.Errorf("unmounting %q: %v", intermediateMount, err) ++ } ++ if err := os.Remove(intermediateMount); err != nil { ++ b.Logger.Errorf("removing should-be-empty directory %q: %v", intermediateMount, err) ++ } ++ } ++ for _, mountImage := range mountImages { ++ if _, err := b.store.UnmountImage(mountImage, false); err != nil { ++ b.Logger.Error(err.Error()) ++ } ++ } ++ for _, tmpFile := range tmpFiles { ++ if err := os.Remove(tmpFile); err != nil && !errors.Is(err, os.ErrNotExist) { ++ b.Logger.Error(err.Error()) ++ } ++ } + volumes.UnlockLockArray(targetLocks) + } + }() + for _, mount := range mounts { + var mountSpec *specs.Mount + var err error +- var envFile, image string ++ var envFile, image, bundleMountsDir, overlayDir, intermediateMount string + var agent *sshagent.AgentServer + var tl *lockfile.LockFile ++ + tokens := strings.Split(mount, ",") + + // If `type` is not set default to TypeBind +@@ -1547,29 +1583,37 @@ func (b *Builder) runSetupRunMounts(mountPoint string, mounts []string, sources + } + } + case "ssh": +- mountSpec, agent, err = b.getSSHMount(tokens, sshCount, sources.SSHSources, idMaps) ++ mountSpec, agent, err = b.getSSHMount(tokens, len(agents), sources.SSHSources, idMaps) + if err != nil { + return nil, nil, err + } + if mountSpec != nil { + finalMounts = append(finalMounts, *mountSpec) +- agents = append(agents, agent) +- if sshCount == 0 { ++ if len(agents) == 0 { + defaultSSHSock = mountSpec.Destination + } +- // Count is needed as the default destination of the ssh sock inside the container is /run/buildkit/ssh_agent.{i} +- sshCount++ ++ agents = append(agents, agent) + } + case define.TypeBind: +- mountSpec, image, err = b.getBindMount(tokens, sources.SystemContext, sources.ContextDir, sources.StageMountPoints, idMaps, sources.WorkDir) ++ if bundleMountsDir == "" { ++ if bundleMountsDir, err = os.MkdirTemp(bundlePath, "mounts"); err != nil { ++ return nil, nil, err ++ } ++ } ++ mountSpec, image, intermediateMount, overlayDir, err = b.getBindMount(tokens, sources.SystemContext, sources.ContextDir, sources.StageMountPoints, idMaps, sources.WorkDir, bundleMountsDir) + if err != nil { + return nil, nil, err + } +- finalMounts = append(finalMounts, *mountSpec) +- // only perform cleanup if image was mounted ignore everything else + if image != "" { + mountImages = append(mountImages, image) + } ++ if overlayDir != "" { ++ overlayDirs = append(overlayDirs, overlayDir) ++ } ++ if intermediateMount != "" { ++ intermediateMounts = append(intermediateMounts, intermediateMount) ++ } ++ finalMounts = append(finalMounts, *mountSpec) + case "tmpfs": + mountSpec, err = b.getTmpfsMount(tokens, idMaps) + if err != nil { +@@ -1577,14 +1621,22 @@ func (b *Builder) runSetupRunMounts(mountPoint string, mounts []string, sources + } + finalMounts = append(finalMounts, *mountSpec) + case "cache": +- mountSpec, tl, err = b.getCacheMount(tokens, sources.StageMountPoints, idMaps, sources.WorkDir) ++ if bundleMountsDir == "" { ++ if bundleMountsDir, err = os.MkdirTemp(bundlePath, "mounts"); err != nil { ++ return nil, nil, err ++ } ++ } ++ mountSpec, intermediateMount, tl, err = b.getCacheMount(tokens, sources.StageMountPoints, idMaps, sources.WorkDir, bundleMountsDir) + if err != nil { + return nil, nil, err + } +- finalMounts = append(finalMounts, *mountSpec) ++ if intermediateMount != "" { ++ intermediateMounts = append(intermediateMounts, intermediateMount) ++ } + if tl != nil { + targetLocks = append(targetLocks, tl) + } ++ finalMounts = append(finalMounts, *mountSpec) + default: + return nil, nil, fmt.Errorf("invalid mount type %q", mountType) + } +@@ -1604,31 +1656,33 @@ func (b *Builder) runSetupRunMounts(mountPoint string, mounts []string, sources + } + succeeded = true + artifacts := &runMountArtifacts{ +- RunMountTargets: mountTargets, +- TmpFiles: tmpFiles, +- Agents: agents, +- MountedImages: mountImages, +- SSHAuthSock: defaultSSHSock, +- TargetLocks: targetLocks, ++ RunMountTargets: mountTargets, ++ RunOverlayDirs: overlayDirs, ++ TmpFiles: tmpFiles, ++ Agents: agents, ++ MountedImages: mountImages, ++ SSHAuthSock: defaultSSHSock, ++ TargetLocks: targetLocks, ++ IntermediateMounts: intermediateMounts, + } + return finalMounts, artifacts, nil + } + +-func (b *Builder) getBindMount(tokens []string, context *imageTypes.SystemContext, contextDir string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir string) (*specs.Mount, string, error) { ++func (b *Builder) getBindMount(tokens []string, sys *types.SystemContext, contextDir string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir, tmpDir string) (*specs.Mount, string, string, string, error) { + if contextDir == "" { +- return nil, "", errors.New("Context Directory for current run invocation is not configured") ++ return nil, "", "", "", errors.New("context directory for current run invocation is not configured") + } + var optionMounts []specs.Mount +- mount, image, err := volumes.GetBindMount(context, tokens, contextDir, b.store, b.MountLabel, stageMountPoints, workDir) ++ mount, image, intermediateMount, overlayMount, err := volumes.GetBindMount(sys, tokens, contextDir, b.store, b.MountLabel, stageMountPoints, workDir, tmpDir) + if err != nil { +- return nil, image, err ++ return nil, "", "", "", err + } + optionMounts = append(optionMounts, mount) + volumes, err := b.runSetupVolumeMounts(b.MountLabel, nil, optionMounts, idMaps) + if err != nil { +- return nil, image, err ++ return nil, "", "", "", err + } +- return &volumes[0], image, nil ++ return &volumes[0], image, intermediateMount, overlayMount, nil + } + + func (b *Builder) getTmpfsMount(tokens []string, idMaps IDMaps) (*specs.Mount, error) { +@@ -1900,52 +1954,53 @@ func (b *Builder) cleanupTempVolumes() { + } + + // cleanupRunMounts cleans up run mounts so they only appear in this run. +-func (b *Builder) cleanupRunMounts(context *imageTypes.SystemContext, mountpoint string, artifacts *runMountArtifacts) error { ++func (b *Builder) cleanupRunMounts(mountpoint string, artifacts *runMountArtifacts) error { + for _, agent := range artifacts.Agents { +- err := agent.Shutdown() +- if err != nil { ++ servePath := agent.ServePath() ++ if err := agent.Shutdown(); err != nil { ++ return fmt.Errorf("shutting down SSH agent at %q: %v", servePath, err) ++ } ++ } ++ // clean up any overlays we mounted ++ for _, overlayDirectory := range artifacts.RunOverlayDirs { ++ if err := overlay.RemoveTemp(overlayDirectory); err != nil { + return err + } + } +- +- //cleanup any mounted images for this run ++ // unmount anything that needs unmounting ++ for _, intermediateMount := range artifacts.IntermediateMounts { ++ if err := mount.Unmount(intermediateMount); err != nil && !errors.Is(err, os.ErrNotExist) { ++ return fmt.Errorf("unmounting %q: %w", intermediateMount, err) ++ } ++ if err := os.Remove(intermediateMount); err != nil && !errors.Is(err, os.ErrNotExist) { ++ return fmt.Errorf("removing should-be-empty directory %q: %w", intermediateMount, err) ++ } ++ } ++ // unmount any images we mounted for this run + for _, image := range artifacts.MountedImages { +- if image != "" { +- // if flow hits here some image was mounted for this run +- i, err := internalUtil.LookupImage(context, b.store, image) +- if err == nil { +- // silently try to unmount and do nothing +- // if image is being used by something else +- _ = i.Unmount(false) +- } +- if errors.Is(err, storageTypes.ErrImageUnknown) { +- // Ignore only if ErrImageUnknown +- // Reason: Image is already unmounted do nothing +- continue +- } +- return err ++ if _, err := b.store.UnmountImage(image, false); err != nil { ++ logrus.Debugf("umounting image %q: %v", image, err) + } + } ++ // remove mount targets that were created for this run + opts := copier.RemoveOptions{ + All: true, + } + for _, path := range artifacts.RunMountTargets { +- err := copier.Remove(mountpoint, path, opts) +- if err != nil { +- return err ++ if err := copier.Remove(mountpoint, path, opts); err != nil { ++ return fmt.Errorf("removing mount target %q %q: %w", mountpoint, path, err) + } + } + var prevErr error + for _, path := range artifacts.TmpFiles { +- err := os.Remove(path) +- if !errors.Is(err, os.ErrNotExist) { ++ if err := os.Remove(path); err != nil && !errors.Is(err, os.ErrNotExist) { + if prevErr != nil { + logrus.Error(prevErr) + } +- prevErr = err ++ prevErr = fmt.Errorf("removing temporary file: %w", err) + } + } +- // unlock if any locked files from this RUN statement ++ // unlock locks we took, most likely for cache mounts + volumes.UnlockLockArray(artifacts.TargetLocks) + return prevErr + } +diff --git a/vendor/github.com/containers/buildah/run_freebsd.go b/vendor/github.com/containers/buildah/run_freebsd.go +index 9344876df9..369cdd330b 100644 +--- a/vendor/github.com/containers/buildah/run_freebsd.go ++++ b/vendor/github.com/containers/buildah/run_freebsd.go +@@ -240,7 +240,7 @@ func (b *Builder) Run(command []string, options RunOptions) error { + } + + defer func() { +- if err := b.cleanupRunMounts(options.SystemContext, mountPoint, runArtifacts); err != nil { ++ if err := b.cleanupRunMounts(mountPoint, runArtifacts); err != nil { + options.Logger.Errorf("unable to cleanup run mounts %v", err) + } + }() +@@ -313,9 +313,12 @@ func setupSpecialMountSpecChanges(spec *spec.Spec, shmSize string) ([]specs.Moun + return spec.Mounts, nil + } + +-// If this function succeeds and returns a non-nil *lockfile.LockFile, the caller must unlock it (when??). +-func (b *Builder) getCacheMount(tokens []string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir string) (*spec.Mount, *lockfile.LockFile, error) { +- return nil, nil, errors.New("cache mounts not supported on freebsd") ++// If this succeeded, the caller would be expected to, after the command which ++// uses the mount exits, unmount the mounted filesystem and remove its ++// mountpoint (if we provided the path to its mountpoint), and release the lock ++// (if we took one). ++func (b *Builder) getCacheMount(tokens []string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir, tmpDir string) (*specs.Mount, string, *lockfile.LockFile, error) { ++ return nil, "", nil, errors.New("cache mounts not supported on freebsd") + } + + func (b *Builder) runSetupVolumeMounts(mountLabel string, volumeMounts []string, optionMounts []specs.Mount, idMaps IDMaps) (mounts []specs.Mount, Err error) { +diff --git a/vendor/github.com/containers/buildah/run_linux.go b/vendor/github.com/containers/buildah/run_linux.go +index 5263abeccc..69c51c1ed9 100644 +--- a/vendor/github.com/containers/buildah/run_linux.go ++++ b/vendor/github.com/containers/buildah/run_linux.go +@@ -39,6 +39,7 @@ import ( + "github.com/containers/storage/pkg/idtools" + "github.com/containers/storage/pkg/ioutils" + "github.com/containers/storage/pkg/lockfile" ++ "github.com/containers/storage/pkg/mount" + "github.com/containers/storage/pkg/stringid" + "github.com/containers/storage/pkg/unshare" + "github.com/docker/go-units" +@@ -46,6 +47,7 @@ import ( + "github.com/opencontainers/runtime-tools/generate" + "github.com/opencontainers/selinux/go-selinux/label" + "github.com/sirupsen/logrus" ++ "golang.org/x/exp/slices" + "golang.org/x/sys/unix" + ) + +@@ -349,7 +351,7 @@ rootless=%d + } + + defer func() { +- if err := b.cleanupRunMounts(options.SystemContext, mountPoint, runArtifacts); err != nil { ++ if err := b.cleanupRunMounts(mountPoint, runArtifacts); err != nil { + options.Logger.Errorf("unable to cleanup run mounts %v", err) + } + }() +@@ -950,7 +952,7 @@ func (b *Builder) runSetupVolumeMounts(mountLabel string, volumeMounts []string, + RootGID: idMaps.rootGID, + UpperDirOptionFragment: upperDir, + WorkDirOptionFragment: workDir, +- GraphOpts: b.store.GraphOptions(), ++ GraphOpts: slices.Clone(b.store.GraphOptions()), + } + + overlayMount, err := overlay.MountWithOptions(contentDir, host, container, &overlayOpts) +@@ -959,7 +961,7 @@ func (b *Builder) runSetupVolumeMounts(mountLabel string, volumeMounts []string, + } + + // If chown true, add correct ownership to the overlay temp directories. +- if foundU { ++ if err == nil && foundU { + if err := chown.ChangeHostPathOwnership(contentDir, true, idMaps.processUID, idMaps.processGID); err != nil { + return specs.Mount{}, err + } +@@ -1217,24 +1219,39 @@ func checkIdsGreaterThan5(ids []specs.LinuxIDMapping) bool { + return false + } + +-// If this function succeeds and returns a non-nil *lockfile.LockFile, the caller must unlock it (when??). +-func (b *Builder) getCacheMount(tokens []string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir string) (*specs.Mount, *lockfile.LockFile, error) { ++// Returns a Mount to add to the runtime spec's list of mounts, an optional ++// path of a mounted filesystem, unmounted, and an optional lock, or an error. ++// ++// The caller is expected to, after the command which uses the mount exits, ++// unmount the mounted filesystem (if we provided the path to its mountpoint) ++// and remove its mountpoint, , and release the lock (if we took one). ++func (b *Builder) getCacheMount(tokens []string, stageMountPoints map[string]internal.StageMountDetails, idMaps IDMaps, workDir, tmpDir string) (*specs.Mount, string, *lockfile.LockFile, error) { + var optionMounts []specs.Mount +- mount, targetLock, err := volumes.GetCacheMount(tokens, b.store, b.MountLabel, stageMountPoints, workDir) ++ optionMount, intermediateMount, targetLock, err := volumes.GetCacheMount(tokens, stageMountPoints, workDir, tmpDir) + if err != nil { +- return nil, nil, err ++ return nil, "", nil, err + } + succeeded := false + defer func() { +- if !succeeded && targetLock != nil { +- targetLock.Unlock() ++ if !succeeded { ++ if intermediateMount != "" { ++ if err := mount.Unmount(intermediateMount); err != nil { ++ b.Logger.Debugf("unmounting %q: %v", intermediateMount, err) ++ } ++ if err := os.Remove(intermediateMount); err != nil { ++ b.Logger.Debugf("removing should-be-empty directory %q: %v", intermediateMount, err) ++ } ++ } ++ if targetLock != nil { ++ targetLock.Unlock() ++ } + } + }() +- optionMounts = append(optionMounts, mount) ++ optionMounts = append(optionMounts, optionMount) + volumes, err := b.runSetupVolumeMounts(b.MountLabel, nil, optionMounts, idMaps) + if err != nil { +- return nil, nil, err ++ return nil, "", nil, err + } + succeeded = true +- return &volumes[0], targetLock, nil ++ return &volumes[0], intermediateMount, targetLock, nil + } +diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go +index 75b917f013..03da4d638a 100644 +--- a/vendor/github.com/containers/common/pkg/config/config.go ++++ b/vendor/github.com/containers/common/pkg/config/config.go +@@ -759,7 +759,7 @@ func (m *MachineConfig) URI() string { + } + + func (c *EngineConfig) findRuntime() string { +- // Search for crun first followed by runc, kata, runsc ++ // Search for crun first followed by runc, runj, kata, runsc, ocijail + for _, name := range []string{"crun", "runc", "runj", "kata", "runsc", "ocijail"} { + for _, v := range c.OCIRuntimes[name] { + if _, err := os.Stat(v); err == nil { +diff --git a/vendor/github.com/containers/image/v5/copy/progress_bars.go b/vendor/github.com/containers/image/v5/copy/progress_bars.go +index c02bc8c81e..ba6a273891 100644 +--- a/vendor/github.com/containers/image/v5/copy/progress_bars.go ++++ b/vendor/github.com/containers/image/v5/copy/progress_bars.go +@@ -48,7 +48,7 @@ type progressBar struct { + // As a convention, most users of progress bars should call mark100PercentComplete on full success; + // by convention, we don't leave progress bars in partial state when fully done + // (even if we copied much less data than anticipated). +-func (c *copier) createProgressBar(pool *mpb.Progress, partial bool, info types.BlobInfo, kind string, onComplete string) (*progressBar, error) { // shortDigestLen is the length of the digest used for blobs. ++func (c *copier) createProgressBar(pool *mpb.Progress, partial bool, info types.BlobInfo, kind string, onComplete string) (*progressBar, error) { + // shortDigestLen is the length of the digest used for blobs. + const shortDigestLen = 12 + +diff --git a/vendor/github.com/containers/image/v5/docker/docker_image.go b/vendor/github.com/containers/image/v5/docker/docker_image.go +index 74f559dce7..9741afc3f0 100644 +--- a/vendor/github.com/containers/image/v5/docker/docker_image.go ++++ b/vendor/github.com/containers/image/v5/docker/docker_image.go +@@ -91,12 +91,6 @@ func GetRepositoryTags(ctx context.Context, sys *types.SystemContext, ref types. + } + for _, tag := range tagsHolder.Tags { + if _, err := reference.WithTag(dr.ref, tag); err != nil { // Ensure the tag does not contain unexpected values +- // Per https://github.com/containers/skopeo/issues/2409 , Sonatype Nexus 3.58, contrary +- // to the spec, may include JSON null values in the list; and Go silently parses them as "". +- if tag == "" { +- logrus.Debugf("Ignoring invalid empty tag") +- continue +- } + // Per https://github.com/containers/skopeo/issues/2346 , unknown versions of JFrog Artifactory, + // contrary to the tag format specified in + // https://github.com/opencontainers/distribution-spec/blob/8a871c8234977df058f1a14e299fe0a673853da2/spec.md?plain=1#L160 , +diff --git a/vendor/github.com/containers/image/v5/pkg/blobinfocache/default.go b/vendor/github.com/containers/image/v5/pkg/blobinfocache/default.go +index 037572b0ee..b413ec5131 100644 +--- a/vendor/github.com/containers/image/v5/pkg/blobinfocache/default.go ++++ b/vendor/github.com/containers/image/v5/pkg/blobinfocache/default.go +@@ -74,3 +74,15 @@ func DefaultCache(sys *types.SystemContext) types.BlobInfoCache { + logrus.Debugf("Using SQLite blob info cache at %s", path) + return cache + } ++ ++// CleanupDefaultCache removes the blob info cache directory. ++// It deletes the cache directory but it does not affect any file or memory buffer currently ++// in use. ++func CleanupDefaultCache(sys *types.SystemContext) error { ++ dir, err := blobInfoCacheDir(sys, rootless.GetRootlessEUID()) ++ if err != nil { ++ // Mirror the DefaultCache behavior that does not fail in this case ++ return nil ++ } ++ return os.RemoveAll(dir) ++} +diff --git a/vendor/github.com/containers/storage/drivers/overlay/overlay.go b/vendor/github.com/containers/storage/drivers/overlay/overlay.go +index d618d141d3..08532fbda6 100644 +--- a/vendor/github.com/containers/storage/drivers/overlay/overlay.go ++++ b/vendor/github.com/containers/storage/drivers/overlay/overlay.go +@@ -1919,6 +1919,7 @@ func (d *Driver) Put(id string) error { + if stat, ok := fi.Sys().(*syscall.Stat_t); ok { + uid, gid = int(stat.Uid), int(stat.Gid) + } ++ + tmpMountpoint := path.Join(dir, "merged.1") + if err := idtools.MkdirAs(tmpMountpoint, 0o700, uid, gid); err != nil && !errors.Is(err, os.ErrExist) { + return err +diff --git a/vendor/github.com/go-jose/go-jose/v3/CHANGELOG.md b/vendor/github.com/go-jose/go-jose/v3/CHANGELOG.md +index 7820c2f4d7..ce2a54ebf2 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/CHANGELOG.md ++++ b/vendor/github.com/go-jose/go-jose/v3/CHANGELOG.md +@@ -1,6 +1,76 @@ ++# v4.0.1 ++ ++## Fixed ++ ++ - An attacker could send a JWE containing compressed data that used large ++ amounts of memory and CPU when decompressed by `Decrypt` or `DecryptMulti`. ++ Those functions now return an error if the decompressed data would exceed ++ 250kB or 10x the compressed size (whichever is larger). Thanks to ++ Enze Wang@Alioth and Jianjun Chen@Zhongguancun Lab (@zer0yu and @chenjj) ++ for reporting. ++ ++# v4.0.0 ++ ++This release makes some breaking changes in order to more thoroughly ++address the vulnerabilities discussed in [Three New Attacks Against JSON Web ++Tokens][1], "Sign/encrypt confusion", "Billion hash attack", and "Polyglot ++token". ++ ++## Changed ++ ++ - Limit JWT encryption types (exclude password or public key types) (#78) ++ - Enforce minimum length for HMAC keys (#85) ++ - jwt: match any audience in a list, rather than requiring all audiences (#81) ++ - jwt: accept only Compact Serialization (#75) ++ - jws: Add expected algorithms for signatures (#74) ++ - Require specifying expected algorithms for ParseEncrypted, ++ ParseSigned, ParseDetached, jwt.ParseEncrypted, jwt.ParseSigned, ++ jwt.ParseSignedAndEncrypted (#69, #74) ++ - Usually there is a small, known set of appropriate algorithms for a program ++ to use and it's a mistake to allow unexpected algorithms. For instance the ++ "billion hash attack" relies in part on programs accepting the PBES2 ++ encryption algorithm and doing the necessary work even if they weren't ++ specifically configured to allow PBES2. ++ - Revert "Strip padding off base64 strings" (#82) ++ - The specs require base64url encoding without padding. ++ - Minimum supported Go version is now 1.21 ++ ++## Added ++ ++ - ParseSignedCompact, ParseSignedJSON, ParseEncryptedCompact, ParseEncryptedJSON. ++ - These allow parsing a specific serialization, as opposed to ParseSigned and ++ ParseEncrypted, which try to automatically detect which serialization was ++ provided. It's common to require a specific serialization for a specific ++ protocol - for instance JWT requires Compact serialization. ++ ++[1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf ++ ++# v3.0.3 ++ ++## Fixed ++ ++ - Limit decompression output size to prevent a DoS. Backport from v4.0.1. ++ ++# v3.0.2 ++ ++## Fixed ++ ++ - DecryptMulti: handle decompression error (#19) ++ ++## Changed ++ ++ - jwe/CompactSerialize: improve performance (#67) ++ - Increase the default number of PBKDF2 iterations to 600k (#48) ++ - Return the proper algorithm for ECDSA keys (#45) ++ ++## Added ++ ++ - Add Thumbprint support for opaque signers (#38) ++ + # v3.0.1 + +-Fixed: ++## Fixed ++ + - Security issue: an attacker specifying a large "p2c" value can cause + JSONWebEncryption.Decrypt and JSONWebEncryption.DecryptMulti to consume large + amounts of CPU, causing a DoS. Thanks to Matt Schwager (@mschwager) for the +diff --git a/vendor/github.com/go-jose/go-jose/v3/README.md b/vendor/github.com/go-jose/go-jose/v3/README.md +index b90c7e5c6b..282cd9e135 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/README.md ++++ b/vendor/github.com/go-jose/go-jose/v3/README.md +@@ -1,10 +1,17 @@ + # Go JOSE + +-[![godoc](http://img.shields.io/badge/godoc-jose_package-blue.svg?style=flat)](https://godoc.org/gopkg.in/go-jose/go-jose.v2) +-[![godoc](http://img.shields.io/badge/godoc-jwt_package-blue.svg?style=flat)](https://godoc.org/gopkg.in/go-jose/go-jose.v2/jwt) +-[![license](http://img.shields.io/badge/license-apache_2.0-blue.svg?style=flat)](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE) +-[![build](https://travis-ci.org/go-jose/go-jose.svg?branch=master)](https://travis-ci.org/go-jose/go-jose) +-[![coverage](https://coveralls.io/repos/github/go-jose/go-jose/badge.svg?branch=master)](https://coveralls.io/r/go-jose/go-jose) ++### Versions ++ ++[Version 4](https://github.com/go-jose/go-jose) ++([branch](https://github.com/go-jose/go-jose/), ++[doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version: ++ ++ import "github.com/go-jose/go-jose/v4" ++ ++The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which ++are deprecated. ++ ++### Summary + + Package jose aims to provide an implementation of the Javascript Object Signing + and Encryption set of standards. This includes support for JSON Web Encryption, +@@ -21,13 +28,13 @@ US maintained blocked list. + ## Overview + + The implementation follows the +-[JSON Web Encryption](http://dx.doi.org/10.17487/RFC7516) (RFC 7516), +-[JSON Web Signature](http://dx.doi.org/10.17487/RFC7515) (RFC 7515), and +-[JSON Web Token](http://dx.doi.org/10.17487/RFC7519) (RFC 7519) specifications. ++[JSON Web Encryption](https://dx.doi.org/10.17487/RFC7516) (RFC 7516), ++[JSON Web Signature](https://dx.doi.org/10.17487/RFC7515) (RFC 7515), and ++[JSON Web Token](https://dx.doi.org/10.17487/RFC7519) (RFC 7519) specifications. + Tables of supported algorithms are shown below. The library supports both + the compact and JWS/JWE JSON Serialization formats, and has optional support for + multiple recipients. It also comes with a small command-line utility +-([`jose-util`](https://github.com/go-jose/go-jose/tree/master/jose-util)) ++([`jose-util`](https://pkg.go.dev/github.com/go-jose/go-jose/jose-util)) + for dealing with JOSE messages in a shell. + + **Note**: We use a forked version of the `encoding/json` package from the Go +@@ -36,31 +43,10 @@ of [case-insensitive matching](https://www.ietf.org/mail-archive/web/json/curren + This is to avoid differences in interpretation of messages between go-jose and + libraries in other languages. + +-### Versions +- +-[Version 2](https://gopkg.in/go-jose/go-jose.v2) +-([branch](https://github.com/go-jose/go-jose/tree/v2), +-[doc](https://godoc.org/gopkg.in/go-jose/go-jose.v2)) is the current stable version: +- +- import "gopkg.in/go-jose/go-jose.v2" +- +-[Version 3](https://github.com/go-jose/go-jose) +-([branch](https://github.com/go-jose/go-jose/tree/master), +-[doc](https://godoc.org/github.com/go-jose/go-jose)) is the under development/unstable version (not released yet): +- +- import "github.com/go-jose/go-jose/v3" +- +-All new feature development takes place on the `master` branch, which we are +-preparing to release as version 3 soon. Version 2 will continue to receive +-critical bug and security fixes. Note that starting with version 3 we are +-using Go modules for versioning instead of `gopkg.in` as before. Version 3 also will require Go version 1.13 or higher. +- +-Version 1 (on the `v1` branch) is frozen and not supported anymore. +- + ### Supported algorithms + + See below for a table of supported algorithms. Algorithm identifiers match +-the names in the [JSON Web Algorithms](http://dx.doi.org/10.17487/RFC7518) ++the names in the [JSON Web Algorithms](https://dx.doi.org/10.17487/RFC7518) + standard where possible. The Godoc reference has a list of constants. + + Key encryption | Algorithm identifier(s) +@@ -103,20 +89,20 @@ allows attaching a key id. + + Algorithm(s) | Corresponding types + :------------------------- | ------------------------------- +- RSA | *[rsa.PublicKey](http://golang.org/pkg/crypto/rsa/#PublicKey), *[rsa.PrivateKey](http://golang.org/pkg/crypto/rsa/#PrivateKey) +- ECDH, ECDSA | *[ecdsa.PublicKey](http://golang.org/pkg/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](http://golang.org/pkg/crypto/ecdsa/#PrivateKey) +- EdDSA1 | [ed25519.PublicKey](https://godoc.org/pkg/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://godoc.org/pkg/crypto/ed25519#PrivateKey) ++ RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey) ++ ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey) ++ EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey) + AES, HMAC | []byte + + 1. Only available in version 2 or later of the package + + ## Examples + +-[![godoc](http://img.shields.io/badge/godoc-jose_package-blue.svg?style=flat)](https://godoc.org/gopkg.in/go-jose/go-jose.v2) +-[![godoc](http://img.shields.io/badge/godoc-jwt_package-blue.svg?style=flat)](https://godoc.org/gopkg.in/go-jose/go-jose.v2/jwt) ++[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v3.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v3) ++[![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v3/jwt.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v3/jwt) + + Examples can be found in the Godoc + reference for this package. The +-[`jose-util`](https://github.com/go-jose/go-jose/tree/master/jose-util) ++[`jose-util`](https://github.com/go-jose/go-jose/tree/v3/jose-util) + subdirectory also contains a small command-line utility which might be useful + as an example as well. +diff --git a/vendor/github.com/go-jose/go-jose/v3/SECURITY.md b/vendor/github.com/go-jose/go-jose/v3/SECURITY.md +new file mode 100644 +index 0000000000..2f18a75a82 +--- /dev/null ++++ b/vendor/github.com/go-jose/go-jose/v3/SECURITY.md +@@ -0,0 +1,13 @@ ++# Security Policy ++This document explains how to contact the Let's Encrypt security team to report security vulnerabilities. ++ ++## Supported Versions ++| Version | Supported | ++| ------- | ----------| ++| >= v3 | ✓ | ++| v2 | ✗ | ++| v1 | ✗ | ++ ++## Reporting a vulnerability ++ ++Please see [https://letsencrypt.org/contact/#security](https://letsencrypt.org/contact/#security) for the email address to report a vulnerability. Ensure that the subject line for your report contains the word `vulnerability` and is descriptive. Your email should be acknowledged within 24 hours. If you do not receive a response within 24 hours, please follow-up again with another email. +diff --git a/vendor/github.com/go-jose/go-jose/v3/doc.go b/vendor/github.com/go-jose/go-jose/v3/doc.go +index 71ec1c419b..0ad40ca085 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/doc.go ++++ b/vendor/github.com/go-jose/go-jose/v3/doc.go +@@ -15,13 +15,11 @@ + */ + + /* +- + Package jose aims to provide an implementation of the Javascript Object Signing + and Encryption set of standards. It implements encryption and signing based on + the JSON Web Encryption and JSON Web Signature standards, with optional JSON Web + Token support available in a sub-package. The library supports both the compact + and JWS/JWE JSON Serialization formats, and has optional support for multiple + recipients. +- + */ + package jose +diff --git a/vendor/github.com/go-jose/go-jose/v3/json/decode.go b/vendor/github.com/go-jose/go-jose/v3/json/decode.go +index 4dbc4146cf..50634dd847 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/json/decode.go ++++ b/vendor/github.com/go-jose/go-jose/v3/json/decode.go +@@ -75,14 +75,13 @@ import ( + // + // The JSON null value unmarshals into an interface, map, pointer, or slice + // by setting that Go value to nil. Because null is often used in JSON to mean +-// ``not present,'' unmarshaling a JSON null into any other Go type has no effect ++// β€œnot present,” unmarshaling a JSON null into any other Go type has no effect + // on the value and produces no error. + // + // When unmarshaling quoted strings, invalid UTF-8 or + // invalid UTF-16 surrogate pairs are not treated as an error. + // Instead, they are replaced by the Unicode replacement + // character U+FFFD. +-// + func Unmarshal(data []byte, v interface{}) error { + // Check for well-formedness. + // Avoids filling out half a data structure +diff --git a/vendor/github.com/go-jose/go-jose/v3/json/encode.go b/vendor/github.com/go-jose/go-jose/v3/json/encode.go +index ea0a136198..98de68ce1e 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/json/encode.go ++++ b/vendor/github.com/go-jose/go-jose/v3/json/encode.go +@@ -58,6 +58,7 @@ import ( + // becomes a member of the object unless + // - the field's tag is "-", or + // - the field is empty and its tag specifies the "omitempty" option. ++// + // The empty values are false, 0, any + // nil pointer or interface value, and any array, slice, map, or string of + // length zero. The object's default key string is the struct field name +@@ -65,28 +66,28 @@ import ( + // the struct field's tag value is the key name, followed by an optional comma + // and options. Examples: + // +-// // Field is ignored by this package. +-// Field int `json:"-"` ++// // Field is ignored by this package. ++// Field int `json:"-"` + // +-// // Field appears in JSON as key "myName". +-// Field int `json:"myName"` ++// // Field appears in JSON as key "myName". ++// Field int `json:"myName"` + // +-// // Field appears in JSON as key "myName" and +-// // the field is omitted from the object if its value is empty, +-// // as defined above. +-// Field int `json:"myName,omitempty"` ++// // Field appears in JSON as key "myName" and ++// // the field is omitted from the object if its value is empty, ++// // as defined above. ++// Field int `json:"myName,omitempty"` + // +-// // Field appears in JSON as key "Field" (the default), but +-// // the field is skipped if empty. +-// // Note the leading comma. +-// Field int `json:",omitempty"` ++// // Field appears in JSON as key "Field" (the default), but ++// // the field is skipped if empty. ++// // Note the leading comma. ++// Field int `json:",omitempty"` + // + // The "string" option signals that a field is stored as JSON inside a + // JSON-encoded string. It applies only to fields of string, floating point, + // integer, or boolean types. This extra level of encoding is sometimes used + // when communicating with JavaScript programs: + // +-// Int64String int64 `json:",string"` ++// Int64String int64 `json:",string"` + // + // The key name will be used if it's a non-empty string consisting of + // only Unicode letters, digits, dollar signs, percent signs, hyphens, +@@ -133,7 +134,6 @@ import ( + // JSON cannot represent cyclic data structures and Marshal does not + // handle them. Passing cyclic structures to Marshal will result in + // an infinite recursion. +-// + func Marshal(v interface{}) ([]byte, error) { + e := &encodeState{} + err := e.marshal(v) +diff --git a/vendor/github.com/go-jose/go-jose/v3/json/stream.go b/vendor/github.com/go-jose/go-jose/v3/json/stream.go +index 9b2b926b03..f03b171e6a 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/json/stream.go ++++ b/vendor/github.com/go-jose/go-jose/v3/json/stream.go +@@ -240,7 +240,6 @@ var _ Unmarshaler = (*RawMessage)(nil) + // Number, for JSON numbers + // string, for JSON string literals + // nil, for JSON null +-// + type Token interface{} + + const ( +diff --git a/vendor/github.com/go-jose/go-jose/v3/opaque.go b/vendor/github.com/go-jose/go-jose/v3/opaque.go +index fc3e8d2ef6..68db085ef6 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/opaque.go ++++ b/vendor/github.com/go-jose/go-jose/v3/opaque.go +@@ -121,7 +121,7 @@ func (oke *opaqueKeyEncrypter) encryptKey(cek []byte, alg KeyAlgorithm) (recipie + return oke.encrypter.encryptKey(cek, alg) + } + +-//OpaqueKeyDecrypter is an interface that supports decrypting keys with an opaque key. ++// OpaqueKeyDecrypter is an interface that supports decrypting keys with an opaque key. + type OpaqueKeyDecrypter interface { + DecryptKey(encryptedKey []byte, header Header) ([]byte, error) + } +diff --git a/vendor/github.com/go-jose/go-jose/v3/shared.go b/vendor/github.com/go-jose/go-jose/v3/shared.go +index fc2505e0eb..489a04e32a 100644 +--- a/vendor/github.com/go-jose/go-jose/v3/shared.go ++++ b/vendor/github.com/go-jose/go-jose/v3/shared.go +@@ -183,8 +183,13 @@ type Header struct { + // Unverified certificate chain parsed from x5c header. + certificates []*x509.Certificate + +- // Any headers not recognised above get unmarshalled +- // from JSON in a generic manner and placed in this map. ++ // At parse time, each header parameter with a name other than "kid", ++ // "jwk", "alg", "nonce", or "x5c" will have its value passed to ++ // [json.Unmarshal] to unmarshal it into an interface value. ++ // The resulting value will be stored in this map, with the header ++ // parameter name as the key. ++ // ++ // [json.Unmarshal]: https://pkg.go.dev/encoding/json#Unmarshal + ExtraHeaders map[HeaderKey]interface{} + } + +diff --git a/vendor/github.com/hashicorp/go-retryablehttp/.go-version b/vendor/github.com/hashicorp/go-retryablehttp/.go-version +new file mode 100644 +index 0000000000..6fee2fedb0 +--- /dev/null ++++ b/vendor/github.com/hashicorp/go-retryablehttp/.go-version +@@ -0,0 +1 @@ ++1.22.2 +diff --git a/vendor/github.com/hashicorp/go-retryablehttp/CHANGELOG.md b/vendor/github.com/hashicorp/go-retryablehttp/CHANGELOG.md +index 33f901df93..68a627c6d9 100644 +--- a/vendor/github.com/hashicorp/go-retryablehttp/CHANGELOG.md ++++ b/vendor/github.com/hashicorp/go-retryablehttp/CHANGELOG.md +@@ -30,4 +30,4 @@ BUG FIXES: + + ## 0.7.3 (May 15, 2023) + +-Initial release +\ No newline at end of file ++Initial release +diff --git a/vendor/github.com/hashicorp/go-retryablehttp/CODEOWNERS b/vendor/github.com/hashicorp/go-retryablehttp/CODEOWNERS +index 34b9cc846e..d6dd78a2dd 100644 +--- a/vendor/github.com/hashicorp/go-retryablehttp/CODEOWNERS ++++ b/vendor/github.com/hashicorp/go-retryablehttp/CODEOWNERS +@@ -1 +1 @@ +-* @hashicorp/go-retryablehttp-maintainers +\ No newline at end of file ++* @hashicorp/go-retryablehttp-maintainers +diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go +index d569c0c949..d0ea68f408 100644 +--- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go ++++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go +@@ -1,6 +1,7 @@ +-//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine ++//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine && !tinygo + // +build darwin freebsd openbsd netbsd dragonfly hurd + // +build !appengine ++// +build !tinygo + + package isatty + +diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go +index 31503226f6..7402e0618a 100644 +--- a/vendor/github.com/mattn/go-isatty/isatty_others.go ++++ b/vendor/github.com/mattn/go-isatty/isatty_others.go +@@ -1,5 +1,6 @@ +-//go:build appengine || js || nacl || wasm +-// +build appengine js nacl wasm ++//go:build (appengine || js || nacl || tinygo || wasm) && !windows ++// +build appengine js nacl tinygo wasm ++// +build !windows + + package isatty + +diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +index 67787657fb..0337d8cf6d 100644 +--- a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go ++++ b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +@@ -1,6 +1,7 @@ +-//go:build (linux || aix || zos) && !appengine ++//go:build (linux || aix || zos) && !appengine && !tinygo + // +build linux aix zos + // +build !appengine ++// +build !tinygo + + package isatty + +diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE +index 6a66aea5ea..2a7cf70da6 100644 +--- a/vendor/golang.org/x/crypto/LICENSE ++++ b/vendor/golang.org/x/crypto/LICENSE +@@ -1,4 +1,4 @@ +-Copyright (c) 2009 The Go Authors. All rights reserved. ++Copyright 2009 The Go Authors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are +@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +- * Neither the name of Google Inc. nor the names of its ++ * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +diff --git a/vendor/golang.org/x/crypto/argon2/blamka_amd64.s b/vendor/golang.org/x/crypto/argon2/blamka_amd64.s +index 6713accac0..c3895478ed 100644 +--- a/vendor/golang.org/x/crypto/argon2/blamka_amd64.s ++++ b/vendor/golang.org/x/crypto/argon2/blamka_amd64.s +@@ -1,243 +1,2791 @@ +-// Copyright 2017 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run blamka_amd64.go -out ../blamka_amd64.s -pkg argon2. DO NOT EDIT. + + //go:build amd64 && gc && !purego + + #include "textflag.h" + +-DATA Β·c40<>+0x00(SB)/8, $0x0201000706050403 +-DATA Β·c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +-GLOBL Β·c40<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·c48<>+0x00(SB)/8, $0x0100070605040302 +-DATA Β·c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +-GLOBL Β·c48<>(SB), (NOPTR+RODATA), $16 +- +-#define SHUFFLE(v2, v3, v4, v5, v6, v7, t1, t2) \ +- MOVO v4, t1; \ +- MOVO v5, v4; \ +- MOVO t1, v5; \ +- MOVO v6, t1; \ +- PUNPCKLQDQ v6, t2; \ +- PUNPCKHQDQ v7, v6; \ +- PUNPCKHQDQ t2, v6; \ +- PUNPCKLQDQ v7, t2; \ +- MOVO t1, v7; \ +- MOVO v2, t1; \ +- PUNPCKHQDQ t2, v7; \ +- PUNPCKLQDQ v3, t2; \ +- PUNPCKHQDQ t2, v2; \ +- PUNPCKLQDQ t1, t2; \ +- PUNPCKHQDQ t2, v3 +- +-#define SHUFFLE_INV(v2, v3, v4, v5, v6, v7, t1, t2) \ +- MOVO v4, t1; \ +- MOVO v5, v4; \ +- MOVO t1, v5; \ +- MOVO v2, t1; \ +- PUNPCKLQDQ v2, t2; \ +- PUNPCKHQDQ v3, v2; \ +- PUNPCKHQDQ t2, v2; \ +- PUNPCKLQDQ v3, t2; \ +- MOVO t1, v3; \ +- MOVO v6, t1; \ +- PUNPCKHQDQ t2, v3; \ +- PUNPCKLQDQ v7, t2; \ +- PUNPCKHQDQ t2, v6; \ +- PUNPCKLQDQ t1, t2; \ +- PUNPCKHQDQ t2, v7 +- +-#define HALF_ROUND(v0, v1, v2, v3, v4, v5, v6, v7, t0, c40, c48) \ +- MOVO v0, t0; \ +- PMULULQ v2, t0; \ +- PADDQ v2, v0; \ +- PADDQ t0, v0; \ +- PADDQ t0, v0; \ +- PXOR v0, v6; \ +- PSHUFD $0xB1, v6, v6; \ +- MOVO v4, t0; \ +- PMULULQ v6, t0; \ +- PADDQ v6, v4; \ +- PADDQ t0, v4; \ +- PADDQ t0, v4; \ +- PXOR v4, v2; \ +- PSHUFB c40, v2; \ +- MOVO v0, t0; \ +- PMULULQ v2, t0; \ +- PADDQ v2, v0; \ +- PADDQ t0, v0; \ +- PADDQ t0, v0; \ +- PXOR v0, v6; \ +- PSHUFB c48, v6; \ +- MOVO v4, t0; \ +- PMULULQ v6, t0; \ +- PADDQ v6, v4; \ +- PADDQ t0, v4; \ +- PADDQ t0, v4; \ +- PXOR v4, v2; \ +- MOVO v2, t0; \ +- PADDQ v2, t0; \ +- PSRLQ $63, v2; \ +- PXOR t0, v2; \ +- MOVO v1, t0; \ +- PMULULQ v3, t0; \ +- PADDQ v3, v1; \ +- PADDQ t0, v1; \ +- PADDQ t0, v1; \ +- PXOR v1, v7; \ +- PSHUFD $0xB1, v7, v7; \ +- MOVO v5, t0; \ +- PMULULQ v7, t0; \ +- PADDQ v7, v5; \ +- PADDQ t0, v5; \ +- PADDQ t0, v5; \ +- PXOR v5, v3; \ +- PSHUFB c40, v3; \ +- MOVO v1, t0; \ +- PMULULQ v3, t0; \ +- PADDQ v3, v1; \ +- PADDQ t0, v1; \ +- PADDQ t0, v1; \ +- PXOR v1, v7; \ +- PSHUFB c48, v7; \ +- MOVO v5, t0; \ +- PMULULQ v7, t0; \ +- PADDQ v7, v5; \ +- PADDQ t0, v5; \ +- PADDQ t0, v5; \ +- PXOR v5, v3; \ +- MOVO v3, t0; \ +- PADDQ v3, t0; \ +- PSRLQ $63, v3; \ +- PXOR t0, v3 +- +-#define LOAD_MSG_0(block, off) \ +- MOVOU 8*(off+0)(block), X0; \ +- MOVOU 8*(off+2)(block), X1; \ +- MOVOU 8*(off+4)(block), X2; \ +- MOVOU 8*(off+6)(block), X3; \ +- MOVOU 8*(off+8)(block), X4; \ +- MOVOU 8*(off+10)(block), X5; \ +- MOVOU 8*(off+12)(block), X6; \ +- MOVOU 8*(off+14)(block), X7 +- +-#define STORE_MSG_0(block, off) \ +- MOVOU X0, 8*(off+0)(block); \ +- MOVOU X1, 8*(off+2)(block); \ +- MOVOU X2, 8*(off+4)(block); \ +- MOVOU X3, 8*(off+6)(block); \ +- MOVOU X4, 8*(off+8)(block); \ +- MOVOU X5, 8*(off+10)(block); \ +- MOVOU X6, 8*(off+12)(block); \ +- MOVOU X7, 8*(off+14)(block) +- +-#define LOAD_MSG_1(block, off) \ +- MOVOU 8*off+0*8(block), X0; \ +- MOVOU 8*off+16*8(block), X1; \ +- MOVOU 8*off+32*8(block), X2; \ +- MOVOU 8*off+48*8(block), X3; \ +- MOVOU 8*off+64*8(block), X4; \ +- MOVOU 8*off+80*8(block), X5; \ +- MOVOU 8*off+96*8(block), X6; \ +- MOVOU 8*off+112*8(block), X7 +- +-#define STORE_MSG_1(block, off) \ +- MOVOU X0, 8*off+0*8(block); \ +- MOVOU X1, 8*off+16*8(block); \ +- MOVOU X2, 8*off+32*8(block); \ +- MOVOU X3, 8*off+48*8(block); \ +- MOVOU X4, 8*off+64*8(block); \ +- MOVOU X5, 8*off+80*8(block); \ +- MOVOU X6, 8*off+96*8(block); \ +- MOVOU X7, 8*off+112*8(block) +- +-#define BLAMKA_ROUND_0(block, off, t0, t1, c40, c48) \ +- LOAD_MSG_0(block, off); \ +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ +- SHUFFLE(X2, X3, X4, X5, X6, X7, t0, t1); \ +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, t0, t1); \ +- STORE_MSG_0(block, off) +- +-#define BLAMKA_ROUND_1(block, off, t0, t1, c40, c48) \ +- LOAD_MSG_1(block, off); \ +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ +- SHUFFLE(X2, X3, X4, X5, X6, X7, t0, t1); \ +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, t0, t1); \ +- STORE_MSG_1(block, off) +- + // func blamkaSSE4(b *block) +-TEXT Β·blamkaSSE4(SB), 4, $0-8 +- MOVQ b+0(FP), AX +- +- MOVOU Β·c40<>(SB), X10 +- MOVOU Β·c48<>(SB), X11 ++// Requires: SSE2, SSSE3 ++TEXT Β·blamkaSSE4(SB), NOSPLIT, $0-8 ++ MOVQ b+0(FP), AX ++ MOVOU Β·c40<>+0(SB), X10 ++ MOVOU Β·c48<>+0(SB), X11 ++ MOVOU (AX), X0 ++ MOVOU 16(AX), X1 ++ MOVOU 32(AX), X2 ++ MOVOU 48(AX), X3 ++ MOVOU 64(AX), X4 ++ MOVOU 80(AX), X5 ++ MOVOU 96(AX), X6 ++ MOVOU 112(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, (AX) ++ MOVOU X1, 16(AX) ++ MOVOU X2, 32(AX) ++ MOVOU X3, 48(AX) ++ MOVOU X4, 64(AX) ++ MOVOU X5, 80(AX) ++ MOVOU X6, 96(AX) ++ MOVOU X7, 112(AX) ++ MOVOU 128(AX), X0 ++ MOVOU 144(AX), X1 ++ MOVOU 160(AX), X2 ++ MOVOU 176(AX), X3 ++ MOVOU 192(AX), X4 ++ MOVOU 208(AX), X5 ++ MOVOU 224(AX), X6 ++ MOVOU 240(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 128(AX) ++ MOVOU X1, 144(AX) ++ MOVOU X2, 160(AX) ++ MOVOU X3, 176(AX) ++ MOVOU X4, 192(AX) ++ MOVOU X5, 208(AX) ++ MOVOU X6, 224(AX) ++ MOVOU X7, 240(AX) ++ MOVOU 256(AX), X0 ++ MOVOU 272(AX), X1 ++ MOVOU 288(AX), X2 ++ MOVOU 304(AX), X3 ++ MOVOU 320(AX), X4 ++ MOVOU 336(AX), X5 ++ MOVOU 352(AX), X6 ++ MOVOU 368(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 256(AX) ++ MOVOU X1, 272(AX) ++ MOVOU X2, 288(AX) ++ MOVOU X3, 304(AX) ++ MOVOU X4, 320(AX) ++ MOVOU X5, 336(AX) ++ MOVOU X6, 352(AX) ++ MOVOU X7, 368(AX) ++ MOVOU 384(AX), X0 ++ MOVOU 400(AX), X1 ++ MOVOU 416(AX), X2 ++ MOVOU 432(AX), X3 ++ MOVOU 448(AX), X4 ++ MOVOU 464(AX), X5 ++ MOVOU 480(AX), X6 ++ MOVOU 496(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 384(AX) ++ MOVOU X1, 400(AX) ++ MOVOU X2, 416(AX) ++ MOVOU X3, 432(AX) ++ MOVOU X4, 448(AX) ++ MOVOU X5, 464(AX) ++ MOVOU X6, 480(AX) ++ MOVOU X7, 496(AX) ++ MOVOU 512(AX), X0 ++ MOVOU 528(AX), X1 ++ MOVOU 544(AX), X2 ++ MOVOU 560(AX), X3 ++ MOVOU 576(AX), X4 ++ MOVOU 592(AX), X5 ++ MOVOU 608(AX), X6 ++ MOVOU 624(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 512(AX) ++ MOVOU X1, 528(AX) ++ MOVOU X2, 544(AX) ++ MOVOU X3, 560(AX) ++ MOVOU X4, 576(AX) ++ MOVOU X5, 592(AX) ++ MOVOU X6, 608(AX) ++ MOVOU X7, 624(AX) ++ MOVOU 640(AX), X0 ++ MOVOU 656(AX), X1 ++ MOVOU 672(AX), X2 ++ MOVOU 688(AX), X3 ++ MOVOU 704(AX), X4 ++ MOVOU 720(AX), X5 ++ MOVOU 736(AX), X6 ++ MOVOU 752(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 640(AX) ++ MOVOU X1, 656(AX) ++ MOVOU X2, 672(AX) ++ MOVOU X3, 688(AX) ++ MOVOU X4, 704(AX) ++ MOVOU X5, 720(AX) ++ MOVOU X6, 736(AX) ++ MOVOU X7, 752(AX) ++ MOVOU 768(AX), X0 ++ MOVOU 784(AX), X1 ++ MOVOU 800(AX), X2 ++ MOVOU 816(AX), X3 ++ MOVOU 832(AX), X4 ++ MOVOU 848(AX), X5 ++ MOVOU 864(AX), X6 ++ MOVOU 880(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 768(AX) ++ MOVOU X1, 784(AX) ++ MOVOU X2, 800(AX) ++ MOVOU X3, 816(AX) ++ MOVOU X4, 832(AX) ++ MOVOU X5, 848(AX) ++ MOVOU X6, 864(AX) ++ MOVOU X7, 880(AX) ++ MOVOU 896(AX), X0 ++ MOVOU 912(AX), X1 ++ MOVOU 928(AX), X2 ++ MOVOU 944(AX), X3 ++ MOVOU 960(AX), X4 ++ MOVOU 976(AX), X5 ++ MOVOU 992(AX), X6 ++ MOVOU 1008(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 896(AX) ++ MOVOU X1, 912(AX) ++ MOVOU X2, 928(AX) ++ MOVOU X3, 944(AX) ++ MOVOU X4, 960(AX) ++ MOVOU X5, 976(AX) ++ MOVOU X6, 992(AX) ++ MOVOU X7, 1008(AX) ++ MOVOU (AX), X0 ++ MOVOU 128(AX), X1 ++ MOVOU 256(AX), X2 ++ MOVOU 384(AX), X3 ++ MOVOU 512(AX), X4 ++ MOVOU 640(AX), X5 ++ MOVOU 768(AX), X6 ++ MOVOU 896(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, (AX) ++ MOVOU X1, 128(AX) ++ MOVOU X2, 256(AX) ++ MOVOU X3, 384(AX) ++ MOVOU X4, 512(AX) ++ MOVOU X5, 640(AX) ++ MOVOU X6, 768(AX) ++ MOVOU X7, 896(AX) ++ MOVOU 16(AX), X0 ++ MOVOU 144(AX), X1 ++ MOVOU 272(AX), X2 ++ MOVOU 400(AX), X3 ++ MOVOU 528(AX), X4 ++ MOVOU 656(AX), X5 ++ MOVOU 784(AX), X6 ++ MOVOU 912(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 16(AX) ++ MOVOU X1, 144(AX) ++ MOVOU X2, 272(AX) ++ MOVOU X3, 400(AX) ++ MOVOU X4, 528(AX) ++ MOVOU X5, 656(AX) ++ MOVOU X6, 784(AX) ++ MOVOU X7, 912(AX) ++ MOVOU 32(AX), X0 ++ MOVOU 160(AX), X1 ++ MOVOU 288(AX), X2 ++ MOVOU 416(AX), X3 ++ MOVOU 544(AX), X4 ++ MOVOU 672(AX), X5 ++ MOVOU 800(AX), X6 ++ MOVOU 928(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 32(AX) ++ MOVOU X1, 160(AX) ++ MOVOU X2, 288(AX) ++ MOVOU X3, 416(AX) ++ MOVOU X4, 544(AX) ++ MOVOU X5, 672(AX) ++ MOVOU X6, 800(AX) ++ MOVOU X7, 928(AX) ++ MOVOU 48(AX), X0 ++ MOVOU 176(AX), X1 ++ MOVOU 304(AX), X2 ++ MOVOU 432(AX), X3 ++ MOVOU 560(AX), X4 ++ MOVOU 688(AX), X5 ++ MOVOU 816(AX), X6 ++ MOVOU 944(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 48(AX) ++ MOVOU X1, 176(AX) ++ MOVOU X2, 304(AX) ++ MOVOU X3, 432(AX) ++ MOVOU X4, 560(AX) ++ MOVOU X5, 688(AX) ++ MOVOU X6, 816(AX) ++ MOVOU X7, 944(AX) ++ MOVOU 64(AX), X0 ++ MOVOU 192(AX), X1 ++ MOVOU 320(AX), X2 ++ MOVOU 448(AX), X3 ++ MOVOU 576(AX), X4 ++ MOVOU 704(AX), X5 ++ MOVOU 832(AX), X6 ++ MOVOU 960(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 64(AX) ++ MOVOU X1, 192(AX) ++ MOVOU X2, 320(AX) ++ MOVOU X3, 448(AX) ++ MOVOU X4, 576(AX) ++ MOVOU X5, 704(AX) ++ MOVOU X6, 832(AX) ++ MOVOU X7, 960(AX) ++ MOVOU 80(AX), X0 ++ MOVOU 208(AX), X1 ++ MOVOU 336(AX), X2 ++ MOVOU 464(AX), X3 ++ MOVOU 592(AX), X4 ++ MOVOU 720(AX), X5 ++ MOVOU 848(AX), X6 ++ MOVOU 976(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 80(AX) ++ MOVOU X1, 208(AX) ++ MOVOU X2, 336(AX) ++ MOVOU X3, 464(AX) ++ MOVOU X4, 592(AX) ++ MOVOU X5, 720(AX) ++ MOVOU X6, 848(AX) ++ MOVOU X7, 976(AX) ++ MOVOU 96(AX), X0 ++ MOVOU 224(AX), X1 ++ MOVOU 352(AX), X2 ++ MOVOU 480(AX), X3 ++ MOVOU 608(AX), X4 ++ MOVOU 736(AX), X5 ++ MOVOU 864(AX), X6 ++ MOVOU 992(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 96(AX) ++ MOVOU X1, 224(AX) ++ MOVOU X2, 352(AX) ++ MOVOU X3, 480(AX) ++ MOVOU X4, 608(AX) ++ MOVOU X5, 736(AX) ++ MOVOU X6, 864(AX) ++ MOVOU X7, 992(AX) ++ MOVOU 112(AX), X0 ++ MOVOU 240(AX), X1 ++ MOVOU 368(AX), X2 ++ MOVOU 496(AX), X3 ++ MOVOU 624(AX), X4 ++ MOVOU 752(AX), X5 ++ MOVOU 880(AX), X6 ++ MOVOU 1008(AX), X7 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFD $0xb1, X6, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ PSHUFB X10, X2 ++ MOVO X0, X8 ++ PMULULQ X2, X8 ++ PADDQ X2, X0 ++ PADDQ X8, X0 ++ PADDQ X8, X0 ++ PXOR X0, X6 ++ PSHUFB X11, X6 ++ MOVO X4, X8 ++ PMULULQ X6, X8 ++ PADDQ X6, X4 ++ PADDQ X8, X4 ++ PADDQ X8, X4 ++ PXOR X4, X2 ++ MOVO X2, X8 ++ PADDQ X2, X8 ++ PSRLQ $0x3f, X2 ++ PXOR X8, X2 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X7, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ PSHUFB X10, X3 ++ MOVO X1, X8 ++ PMULULQ X3, X8 ++ PADDQ X3, X1 ++ PADDQ X8, X1 ++ PADDQ X8, X1 ++ PXOR X1, X7 ++ PSHUFB X11, X7 ++ MOVO X5, X8 ++ PMULULQ X7, X8 ++ PADDQ X7, X5 ++ PADDQ X8, X5 ++ PADDQ X8, X5 ++ PXOR X5, X3 ++ MOVO X3, X8 ++ PADDQ X3, X8 ++ PSRLQ $0x3f, X3 ++ PXOR X8, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU X0, 112(AX) ++ MOVOU X1, 240(AX) ++ MOVOU X2, 368(AX) ++ MOVOU X3, 496(AX) ++ MOVOU X4, 624(AX) ++ MOVOU X5, 752(AX) ++ MOVOU X6, 880(AX) ++ MOVOU X7, 1008(AX) ++ RET + +- BLAMKA_ROUND_0(AX, 0, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 16, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 32, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 48, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 64, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 80, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 96, X8, X9, X10, X11) +- BLAMKA_ROUND_0(AX, 112, X8, X9, X10, X11) ++DATA Β·c40<>+0(SB)/8, $0x0201000706050403 ++DATA Β·c40<>+8(SB)/8, $0x0a09080f0e0d0c0b ++GLOBL Β·c40<>(SB), RODATA|NOPTR, $16 + +- BLAMKA_ROUND_1(AX, 0, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 2, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 4, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 6, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 8, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 10, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 12, X8, X9, X10, X11) +- BLAMKA_ROUND_1(AX, 14, X8, X9, X10, X11) +- RET ++DATA Β·c48<>+0(SB)/8, $0x0100070605040302 ++DATA Β·c48<>+8(SB)/8, $0x09080f0e0d0c0b0a ++GLOBL Β·c48<>(SB), RODATA|NOPTR, $16 + +-// func mixBlocksSSE2(out, a, b, c *block) +-TEXT Β·mixBlocksSSE2(SB), 4, $0-32 ++// func mixBlocksSSE2(out *block, a *block, b *block, c *block) ++// Requires: SSE2 ++TEXT Β·mixBlocksSSE2(SB), NOSPLIT, $0-32 + MOVQ out+0(FP), DX + MOVQ a+8(FP), AX + MOVQ b+16(FP), BX + MOVQ c+24(FP), CX +- MOVQ $128, DI ++ MOVQ $0x00000080, DI + + loop: +- MOVOU 0(AX), X0 +- MOVOU 0(BX), X1 +- MOVOU 0(CX), X2 ++ MOVOU (AX), X0 ++ MOVOU (BX), X1 ++ MOVOU (CX), X2 + PXOR X1, X0 + PXOR X2, X0 +- MOVOU X0, 0(DX) +- ADDQ $16, AX +- ADDQ $16, BX +- ADDQ $16, CX +- ADDQ $16, DX +- SUBQ $2, DI ++ MOVOU X0, (DX) ++ ADDQ $0x10, AX ++ ADDQ $0x10, BX ++ ADDQ $0x10, CX ++ ADDQ $0x10, DX ++ SUBQ $0x02, DI + JA loop + RET + +-// func xorBlocksSSE2(out, a, b, c *block) +-TEXT Β·xorBlocksSSE2(SB), 4, $0-32 ++// func xorBlocksSSE2(out *block, a *block, b *block, c *block) ++// Requires: SSE2 ++TEXT Β·xorBlocksSSE2(SB), NOSPLIT, $0-32 + MOVQ out+0(FP), DX + MOVQ a+8(FP), AX + MOVQ b+16(FP), BX + MOVQ c+24(FP), CX +- MOVQ $128, DI ++ MOVQ $0x00000080, DI + + loop: +- MOVOU 0(AX), X0 +- MOVOU 0(BX), X1 +- MOVOU 0(CX), X2 +- MOVOU 0(DX), X3 ++ MOVOU (AX), X0 ++ MOVOU (BX), X1 ++ MOVOU (CX), X2 ++ MOVOU (DX), X3 + PXOR X1, X0 + PXOR X2, X0 + PXOR X3, X0 +- MOVOU X0, 0(DX) +- ADDQ $16, AX +- ADDQ $16, BX +- ADDQ $16, CX +- ADDQ $16, DX +- SUBQ $2, DI ++ MOVOU X0, (DX) ++ ADDQ $0x10, AX ++ ADDQ $0x10, BX ++ ADDQ $0x10, CX ++ ADDQ $0x10, DX ++ SUBQ $0x02, DI + JA loop + RET +diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s +index 9ae8206c20..f75162e039 100644 +--- a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s ++++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s +@@ -1,722 +1,4517 @@ +-// Copyright 2016 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run blake2bAVX2_amd64_asm.go -out ../../blake2bAVX2_amd64.s -pkg blake2b. DO NOT EDIT. + + //go:build amd64 && gc && !purego + + #include "textflag.h" + +-DATA Β·AVX2_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +-DATA Β·AVX2_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +-DATA Β·AVX2_iv0<>+0x10(SB)/8, $0x3c6ef372fe94f82b +-DATA Β·AVX2_iv0<>+0x18(SB)/8, $0xa54ff53a5f1d36f1 +-GLOBL Β·AVX2_iv0<>(SB), (NOPTR+RODATA), $32 +- +-DATA Β·AVX2_iv1<>+0x00(SB)/8, $0x510e527fade682d1 +-DATA Β·AVX2_iv1<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +-DATA Β·AVX2_iv1<>+0x10(SB)/8, $0x1f83d9abfb41bd6b +-DATA Β·AVX2_iv1<>+0x18(SB)/8, $0x5be0cd19137e2179 +-GLOBL Β·AVX2_iv1<>(SB), (NOPTR+RODATA), $32 +- +-DATA Β·AVX2_c40<>+0x00(SB)/8, $0x0201000706050403 +-DATA Β·AVX2_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +-DATA Β·AVX2_c40<>+0x10(SB)/8, $0x0201000706050403 +-DATA Β·AVX2_c40<>+0x18(SB)/8, $0x0a09080f0e0d0c0b +-GLOBL Β·AVX2_c40<>(SB), (NOPTR+RODATA), $32 +- +-DATA Β·AVX2_c48<>+0x00(SB)/8, $0x0100070605040302 +-DATA Β·AVX2_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +-DATA Β·AVX2_c48<>+0x10(SB)/8, $0x0100070605040302 +-DATA Β·AVX2_c48<>+0x18(SB)/8, $0x09080f0e0d0c0b0a +-GLOBL Β·AVX2_c48<>(SB), (NOPTR+RODATA), $32 +- +-DATA Β·AVX_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +-DATA Β·AVX_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +-GLOBL Β·AVX_iv0<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·AVX_iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b +-DATA Β·AVX_iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1 +-GLOBL Β·AVX_iv1<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·AVX_iv2<>+0x00(SB)/8, $0x510e527fade682d1 +-DATA Β·AVX_iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +-GLOBL Β·AVX_iv2<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·AVX_iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b +-DATA Β·AVX_iv3<>+0x08(SB)/8, $0x5be0cd19137e2179 +-GLOBL Β·AVX_iv3<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·AVX_c40<>+0x00(SB)/8, $0x0201000706050403 +-DATA Β·AVX_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +-GLOBL Β·AVX_c40<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·AVX_c48<>+0x00(SB)/8, $0x0100070605040302 +-DATA Β·AVX_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +-GLOBL Β·AVX_c48<>(SB), (NOPTR+RODATA), $16 +- +-#define VPERMQ_0x39_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x39 +-#define VPERMQ_0x93_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x93 +-#define VPERMQ_0x4E_Y2_Y2 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e +-#define VPERMQ_0x93_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x93 +-#define VPERMQ_0x39_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x39 +- +-#define ROUND_AVX2(m0, m1, m2, m3, t, c40, c48) \ +- VPADDQ m0, Y0, Y0; \ +- VPADDQ Y1, Y0, Y0; \ +- VPXOR Y0, Y3, Y3; \ +- VPSHUFD $-79, Y3, Y3; \ +- VPADDQ Y3, Y2, Y2; \ +- VPXOR Y2, Y1, Y1; \ +- VPSHUFB c40, Y1, Y1; \ +- VPADDQ m1, Y0, Y0; \ +- VPADDQ Y1, Y0, Y0; \ +- VPXOR Y0, Y3, Y3; \ +- VPSHUFB c48, Y3, Y3; \ +- VPADDQ Y3, Y2, Y2; \ +- VPXOR Y2, Y1, Y1; \ +- VPADDQ Y1, Y1, t; \ +- VPSRLQ $63, Y1, Y1; \ +- VPXOR t, Y1, Y1; \ +- VPERMQ_0x39_Y1_Y1; \ +- VPERMQ_0x4E_Y2_Y2; \ +- VPERMQ_0x93_Y3_Y3; \ +- VPADDQ m2, Y0, Y0; \ +- VPADDQ Y1, Y0, Y0; \ +- VPXOR Y0, Y3, Y3; \ +- VPSHUFD $-79, Y3, Y3; \ +- VPADDQ Y3, Y2, Y2; \ +- VPXOR Y2, Y1, Y1; \ +- VPSHUFB c40, Y1, Y1; \ +- VPADDQ m3, Y0, Y0; \ +- VPADDQ Y1, Y0, Y0; \ +- VPXOR Y0, Y3, Y3; \ +- VPSHUFB c48, Y3, Y3; \ +- VPADDQ Y3, Y2, Y2; \ +- VPXOR Y2, Y1, Y1; \ +- VPADDQ Y1, Y1, t; \ +- VPSRLQ $63, Y1, Y1; \ +- VPXOR t, Y1, Y1; \ +- VPERMQ_0x39_Y3_Y3; \ +- VPERMQ_0x4E_Y2_Y2; \ +- VPERMQ_0x93_Y1_Y1 +- +-#define VMOVQ_SI_X11_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x1E +-#define VMOVQ_SI_X12_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x26 +-#define VMOVQ_SI_X13_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x2E +-#define VMOVQ_SI_X14_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x36 +-#define VMOVQ_SI_X15_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x3E +- +-#define VMOVQ_SI_X11(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x5E; BYTE $n +-#define VMOVQ_SI_X12(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x66; BYTE $n +-#define VMOVQ_SI_X13(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x6E; BYTE $n +-#define VMOVQ_SI_X14(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x76; BYTE $n +-#define VMOVQ_SI_X15(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x7E; BYTE $n +- +-#define VPINSRQ_1_SI_X11_0 BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x1E; BYTE $0x01 +-#define VPINSRQ_1_SI_X12_0 BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x26; BYTE $0x01 +-#define VPINSRQ_1_SI_X13_0 BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x2E; BYTE $0x01 +-#define VPINSRQ_1_SI_X14_0 BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x36; BYTE $0x01 +-#define VPINSRQ_1_SI_X15_0 BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x3E; BYTE $0x01 +- +-#define VPINSRQ_1_SI_X11(n) BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x5E; BYTE $n; BYTE $0x01 +-#define VPINSRQ_1_SI_X12(n) BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x66; BYTE $n; BYTE $0x01 +-#define VPINSRQ_1_SI_X13(n) BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x6E; BYTE $n; BYTE $0x01 +-#define VPINSRQ_1_SI_X14(n) BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x76; BYTE $n; BYTE $0x01 +-#define VPINSRQ_1_SI_X15(n) BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x7E; BYTE $n; BYTE $0x01 +- +-#define VMOVQ_R8_X15 BYTE $0xC4; BYTE $0x41; BYTE $0xF9; BYTE $0x6E; BYTE $0xF8 +-#define VPINSRQ_1_R9_X15 BYTE $0xC4; BYTE $0x43; BYTE $0x81; BYTE $0x22; BYTE $0xF9; BYTE $0x01 +- +-// load msg: Y12 = (i0, i1, i2, i3) +-// i0, i1, i2, i3 must not be 0 +-#define LOAD_MSG_AVX2_Y12(i0, i1, i2, i3) \ +- VMOVQ_SI_X12(i0*8); \ +- VMOVQ_SI_X11(i2*8); \ +- VPINSRQ_1_SI_X12(i1*8); \ +- VPINSRQ_1_SI_X11(i3*8); \ +- VINSERTI128 $1, X11, Y12, Y12 +- +-// load msg: Y13 = (i0, i1, i2, i3) +-// i0, i1, i2, i3 must not be 0 +-#define LOAD_MSG_AVX2_Y13(i0, i1, i2, i3) \ +- VMOVQ_SI_X13(i0*8); \ +- VMOVQ_SI_X11(i2*8); \ +- VPINSRQ_1_SI_X13(i1*8); \ +- VPINSRQ_1_SI_X11(i3*8); \ +- VINSERTI128 $1, X11, Y13, Y13 +- +-// load msg: Y14 = (i0, i1, i2, i3) +-// i0, i1, i2, i3 must not be 0 +-#define LOAD_MSG_AVX2_Y14(i0, i1, i2, i3) \ +- VMOVQ_SI_X14(i0*8); \ +- VMOVQ_SI_X11(i2*8); \ +- VPINSRQ_1_SI_X14(i1*8); \ +- VPINSRQ_1_SI_X11(i3*8); \ +- VINSERTI128 $1, X11, Y14, Y14 +- +-// load msg: Y15 = (i0, i1, i2, i3) +-// i0, i1, i2, i3 must not be 0 +-#define LOAD_MSG_AVX2_Y15(i0, i1, i2, i3) \ +- VMOVQ_SI_X15(i0*8); \ +- VMOVQ_SI_X11(i2*8); \ +- VPINSRQ_1_SI_X15(i1*8); \ +- VPINSRQ_1_SI_X11(i3*8); \ +- VINSERTI128 $1, X11, Y15, Y15 +- +-#define LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() \ +- VMOVQ_SI_X12_0; \ +- VMOVQ_SI_X11(4*8); \ +- VPINSRQ_1_SI_X12(2*8); \ +- VPINSRQ_1_SI_X11(6*8); \ +- VINSERTI128 $1, X11, Y12, Y12; \ +- LOAD_MSG_AVX2_Y13(1, 3, 5, 7); \ +- LOAD_MSG_AVX2_Y14(8, 10, 12, 14); \ +- LOAD_MSG_AVX2_Y15(9, 11, 13, 15) +- +-#define LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() \ +- LOAD_MSG_AVX2_Y12(14, 4, 9, 13); \ +- LOAD_MSG_AVX2_Y13(10, 8, 15, 6); \ +- VMOVQ_SI_X11(11*8); \ +- VPSHUFD $0x4E, 0*8(SI), X14; \ +- VPINSRQ_1_SI_X11(5*8); \ +- VINSERTI128 $1, X11, Y14, Y14; \ +- LOAD_MSG_AVX2_Y15(12, 2, 7, 3) +- +-#define LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() \ +- VMOVQ_SI_X11(5*8); \ +- VMOVDQU 11*8(SI), X12; \ +- VPINSRQ_1_SI_X11(15*8); \ +- VINSERTI128 $1, X11, Y12, Y12; \ +- VMOVQ_SI_X13(8*8); \ +- VMOVQ_SI_X11(2*8); \ +- VPINSRQ_1_SI_X13_0; \ +- VPINSRQ_1_SI_X11(13*8); \ +- VINSERTI128 $1, X11, Y13, Y13; \ +- LOAD_MSG_AVX2_Y14(10, 3, 7, 9); \ +- LOAD_MSG_AVX2_Y15(14, 6, 1, 4) +- +-#define LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() \ +- LOAD_MSG_AVX2_Y12(7, 3, 13, 11); \ +- LOAD_MSG_AVX2_Y13(9, 1, 12, 14); \ +- LOAD_MSG_AVX2_Y14(2, 5, 4, 15); \ +- VMOVQ_SI_X15(6*8); \ +- VMOVQ_SI_X11_0; \ +- VPINSRQ_1_SI_X15(10*8); \ +- VPINSRQ_1_SI_X11(8*8); \ +- VINSERTI128 $1, X11, Y15, Y15 +- +-#define LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() \ +- LOAD_MSG_AVX2_Y12(9, 5, 2, 10); \ +- VMOVQ_SI_X13_0; \ +- VMOVQ_SI_X11(4*8); \ +- VPINSRQ_1_SI_X13(7*8); \ +- VPINSRQ_1_SI_X11(15*8); \ +- VINSERTI128 $1, X11, Y13, Y13; \ +- LOAD_MSG_AVX2_Y14(14, 11, 6, 3); \ +- LOAD_MSG_AVX2_Y15(1, 12, 8, 13) +- +-#define LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() \ +- VMOVQ_SI_X12(2*8); \ +- VMOVQ_SI_X11_0; \ +- VPINSRQ_1_SI_X12(6*8); \ +- VPINSRQ_1_SI_X11(8*8); \ +- VINSERTI128 $1, X11, Y12, Y12; \ +- LOAD_MSG_AVX2_Y13(12, 10, 11, 3); \ +- LOAD_MSG_AVX2_Y14(4, 7, 15, 1); \ +- LOAD_MSG_AVX2_Y15(13, 5, 14, 9) +- +-#define LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() \ +- LOAD_MSG_AVX2_Y12(12, 1, 14, 4); \ +- LOAD_MSG_AVX2_Y13(5, 15, 13, 10); \ +- VMOVQ_SI_X14_0; \ +- VPSHUFD $0x4E, 8*8(SI), X11; \ +- VPINSRQ_1_SI_X14(6*8); \ +- VINSERTI128 $1, X11, Y14, Y14; \ +- LOAD_MSG_AVX2_Y15(7, 3, 2, 11) +- +-#define LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() \ +- LOAD_MSG_AVX2_Y12(13, 7, 12, 3); \ +- LOAD_MSG_AVX2_Y13(11, 14, 1, 9); \ +- LOAD_MSG_AVX2_Y14(5, 15, 8, 2); \ +- VMOVQ_SI_X15_0; \ +- VMOVQ_SI_X11(6*8); \ +- VPINSRQ_1_SI_X15(4*8); \ +- VPINSRQ_1_SI_X11(10*8); \ +- VINSERTI128 $1, X11, Y15, Y15 +- +-#define LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() \ +- VMOVQ_SI_X12(6*8); \ +- VMOVQ_SI_X11(11*8); \ +- VPINSRQ_1_SI_X12(14*8); \ +- VPINSRQ_1_SI_X11_0; \ +- VINSERTI128 $1, X11, Y12, Y12; \ +- LOAD_MSG_AVX2_Y13(15, 9, 3, 8); \ +- VMOVQ_SI_X11(1*8); \ +- VMOVDQU 12*8(SI), X14; \ +- VPINSRQ_1_SI_X11(10*8); \ +- VINSERTI128 $1, X11, Y14, Y14; \ +- VMOVQ_SI_X15(2*8); \ +- VMOVDQU 4*8(SI), X11; \ +- VPINSRQ_1_SI_X15(7*8); \ +- VINSERTI128 $1, X11, Y15, Y15 +- +-#define LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() \ +- LOAD_MSG_AVX2_Y12(10, 8, 7, 1); \ +- VMOVQ_SI_X13(2*8); \ +- VPSHUFD $0x4E, 5*8(SI), X11; \ +- VPINSRQ_1_SI_X13(4*8); \ +- VINSERTI128 $1, X11, Y13, Y13; \ +- LOAD_MSG_AVX2_Y14(15, 9, 3, 13); \ +- VMOVQ_SI_X15(11*8); \ +- VMOVQ_SI_X11(12*8); \ +- VPINSRQ_1_SI_X15(14*8); \ +- VPINSRQ_1_SI_X11_0; \ +- VINSERTI128 $1, X11, Y15, Y15 +- + // func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +-TEXT Β·hashBlocksAVX2(SB), 4, $320-48 // frame size = 288 + 32 byte alignment +- MOVQ h+0(FP), AX +- MOVQ c+8(FP), BX +- MOVQ flag+16(FP), CX +- MOVQ blocks_base+24(FP), SI +- MOVQ blocks_len+32(FP), DI +- +- MOVQ SP, DX +- ADDQ $31, DX +- ANDQ $~31, DX +- +- MOVQ CX, 16(DX) +- XORQ CX, CX +- MOVQ CX, 24(DX) +- +- VMOVDQU Β·AVX2_c40<>(SB), Y4 +- VMOVDQU Β·AVX2_c48<>(SB), Y5 +- +- VMOVDQU 0(AX), Y8 ++// Requires: AVX, AVX2 ++TEXT Β·hashBlocksAVX2(SB), NOSPLIT, $320-48 ++ MOVQ h+0(FP), AX ++ MOVQ c+8(FP), BX ++ MOVQ flag+16(FP), CX ++ MOVQ blocks_base+24(FP), SI ++ MOVQ blocks_len+32(FP), DI ++ MOVQ SP, DX ++ ADDQ $+31, DX ++ ANDQ $-32, DX ++ MOVQ CX, 16(DX) ++ XORQ CX, CX ++ MOVQ CX, 24(DX) ++ VMOVDQU Β·AVX2_c40<>+0(SB), Y4 ++ VMOVDQU Β·AVX2_c48<>+0(SB), Y5 ++ VMOVDQU (AX), Y8 + VMOVDQU 32(AX), Y9 +- VMOVDQU Β·AVX2_iv0<>(SB), Y6 +- VMOVDQU Β·AVX2_iv1<>(SB), Y7 +- +- MOVQ 0(BX), R8 +- MOVQ 8(BX), R9 +- MOVQ R9, 8(DX) ++ VMOVDQU Β·AVX2_iv0<>+0(SB), Y6 ++ VMOVDQU Β·AVX2_iv1<>+0(SB), Y7 ++ MOVQ (BX), R8 ++ MOVQ 8(BX), R9 ++ MOVQ R9, 8(DX) + + loop: +- ADDQ $128, R8 +- MOVQ R8, 0(DX) +- CMPQ R8, $128 ++ ADDQ $0x80, R8 ++ MOVQ R8, (DX) ++ CMPQ R8, $0x80 + JGE noinc + INCQ R9 + MOVQ R9, 8(DX) + + noinc: +- VMOVDQA Y8, Y0 +- VMOVDQA Y9, Y1 +- VMOVDQA Y6, Y2 +- VPXOR 0(DX), Y7, Y3 +- +- LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() +- VMOVDQA Y12, 32(DX) +- VMOVDQA Y13, 64(DX) +- VMOVDQA Y14, 96(DX) +- VMOVDQA Y15, 128(DX) +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() +- VMOVDQA Y12, 160(DX) +- VMOVDQA Y13, 192(DX) +- VMOVDQA Y14, 224(DX) +- VMOVDQA Y15, 256(DX) +- +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() +- ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) +- +- ROUND_AVX2(32(DX), 64(DX), 96(DX), 128(DX), Y10, Y4, Y5) +- ROUND_AVX2(160(DX), 192(DX), 224(DX), 256(DX), Y10, Y4, Y5) +- +- VPXOR Y0, Y8, Y8 +- VPXOR Y1, Y9, Y9 +- VPXOR Y2, Y8, Y8 +- VPXOR Y3, Y9, Y9 +- +- LEAQ 128(SI), SI +- SUBQ $128, DI +- JNE loop +- +- MOVQ R8, 0(BX) +- MOVQ R9, 8(BX) +- +- VMOVDQU Y8, 0(AX) +- VMOVDQU Y9, 32(AX) ++ VMOVDQA Y8, Y0 ++ VMOVDQA Y9, Y1 ++ VMOVDQA Y6, Y2 ++ VPXOR (DX), Y7, Y3 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x26 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x20 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x10 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x30 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x08 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x28 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x38 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x40 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x60 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x70 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x58 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VMOVDQA Y12, 32(DX) ++ VMOVDQA Y13, 64(DX) ++ VMOVDQA Y14, 96(DX) ++ VMOVDQA Y15, 128(DX) ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x48 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x40 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x30 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x58 ++ VPSHUFD $0x4e, (SI), X14 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x28 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x38 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x10 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VMOVDQA Y12, 160(DX) ++ VMOVDQA Y13, 192(DX) ++ VMOVDQA Y14, 224(DX) ++ VMOVDQA Y15, 256(DX) ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x28 ++ VMOVDQU 88(SI), X12 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x40 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x10 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x2e ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x38 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x48 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x08 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x20 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x38 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x58 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x60 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x70 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x20 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x30 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x1e ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x40 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x10 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x50 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x2e ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x20 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x30 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x58 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x08 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x40 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x60 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x1e ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x40 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x58 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x20 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x78 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x08 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x68 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x70 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x48 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x70 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x20 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x28 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x50 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x36 ++ VPSHUFD $0x4e, 64(SI), X11 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x30 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x38 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x10 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x58 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x68 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x60 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x58 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x08 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x48 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x28 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x40 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x10 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x3e ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x30 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x50 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x30 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x58 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x1e ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x78 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x48 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x40 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x08 ++ VMOVDQU 96(SI), X14 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x50 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x10 ++ VMOVDQU 32(SI), X11 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x38 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x38 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x40 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x08 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y12, Y12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x10 ++ VPSHUFD $0x4e, 40(SI), X11 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x20 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y13, Y13 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x78 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x18 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x48 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x5e ++ BYTE $0x68 ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y14, Y14 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x58 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x5e ++ BYTE $0x60 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0xa1 ++ BYTE $0x22 ++ BYTE $0x1e ++ BYTE $0x01 ++ VINSERTI128 $0x01, X11, Y15, Y15 ++ VPADDQ Y12, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y13, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ Y14, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ Y15, Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ VPADDQ 32(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ 64(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ 96(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ 128(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ VPADDQ 160(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ 192(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x93 ++ VPADDQ 224(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFD $-79, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPSHUFB Y4, Y1, Y1 ++ VPADDQ 256(DX), Y0, Y0 ++ VPADDQ Y1, Y0, Y0 ++ VPXOR Y0, Y3, Y3 ++ VPSHUFB Y5, Y3, Y3 ++ VPADDQ Y3, Y2, Y2 ++ VPXOR Y2, Y1, Y1 ++ VPADDQ Y1, Y1, Y10 ++ VPSRLQ $0x3f, Y1, Y1 ++ VPXOR Y10, Y1, Y1 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xdb ++ BYTE $0x39 ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xd2 ++ BYTE $0x4e ++ BYTE $0xc4 ++ BYTE $0xe3 ++ BYTE $0xfd ++ BYTE $0x00 ++ BYTE $0xc9 ++ BYTE $0x93 ++ VPXOR Y0, Y8, Y8 ++ VPXOR Y1, Y9, Y9 ++ VPXOR Y2, Y8, Y8 ++ VPXOR Y3, Y9, Y9 ++ LEAQ 128(SI), SI ++ SUBQ $0x80, DI ++ JNE loop ++ MOVQ R8, (BX) ++ MOVQ R9, 8(BX) ++ VMOVDQU Y8, (AX) ++ VMOVDQU Y9, 32(AX) + VZEROUPPER +- + RET + +-#define VPUNPCKLQDQ_X2_X2_X15 BYTE $0xC5; BYTE $0x69; BYTE $0x6C; BYTE $0xFA +-#define VPUNPCKLQDQ_X3_X3_X15 BYTE $0xC5; BYTE $0x61; BYTE $0x6C; BYTE $0xFB +-#define VPUNPCKLQDQ_X7_X7_X15 BYTE $0xC5; BYTE $0x41; BYTE $0x6C; BYTE $0xFF +-#define VPUNPCKLQDQ_X13_X13_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x11; BYTE $0x6C; BYTE $0xFD +-#define VPUNPCKLQDQ_X14_X14_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x09; BYTE $0x6C; BYTE $0xFE +- +-#define VPUNPCKHQDQ_X15_X2_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x69; BYTE $0x6D; BYTE $0xD7 +-#define VPUNPCKHQDQ_X15_X3_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xDF +-#define VPUNPCKHQDQ_X15_X6_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x49; BYTE $0x6D; BYTE $0xF7 +-#define VPUNPCKHQDQ_X15_X7_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xFF +-#define VPUNPCKHQDQ_X15_X3_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xD7 +-#define VPUNPCKHQDQ_X15_X7_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xF7 +-#define VPUNPCKHQDQ_X15_X13_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xDF +-#define VPUNPCKHQDQ_X15_X13_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xFF +- +-#define SHUFFLE_AVX() \ +- VMOVDQA X6, X13; \ +- VMOVDQA X2, X14; \ +- VMOVDQA X4, X6; \ +- VPUNPCKLQDQ_X13_X13_X15; \ +- VMOVDQA X5, X4; \ +- VMOVDQA X6, X5; \ +- VPUNPCKHQDQ_X15_X7_X6; \ +- VPUNPCKLQDQ_X7_X7_X15; \ +- VPUNPCKHQDQ_X15_X13_X7; \ +- VPUNPCKLQDQ_X3_X3_X15; \ +- VPUNPCKHQDQ_X15_X2_X2; \ +- VPUNPCKLQDQ_X14_X14_X15; \ +- VPUNPCKHQDQ_X15_X3_X3; \ +- +-#define SHUFFLE_AVX_INV() \ +- VMOVDQA X2, X13; \ +- VMOVDQA X4, X14; \ +- VPUNPCKLQDQ_X2_X2_X15; \ +- VMOVDQA X5, X4; \ +- VPUNPCKHQDQ_X15_X3_X2; \ +- VMOVDQA X14, X5; \ +- VPUNPCKLQDQ_X3_X3_X15; \ +- VMOVDQA X6, X14; \ +- VPUNPCKHQDQ_X15_X13_X3; \ +- VPUNPCKLQDQ_X7_X7_X15; \ +- VPUNPCKHQDQ_X15_X6_X6; \ +- VPUNPCKLQDQ_X14_X14_X15; \ +- VPUNPCKHQDQ_X15_X7_X7; \ +- +-#define HALF_ROUND_AVX(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \ +- VPADDQ m0, v0, v0; \ +- VPADDQ v2, v0, v0; \ +- VPADDQ m1, v1, v1; \ +- VPADDQ v3, v1, v1; \ +- VPXOR v0, v6, v6; \ +- VPXOR v1, v7, v7; \ +- VPSHUFD $-79, v6, v6; \ +- VPSHUFD $-79, v7, v7; \ +- VPADDQ v6, v4, v4; \ +- VPADDQ v7, v5, v5; \ +- VPXOR v4, v2, v2; \ +- VPXOR v5, v3, v3; \ +- VPSHUFB c40, v2, v2; \ +- VPSHUFB c40, v3, v3; \ +- VPADDQ m2, v0, v0; \ +- VPADDQ v2, v0, v0; \ +- VPADDQ m3, v1, v1; \ +- VPADDQ v3, v1, v1; \ +- VPXOR v0, v6, v6; \ +- VPXOR v1, v7, v7; \ +- VPSHUFB c48, v6, v6; \ +- VPSHUFB c48, v7, v7; \ +- VPADDQ v6, v4, v4; \ +- VPADDQ v7, v5, v5; \ +- VPXOR v4, v2, v2; \ +- VPXOR v5, v3, v3; \ +- VPADDQ v2, v2, t0; \ +- VPSRLQ $63, v2, v2; \ +- VPXOR t0, v2, v2; \ +- VPADDQ v3, v3, t0; \ +- VPSRLQ $63, v3, v3; \ +- VPXOR t0, v3, v3 +- +-// load msg: X12 = (i0, i1), X13 = (i2, i3), X14 = (i4, i5), X15 = (i6, i7) +-// i0, i1, i2, i3, i4, i5, i6, i7 must not be 0 +-#define LOAD_MSG_AVX(i0, i1, i2, i3, i4, i5, i6, i7) \ +- VMOVQ_SI_X12(i0*8); \ +- VMOVQ_SI_X13(i2*8); \ +- VMOVQ_SI_X14(i4*8); \ +- VMOVQ_SI_X15(i6*8); \ +- VPINSRQ_1_SI_X12(i1*8); \ +- VPINSRQ_1_SI_X13(i3*8); \ +- VPINSRQ_1_SI_X14(i5*8); \ +- VPINSRQ_1_SI_X15(i7*8) +- +-// load msg: X12 = (0, 2), X13 = (4, 6), X14 = (1, 3), X15 = (5, 7) +-#define LOAD_MSG_AVX_0_2_4_6_1_3_5_7() \ +- VMOVQ_SI_X12_0; \ +- VMOVQ_SI_X13(4*8); \ +- VMOVQ_SI_X14(1*8); \ +- VMOVQ_SI_X15(5*8); \ +- VPINSRQ_1_SI_X12(2*8); \ +- VPINSRQ_1_SI_X13(6*8); \ +- VPINSRQ_1_SI_X14(3*8); \ +- VPINSRQ_1_SI_X15(7*8) +- +-// load msg: X12 = (1, 0), X13 = (11, 5), X14 = (12, 2), X15 = (7, 3) +-#define LOAD_MSG_AVX_1_0_11_5_12_2_7_3() \ +- VPSHUFD $0x4E, 0*8(SI), X12; \ +- VMOVQ_SI_X13(11*8); \ +- VMOVQ_SI_X14(12*8); \ +- VMOVQ_SI_X15(7*8); \ +- VPINSRQ_1_SI_X13(5*8); \ +- VPINSRQ_1_SI_X14(2*8); \ +- VPINSRQ_1_SI_X15(3*8) +- +-// load msg: X12 = (11, 12), X13 = (5, 15), X14 = (8, 0), X15 = (2, 13) +-#define LOAD_MSG_AVX_11_12_5_15_8_0_2_13() \ +- VMOVDQU 11*8(SI), X12; \ +- VMOVQ_SI_X13(5*8); \ +- VMOVQ_SI_X14(8*8); \ +- VMOVQ_SI_X15(2*8); \ +- VPINSRQ_1_SI_X13(15*8); \ +- VPINSRQ_1_SI_X14_0; \ +- VPINSRQ_1_SI_X15(13*8) +- +-// load msg: X12 = (2, 5), X13 = (4, 15), X14 = (6, 10), X15 = (0, 8) +-#define LOAD_MSG_AVX_2_5_4_15_6_10_0_8() \ +- VMOVQ_SI_X12(2*8); \ +- VMOVQ_SI_X13(4*8); \ +- VMOVQ_SI_X14(6*8); \ +- VMOVQ_SI_X15_0; \ +- VPINSRQ_1_SI_X12(5*8); \ +- VPINSRQ_1_SI_X13(15*8); \ +- VPINSRQ_1_SI_X14(10*8); \ +- VPINSRQ_1_SI_X15(8*8) ++DATA Β·AVX2_c40<>+0(SB)/8, $0x0201000706050403 ++DATA Β·AVX2_c40<>+8(SB)/8, $0x0a09080f0e0d0c0b ++DATA Β·AVX2_c40<>+16(SB)/8, $0x0201000706050403 ++DATA Β·AVX2_c40<>+24(SB)/8, $0x0a09080f0e0d0c0b ++GLOBL Β·AVX2_c40<>(SB), RODATA|NOPTR, $32 + +-// load msg: X12 = (9, 5), X13 = (2, 10), X14 = (0, 7), X15 = (4, 15) +-#define LOAD_MSG_AVX_9_5_2_10_0_7_4_15() \ +- VMOVQ_SI_X12(9*8); \ +- VMOVQ_SI_X13(2*8); \ +- VMOVQ_SI_X14_0; \ +- VMOVQ_SI_X15(4*8); \ +- VPINSRQ_1_SI_X12(5*8); \ +- VPINSRQ_1_SI_X13(10*8); \ +- VPINSRQ_1_SI_X14(7*8); \ +- VPINSRQ_1_SI_X15(15*8) ++DATA Β·AVX2_c48<>+0(SB)/8, $0x0100070605040302 ++DATA Β·AVX2_c48<>+8(SB)/8, $0x09080f0e0d0c0b0a ++DATA Β·AVX2_c48<>+16(SB)/8, $0x0100070605040302 ++DATA Β·AVX2_c48<>+24(SB)/8, $0x09080f0e0d0c0b0a ++GLOBL Β·AVX2_c48<>(SB), RODATA|NOPTR, $32 + +-// load msg: X12 = (2, 6), X13 = (0, 8), X14 = (12, 10), X15 = (11, 3) +-#define LOAD_MSG_AVX_2_6_0_8_12_10_11_3() \ +- VMOVQ_SI_X12(2*8); \ +- VMOVQ_SI_X13_0; \ +- VMOVQ_SI_X14(12*8); \ +- VMOVQ_SI_X15(11*8); \ +- VPINSRQ_1_SI_X12(6*8); \ +- VPINSRQ_1_SI_X13(8*8); \ +- VPINSRQ_1_SI_X14(10*8); \ +- VPINSRQ_1_SI_X15(3*8) ++DATA Β·AVX2_iv0<>+0(SB)/8, $0x6a09e667f3bcc908 ++DATA Β·AVX2_iv0<>+8(SB)/8, $0xbb67ae8584caa73b ++DATA Β·AVX2_iv0<>+16(SB)/8, $0x3c6ef372fe94f82b ++DATA Β·AVX2_iv0<>+24(SB)/8, $0xa54ff53a5f1d36f1 ++GLOBL Β·AVX2_iv0<>(SB), RODATA|NOPTR, $32 + +-// load msg: X12 = (0, 6), X13 = (9, 8), X14 = (7, 3), X15 = (2, 11) +-#define LOAD_MSG_AVX_0_6_9_8_7_3_2_11() \ +- MOVQ 0*8(SI), X12; \ +- VPSHUFD $0x4E, 8*8(SI), X13; \ +- MOVQ 7*8(SI), X14; \ +- MOVQ 2*8(SI), X15; \ +- VPINSRQ_1_SI_X12(6*8); \ +- VPINSRQ_1_SI_X14(3*8); \ +- VPINSRQ_1_SI_X15(11*8) +- +-// load msg: X12 = (6, 14), X13 = (11, 0), X14 = (15, 9), X15 = (3, 8) +-#define LOAD_MSG_AVX_6_14_11_0_15_9_3_8() \ +- MOVQ 6*8(SI), X12; \ +- MOVQ 11*8(SI), X13; \ +- MOVQ 15*8(SI), X14; \ +- MOVQ 3*8(SI), X15; \ +- VPINSRQ_1_SI_X12(14*8); \ +- VPINSRQ_1_SI_X13_0; \ +- VPINSRQ_1_SI_X14(9*8); \ +- VPINSRQ_1_SI_X15(8*8) +- +-// load msg: X12 = (5, 15), X13 = (8, 2), X14 = (0, 4), X15 = (6, 10) +-#define LOAD_MSG_AVX_5_15_8_2_0_4_6_10() \ +- MOVQ 5*8(SI), X12; \ +- MOVQ 8*8(SI), X13; \ +- MOVQ 0*8(SI), X14; \ +- MOVQ 6*8(SI), X15; \ +- VPINSRQ_1_SI_X12(15*8); \ +- VPINSRQ_1_SI_X13(2*8); \ +- VPINSRQ_1_SI_X14(4*8); \ +- VPINSRQ_1_SI_X15(10*8) +- +-// load msg: X12 = (12, 13), X13 = (1, 10), X14 = (2, 7), X15 = (4, 5) +-#define LOAD_MSG_AVX_12_13_1_10_2_7_4_5() \ +- VMOVDQU 12*8(SI), X12; \ +- MOVQ 1*8(SI), X13; \ +- MOVQ 2*8(SI), X14; \ +- VPINSRQ_1_SI_X13(10*8); \ +- VPINSRQ_1_SI_X14(7*8); \ +- VMOVDQU 4*8(SI), X15 +- +-// load msg: X12 = (15, 9), X13 = (3, 13), X14 = (11, 14), X15 = (12, 0) +-#define LOAD_MSG_AVX_15_9_3_13_11_14_12_0() \ +- MOVQ 15*8(SI), X12; \ +- MOVQ 3*8(SI), X13; \ +- MOVQ 11*8(SI), X14; \ +- MOVQ 12*8(SI), X15; \ +- VPINSRQ_1_SI_X12(9*8); \ +- VPINSRQ_1_SI_X13(13*8); \ +- VPINSRQ_1_SI_X14(14*8); \ +- VPINSRQ_1_SI_X15_0 ++DATA Β·AVX2_iv1<>+0(SB)/8, $0x510e527fade682d1 ++DATA Β·AVX2_iv1<>+8(SB)/8, $0x9b05688c2b3e6c1f ++DATA Β·AVX2_iv1<>+16(SB)/8, $0x1f83d9abfb41bd6b ++DATA Β·AVX2_iv1<>+24(SB)/8, $0x5be0cd19137e2179 ++GLOBL Β·AVX2_iv1<>(SB), RODATA|NOPTR, $32 + + // func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +-TEXT Β·hashBlocksAVX(SB), 4, $288-48 // frame size = 272 + 16 byte alignment +- MOVQ h+0(FP), AX +- MOVQ c+8(FP), BX +- MOVQ flag+16(FP), CX +- MOVQ blocks_base+24(FP), SI +- MOVQ blocks_len+32(FP), DI +- +- MOVQ SP, R10 +- ADDQ $15, R10 +- ANDQ $~15, R10 +- +- VMOVDQU Β·AVX_c40<>(SB), X0 +- VMOVDQU Β·AVX_c48<>(SB), X1 ++// Requires: AVX, SSE2 ++TEXT Β·hashBlocksAVX(SB), NOSPLIT, $288-48 ++ MOVQ h+0(FP), AX ++ MOVQ c+8(FP), BX ++ MOVQ flag+16(FP), CX ++ MOVQ blocks_base+24(FP), SI ++ MOVQ blocks_len+32(FP), DI ++ MOVQ SP, R10 ++ ADDQ $0x0f, R10 ++ ANDQ $-16, R10 ++ VMOVDQU Β·AVX_c40<>+0(SB), X0 ++ VMOVDQU Β·AVX_c48<>+0(SB), X1 + VMOVDQA X0, X8 + VMOVDQA X1, X9 +- +- VMOVDQU Β·AVX_iv3<>(SB), X0 +- VMOVDQA X0, 0(R10) +- XORQ CX, 0(R10) // 0(R10) = Β·AVX_iv3 ^ (CX || 0) +- +- VMOVDQU 0(AX), X10 ++ VMOVDQU Β·AVX_iv3<>+0(SB), X0 ++ VMOVDQA X0, (R10) ++ XORQ CX, (R10) ++ VMOVDQU (AX), X10 + VMOVDQU 16(AX), X11 + VMOVDQU 32(AX), X2 + VMOVDQU 48(AX), X3 +- +- MOVQ 0(BX), R8 +- MOVQ 8(BX), R9 ++ MOVQ (BX), R8 ++ MOVQ 8(BX), R9 + + loop: +- ADDQ $128, R8 +- CMPQ R8, $128 ++ ADDQ $0x80, R8 ++ CMPQ R8, $0x80 + JGE noinc + INCQ R9 + + noinc: +- VMOVQ_R8_X15 +- VPINSRQ_1_R9_X15 +- ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0xf9 ++ BYTE $0x6e ++ BYTE $0xf8 ++ BYTE $0xc4 ++ BYTE $0x43 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0xf9 ++ BYTE $0x01 + VMOVDQA X10, X0 + VMOVDQA X11, X1 +- VMOVDQU Β·AVX_iv0<>(SB), X4 +- VMOVDQU Β·AVX_iv1<>(SB), X5 +- VMOVDQU Β·AVX_iv2<>(SB), X6 +- ++ VMOVDQU Β·AVX_iv0<>+0(SB), X4 ++ VMOVDQU Β·AVX_iv1<>+0(SB), X5 ++ VMOVDQU Β·AVX_iv2<>+0(SB), X6 + VPXOR X15, X6, X6 +- VMOVDQA 0(R10), X7 +- +- LOAD_MSG_AVX_0_2_4_6_1_3_5_7() ++ VMOVDQA (R10), X7 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x26 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x20 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x08 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x28 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x10 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x38 ++ BYTE $0x01 + VMOVDQA X12, 16(R10) + VMOVDQA X13, 32(R10) + VMOVDQA X14, 48(R10) + VMOVDQA X15, 64(R10) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX(8, 10, 12, 14, 9, 11, 13, 15) ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x40 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x68 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x58 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x78 ++ BYTE $0x01 + VMOVDQA X12, 80(R10) + VMOVDQA X13, 96(R10) + VMOVDQA X14, 112(R10) + VMOVDQA X15, 128(R10) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX(14, 4, 9, 13, 10, 8, 15, 6) ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x78 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x68 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x40 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x30 ++ BYTE $0x01 + VMOVDQA X12, 144(R10) + VMOVDQA X13, 160(R10) + VMOVDQA X14, 176(R10) + VMOVDQA X15, 192(R10) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_1_0_11_5_12_2_7_3() ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ VPSHUFD $0x4e, (SI), X12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x58 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x38 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x10 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x18 ++ BYTE $0x01 + VMOVDQA X12, 208(R10) + VMOVDQA X13, 224(R10) + VMOVDQA X14, 240(R10) + VMOVDQA X15, 256(R10) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX_11_12_5_15_8_0_2_13() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX(10, 3, 7, 9, 14, 6, 1, 4) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX(7, 3, 13, 11, 9, 1, 12, 14) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_2_5_4_15_6_10_0_8() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX_9_5_2_10_0_7_4_15() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX(14, 11, 6, 3, 1, 12, 8, 13) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX_2_6_0_8_12_10_11_3() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX(4, 7, 15, 1, 13, 5, 14, 9) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX(12, 1, 14, 4, 5, 15, 13, 10) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_0_6_9_8_7_3_2_11() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX(13, 7, 12, 3, 11, 14, 1, 9) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_5_15_8_2_0_4_6_10() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX_6_14_11_0_15_9_3_8() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_12_13_1_10_2_7_4_5() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- LOAD_MSG_AVX(10, 8, 7, 1, 2, 4, 6, 5) +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX() +- LOAD_MSG_AVX_15_9_3_13_11_14_12_0() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 16(R10), 32(R10), 48(R10), 64(R10), X15, X8, X9) +- SHUFFLE_AVX() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 80(R10), 96(R10), 112(R10), 128(R10), X15, X8, X9) +- SHUFFLE_AVX_INV() +- +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 144(R10), 160(R10), 176(R10), 192(R10), X15, X8, X9) +- SHUFFLE_AVX() +- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 208(R10), 224(R10), 240(R10), 256(R10), X15, X8, X9) +- SHUFFLE_AVX_INV() +- ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ VMOVDQU 88(SI), X12 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x28 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x40 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x10 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x36 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x68 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x38 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x08 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x48 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x20 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x38 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x68 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x60 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x58 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x70 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x20 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x30 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x3e ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x40 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x48 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x36 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x20 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x78 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x30 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x08 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x40 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x58 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x60 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x68 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x2e ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x58 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x40 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x18 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x20 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x78 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x68 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x70 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x28 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x48 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x70 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x28 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x68 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x50 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ MOVQ (SI), X12 ++ VPSHUFD $0x4e, 64(SI), X13 ++ MOVQ 56(SI), X14 ++ MOVQ 16(SI), X15 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x30 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x58 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x68 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x60 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x58 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x08 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x38 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x18 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x48 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ MOVQ 40(SI), X12 ++ MOVQ 64(SI), X13 ++ MOVQ (SI), X14 ++ MOVQ 48(SI), X15 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x78 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x10 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x50 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ MOVQ 48(SI), X12 ++ MOVQ 88(SI), X13 ++ MOVQ 120(SI), X14 ++ MOVQ 24(SI), X15 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x2e ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x48 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x40 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ VMOVDQU 96(SI), X12 ++ MOVQ 8(SI), X13 ++ MOVQ 16(SI), X14 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x50 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x38 ++ BYTE $0x01 ++ VMOVDQU 32(SI), X15 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x66 ++ BYTE $0x50 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x6e ++ BYTE $0x38 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x76 ++ BYTE $0x10 ++ BYTE $0xc5 ++ BYTE $0x7a ++ BYTE $0x7e ++ BYTE $0x7e ++ BYTE $0x30 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x40 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x08 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x20 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x7e ++ BYTE $0x28 ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ MOVQ 120(SI), X12 ++ MOVQ 24(SI), X13 ++ MOVQ 88(SI), X14 ++ MOVQ 96(SI), X15 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x99 ++ BYTE $0x22 ++ BYTE $0x66 ++ BYTE $0x48 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x91 ++ BYTE $0x22 ++ BYTE $0x6e ++ BYTE $0x68 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x89 ++ BYTE $0x22 ++ BYTE $0x76 ++ BYTE $0x70 ++ BYTE $0x01 ++ BYTE $0xc4 ++ BYTE $0x63 ++ BYTE $0x81 ++ BYTE $0x22 ++ BYTE $0x3e ++ BYTE $0x01 ++ VPADDQ X12, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X13, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ X14, X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ X15, X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ VPADDQ 16(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 32(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ 48(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 64(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ VPADDQ 80(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 96(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ 112(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 128(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff ++ VPADDQ 144(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 160(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ 176(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 192(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X6, X13 ++ VMOVDQA X2, X14 ++ VMOVDQA X4, X6 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x11 ++ BYTE $0x6c ++ BYTE $0xfd ++ VMOVDQA X5, X4 ++ VMOVDQA X6, X5 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xff ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x69 ++ BYTE $0x6d ++ BYTE $0xd7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xdf ++ VPADDQ 208(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 224(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFD $-79, X6, X6 ++ VPSHUFD $-79, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPSHUFB X8, X2, X2 ++ VPSHUFB X8, X3, X3 ++ VPADDQ 240(R10), X0, X0 ++ VPADDQ X2, X0, X0 ++ VPADDQ 256(R10), X1, X1 ++ VPADDQ X3, X1, X1 ++ VPXOR X0, X6, X6 ++ VPXOR X1, X7, X7 ++ VPSHUFB X9, X6, X6 ++ VPSHUFB X9, X7, X7 ++ VPADDQ X6, X4, X4 ++ VPADDQ X7, X5, X5 ++ VPXOR X4, X2, X2 ++ VPXOR X5, X3, X3 ++ VPADDQ X2, X2, X15 ++ VPSRLQ $0x3f, X2, X2 ++ VPXOR X15, X2, X2 ++ VPADDQ X3, X3, X15 ++ VPSRLQ $0x3f, X3, X3 ++ VPXOR X15, X3, X3 ++ VMOVDQA X2, X13 ++ VMOVDQA X4, X14 ++ BYTE $0xc5 ++ BYTE $0x69 ++ BYTE $0x6c ++ BYTE $0xfa ++ VMOVDQA X5, X4 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x61 ++ BYTE $0x6d ++ BYTE $0xd7 ++ VMOVDQA X14, X5 ++ BYTE $0xc5 ++ BYTE $0x61 ++ BYTE $0x6c ++ BYTE $0xfb ++ VMOVDQA X6, X14 ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x11 ++ BYTE $0x6d ++ BYTE $0xdf ++ BYTE $0xc5 ++ BYTE $0x41 ++ BYTE $0x6c ++ BYTE $0xff ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x49 ++ BYTE $0x6d ++ BYTE $0xf7 ++ BYTE $0xc4 ++ BYTE $0x41 ++ BYTE $0x09 ++ BYTE $0x6c ++ BYTE $0xfe ++ BYTE $0xc4 ++ BYTE $0xc1 ++ BYTE $0x41 ++ BYTE $0x6d ++ BYTE $0xff + VMOVDQU 32(AX), X14 + VMOVDQU 48(AX), X15 + VPXOR X0, X10, X10 +@@ -729,16 +4524,36 @@ noinc: + VPXOR X7, X15, X3 + VMOVDQU X2, 32(AX) + VMOVDQU X3, 48(AX) ++ LEAQ 128(SI), SI ++ SUBQ $0x80, DI ++ JNE loop ++ VMOVDQU X10, (AX) ++ VMOVDQU X11, 16(AX) ++ MOVQ R8, (BX) ++ MOVQ R9, 8(BX) ++ VZEROUPPER ++ RET + +- LEAQ 128(SI), SI +- SUBQ $128, DI +- JNE loop ++DATA Β·AVX_c40<>+0(SB)/8, $0x0201000706050403 ++DATA Β·AVX_c40<>+8(SB)/8, $0x0a09080f0e0d0c0b ++GLOBL Β·AVX_c40<>(SB), RODATA|NOPTR, $16 + +- VMOVDQU X10, 0(AX) +- VMOVDQU X11, 16(AX) ++DATA Β·AVX_c48<>+0(SB)/8, $0x0100070605040302 ++DATA Β·AVX_c48<>+8(SB)/8, $0x09080f0e0d0c0b0a ++GLOBL Β·AVX_c48<>(SB), RODATA|NOPTR, $16 + +- MOVQ R8, 0(BX) +- MOVQ R9, 8(BX) +- VZEROUPPER ++DATA Β·AVX_iv3<>+0(SB)/8, $0x1f83d9abfb41bd6b ++DATA Β·AVX_iv3<>+8(SB)/8, $0x5be0cd19137e2179 ++GLOBL Β·AVX_iv3<>(SB), RODATA|NOPTR, $16 + +- RET ++DATA Β·AVX_iv0<>+0(SB)/8, $0x6a09e667f3bcc908 ++DATA Β·AVX_iv0<>+8(SB)/8, $0xbb67ae8584caa73b ++GLOBL Β·AVX_iv0<>(SB), RODATA|NOPTR, $16 ++ ++DATA Β·AVX_iv1<>+0(SB)/8, $0x3c6ef372fe94f82b ++DATA Β·AVX_iv1<>+8(SB)/8, $0xa54ff53a5f1d36f1 ++GLOBL Β·AVX_iv1<>(SB), RODATA|NOPTR, $16 ++ ++DATA Β·AVX_iv2<>+0(SB)/8, $0x510e527fade682d1 ++DATA Β·AVX_iv2<>+8(SB)/8, $0x9b05688c2b3e6c1f ++GLOBL Β·AVX_iv2<>(SB), RODATA|NOPTR, $16 +diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s +index adfac00c15..9a0ce21244 100644 +--- a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s ++++ b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s +@@ -1,278 +1,1441 @@ +-// Copyright 2016 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run blake2b_amd64_asm.go -out ../../blake2b_amd64.s -pkg blake2b. DO NOT EDIT. + + //go:build amd64 && gc && !purego + + #include "textflag.h" + +-DATA Β·iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +-DATA Β·iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +-GLOBL Β·iv0<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b +-DATA Β·iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1 +-GLOBL Β·iv1<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·iv2<>+0x00(SB)/8, $0x510e527fade682d1 +-DATA Β·iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +-GLOBL Β·iv2<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b +-DATA Β·iv3<>+0x08(SB)/8, $0x5be0cd19137e2179 +-GLOBL Β·iv3<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·c40<>+0x00(SB)/8, $0x0201000706050403 +-DATA Β·c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +-GLOBL Β·c40<>(SB), (NOPTR+RODATA), $16 +- +-DATA Β·c48<>+0x00(SB)/8, $0x0100070605040302 +-DATA Β·c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +-GLOBL Β·c48<>(SB), (NOPTR+RODATA), $16 +- +-#define SHUFFLE(v2, v3, v4, v5, v6, v7, t1, t2) \ +- MOVO v4, t1; \ +- MOVO v5, v4; \ +- MOVO t1, v5; \ +- MOVO v6, t1; \ +- PUNPCKLQDQ v6, t2; \ +- PUNPCKHQDQ v7, v6; \ +- PUNPCKHQDQ t2, v6; \ +- PUNPCKLQDQ v7, t2; \ +- MOVO t1, v7; \ +- MOVO v2, t1; \ +- PUNPCKHQDQ t2, v7; \ +- PUNPCKLQDQ v3, t2; \ +- PUNPCKHQDQ t2, v2; \ +- PUNPCKLQDQ t1, t2; \ +- PUNPCKHQDQ t2, v3 +- +-#define SHUFFLE_INV(v2, v3, v4, v5, v6, v7, t1, t2) \ +- MOVO v4, t1; \ +- MOVO v5, v4; \ +- MOVO t1, v5; \ +- MOVO v2, t1; \ +- PUNPCKLQDQ v2, t2; \ +- PUNPCKHQDQ v3, v2; \ +- PUNPCKHQDQ t2, v2; \ +- PUNPCKLQDQ v3, t2; \ +- MOVO t1, v3; \ +- MOVO v6, t1; \ +- PUNPCKHQDQ t2, v3; \ +- PUNPCKLQDQ v7, t2; \ +- PUNPCKHQDQ t2, v6; \ +- PUNPCKLQDQ t1, t2; \ +- PUNPCKHQDQ t2, v7 +- +-#define HALF_ROUND(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \ +- PADDQ m0, v0; \ +- PADDQ m1, v1; \ +- PADDQ v2, v0; \ +- PADDQ v3, v1; \ +- PXOR v0, v6; \ +- PXOR v1, v7; \ +- PSHUFD $0xB1, v6, v6; \ +- PSHUFD $0xB1, v7, v7; \ +- PADDQ v6, v4; \ +- PADDQ v7, v5; \ +- PXOR v4, v2; \ +- PXOR v5, v3; \ +- PSHUFB c40, v2; \ +- PSHUFB c40, v3; \ +- PADDQ m2, v0; \ +- PADDQ m3, v1; \ +- PADDQ v2, v0; \ +- PADDQ v3, v1; \ +- PXOR v0, v6; \ +- PXOR v1, v7; \ +- PSHUFB c48, v6; \ +- PSHUFB c48, v7; \ +- PADDQ v6, v4; \ +- PADDQ v7, v5; \ +- PXOR v4, v2; \ +- PXOR v5, v3; \ +- MOVOU v2, t0; \ +- PADDQ v2, t0; \ +- PSRLQ $63, v2; \ +- PXOR t0, v2; \ +- MOVOU v3, t0; \ +- PADDQ v3, t0; \ +- PSRLQ $63, v3; \ +- PXOR t0, v3 +- +-#define LOAD_MSG(m0, m1, m2, m3, src, i0, i1, i2, i3, i4, i5, i6, i7) \ +- MOVQ i0*8(src), m0; \ +- PINSRQ $1, i1*8(src), m0; \ +- MOVQ i2*8(src), m1; \ +- PINSRQ $1, i3*8(src), m1; \ +- MOVQ i4*8(src), m2; \ +- PINSRQ $1, i5*8(src), m2; \ +- MOVQ i6*8(src), m3; \ +- PINSRQ $1, i7*8(src), m3 +- + // func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +-TEXT Β·hashBlocksSSE4(SB), 4, $288-48 // frame size = 272 + 16 byte alignment +- MOVQ h+0(FP), AX +- MOVQ c+8(FP), BX +- MOVQ flag+16(FP), CX +- MOVQ blocks_base+24(FP), SI +- MOVQ blocks_len+32(FP), DI +- +- MOVQ SP, R10 +- ADDQ $15, R10 +- ANDQ $~15, R10 +- +- MOVOU Β·iv3<>(SB), X0 +- MOVO X0, 0(R10) +- XORQ CX, 0(R10) // 0(R10) = Β·iv3 ^ (CX || 0) +- +- MOVOU Β·c40<>(SB), X13 +- MOVOU Β·c48<>(SB), X14 +- +- MOVOU 0(AX), X12 ++// Requires: SSE2, SSE4.1, SSSE3 ++TEXT Β·hashBlocksSSE4(SB), NOSPLIT, $288-48 ++ MOVQ h+0(FP), AX ++ MOVQ c+8(FP), BX ++ MOVQ flag+16(FP), CX ++ MOVQ blocks_base+24(FP), SI ++ MOVQ blocks_len+32(FP), DI ++ MOVQ SP, R10 ++ ADDQ $0x0f, R10 ++ ANDQ $-16, R10 ++ MOVOU Β·iv3<>+0(SB), X0 ++ MOVO X0, (R10) ++ XORQ CX, (R10) ++ MOVOU Β·c40<>+0(SB), X13 ++ MOVOU Β·c48<>+0(SB), X14 ++ MOVOU (AX), X12 + MOVOU 16(AX), X15 +- +- MOVQ 0(BX), R8 +- MOVQ 8(BX), R9 ++ MOVQ (BX), R8 ++ MOVQ 8(BX), R9 + + loop: +- ADDQ $128, R8 +- CMPQ R8, $128 ++ ADDQ $0x80, R8 ++ CMPQ R8, $0x80 + JGE noinc + INCQ R9 + + noinc: +- MOVQ R8, X8 +- PINSRQ $1, R9, X8 +- +- MOVO X12, X0 +- MOVO X15, X1 +- MOVOU 32(AX), X2 +- MOVOU 48(AX), X3 +- MOVOU Β·iv0<>(SB), X4 +- MOVOU Β·iv1<>(SB), X5 +- MOVOU Β·iv2<>(SB), X6 +- +- PXOR X8, X6 +- MOVO 0(R10), X7 +- +- LOAD_MSG(X8, X9, X10, X11, SI, 0, 2, 4, 6, 1, 3, 5, 7) +- MOVO X8, 16(R10) +- MOVO X9, 32(R10) +- MOVO X10, 48(R10) +- MOVO X11, 64(R10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 8, 10, 12, 14, 9, 11, 13, 15) +- MOVO X8, 80(R10) +- MOVO X9, 96(R10) +- MOVO X10, 112(R10) +- MOVO X11, 128(R10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 14, 4, 9, 13, 10, 8, 15, 6) +- MOVO X8, 144(R10) +- MOVO X9, 160(R10) +- MOVO X10, 176(R10) +- MOVO X11, 192(R10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 1, 0, 11, 5, 12, 2, 7, 3) +- MOVO X8, 208(R10) +- MOVO X9, 224(R10) +- MOVO X10, 240(R10) +- MOVO X11, 256(R10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 11, 12, 5, 15, 8, 0, 2, 13) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 10, 3, 7, 9, 14, 6, 1, 4) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 7, 3, 13, 11, 9, 1, 12, 14) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 2, 5, 4, 15, 6, 10, 0, 8) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 9, 5, 2, 10, 0, 7, 4, 15) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 14, 11, 6, 3, 1, 12, 8, 13) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 2, 6, 0, 8, 12, 10, 11, 3) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 4, 7, 15, 1, 13, 5, 14, 9) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 12, 1, 14, 4, 5, 15, 13, 10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 0, 6, 9, 8, 7, 3, 2, 11) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 13, 7, 12, 3, 11, 14, 1, 9) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 5, 15, 8, 2, 0, 4, 6, 10) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 6, 14, 11, 0, 15, 9, 3, 8) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 12, 13, 1, 10, 2, 7, 4, 5) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- LOAD_MSG(X8, X9, X10, X11, SI, 10, 8, 7, 1, 2, 4, 6, 5) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- LOAD_MSG(X8, X9, X10, X11, SI, 15, 9, 3, 13, 11, 14, 12, 0) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) +- +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 16(R10), 32(R10), 48(R10), 64(R10), X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 80(R10), 96(R10), 112(R10), 128(R10), X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) ++ MOVQ R8, X8 ++ PINSRQ $0x01, R9, X8 ++ MOVO X12, X0 ++ MOVO X15, X1 ++ MOVOU 32(AX), X2 ++ MOVOU 48(AX), X3 ++ MOVOU Β·iv0<>+0(SB), X4 ++ MOVOU Β·iv1<>+0(SB), X5 ++ MOVOU Β·iv2<>+0(SB), X6 ++ PXOR X8, X6 ++ MOVO (R10), X7 ++ MOVQ (SI), X8 ++ PINSRQ $0x01, 16(SI), X8 ++ MOVQ 32(SI), X9 ++ PINSRQ $0x01, 48(SI), X9 ++ MOVQ 8(SI), X10 ++ PINSRQ $0x01, 24(SI), X10 ++ MOVQ 40(SI), X11 ++ PINSRQ $0x01, 56(SI), X11 ++ MOVO X8, 16(R10) ++ MOVO X9, 32(R10) ++ MOVO X10, 48(R10) ++ MOVO X11, 64(R10) ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 64(SI), X8 ++ PINSRQ $0x01, 80(SI), X8 ++ MOVQ 96(SI), X9 ++ PINSRQ $0x01, 112(SI), X9 ++ MOVQ 72(SI), X10 ++ PINSRQ $0x01, 88(SI), X10 ++ MOVQ 104(SI), X11 ++ PINSRQ $0x01, 120(SI), X11 ++ MOVO X8, 80(R10) ++ MOVO X9, 96(R10) ++ MOVO X10, 112(R10) ++ MOVO X11, 128(R10) ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 112(SI), X8 ++ PINSRQ $0x01, 32(SI), X8 ++ MOVQ 72(SI), X9 ++ PINSRQ $0x01, 104(SI), X9 ++ MOVQ 80(SI), X10 ++ PINSRQ $0x01, 64(SI), X10 ++ MOVQ 120(SI), X11 ++ PINSRQ $0x01, 48(SI), X11 ++ MOVO X8, 144(R10) ++ MOVO X9, 160(R10) ++ MOVO X10, 176(R10) ++ MOVO X11, 192(R10) ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 8(SI), X8 ++ PINSRQ $0x01, (SI), X8 ++ MOVQ 88(SI), X9 ++ PINSRQ $0x01, 40(SI), X9 ++ MOVQ 96(SI), X10 ++ PINSRQ $0x01, 16(SI), X10 ++ MOVQ 56(SI), X11 ++ PINSRQ $0x01, 24(SI), X11 ++ MOVO X8, 208(R10) ++ MOVO X9, 224(R10) ++ MOVO X10, 240(R10) ++ MOVO X11, 256(R10) ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 88(SI), X8 ++ PINSRQ $0x01, 96(SI), X8 ++ MOVQ 40(SI), X9 ++ PINSRQ $0x01, 120(SI), X9 ++ MOVQ 64(SI), X10 ++ PINSRQ $0x01, (SI), X10 ++ MOVQ 16(SI), X11 ++ PINSRQ $0x01, 104(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 80(SI), X8 ++ PINSRQ $0x01, 24(SI), X8 ++ MOVQ 56(SI), X9 ++ PINSRQ $0x01, 72(SI), X9 ++ MOVQ 112(SI), X10 ++ PINSRQ $0x01, 48(SI), X10 ++ MOVQ 8(SI), X11 ++ PINSRQ $0x01, 32(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 56(SI), X8 ++ PINSRQ $0x01, 24(SI), X8 ++ MOVQ 104(SI), X9 ++ PINSRQ $0x01, 88(SI), X9 ++ MOVQ 72(SI), X10 ++ PINSRQ $0x01, 8(SI), X10 ++ MOVQ 96(SI), X11 ++ PINSRQ $0x01, 112(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 16(SI), X8 ++ PINSRQ $0x01, 40(SI), X8 ++ MOVQ 32(SI), X9 ++ PINSRQ $0x01, 120(SI), X9 ++ MOVQ 48(SI), X10 ++ PINSRQ $0x01, 80(SI), X10 ++ MOVQ (SI), X11 ++ PINSRQ $0x01, 64(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 72(SI), X8 ++ PINSRQ $0x01, 40(SI), X8 ++ MOVQ 16(SI), X9 ++ PINSRQ $0x01, 80(SI), X9 ++ MOVQ (SI), X10 ++ PINSRQ $0x01, 56(SI), X10 ++ MOVQ 32(SI), X11 ++ PINSRQ $0x01, 120(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 112(SI), X8 ++ PINSRQ $0x01, 88(SI), X8 ++ MOVQ 48(SI), X9 ++ PINSRQ $0x01, 24(SI), X9 ++ MOVQ 8(SI), X10 ++ PINSRQ $0x01, 96(SI), X10 ++ MOVQ 64(SI), X11 ++ PINSRQ $0x01, 104(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 16(SI), X8 ++ PINSRQ $0x01, 48(SI), X8 ++ MOVQ (SI), X9 ++ PINSRQ $0x01, 64(SI), X9 ++ MOVQ 96(SI), X10 ++ PINSRQ $0x01, 80(SI), X10 ++ MOVQ 88(SI), X11 ++ PINSRQ $0x01, 24(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 32(SI), X8 ++ PINSRQ $0x01, 56(SI), X8 ++ MOVQ 120(SI), X9 ++ PINSRQ $0x01, 8(SI), X9 ++ MOVQ 104(SI), X10 ++ PINSRQ $0x01, 40(SI), X10 ++ MOVQ 112(SI), X11 ++ PINSRQ $0x01, 72(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 96(SI), X8 ++ PINSRQ $0x01, 8(SI), X8 ++ MOVQ 112(SI), X9 ++ PINSRQ $0x01, 32(SI), X9 ++ MOVQ 40(SI), X10 ++ PINSRQ $0x01, 120(SI), X10 ++ MOVQ 104(SI), X11 ++ PINSRQ $0x01, 80(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ (SI), X8 ++ PINSRQ $0x01, 48(SI), X8 ++ MOVQ 72(SI), X9 ++ PINSRQ $0x01, 64(SI), X9 ++ MOVQ 56(SI), X10 ++ PINSRQ $0x01, 24(SI), X10 ++ MOVQ 16(SI), X11 ++ PINSRQ $0x01, 88(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 104(SI), X8 ++ PINSRQ $0x01, 56(SI), X8 ++ MOVQ 96(SI), X9 ++ PINSRQ $0x01, 24(SI), X9 ++ MOVQ 88(SI), X10 ++ PINSRQ $0x01, 112(SI), X10 ++ MOVQ 8(SI), X11 ++ PINSRQ $0x01, 72(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 40(SI), X8 ++ PINSRQ $0x01, 120(SI), X8 ++ MOVQ 64(SI), X9 ++ PINSRQ $0x01, 16(SI), X9 ++ MOVQ (SI), X10 ++ PINSRQ $0x01, 32(SI), X10 ++ MOVQ 48(SI), X11 ++ PINSRQ $0x01, 80(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 48(SI), X8 ++ PINSRQ $0x01, 112(SI), X8 ++ MOVQ 88(SI), X9 ++ PINSRQ $0x01, (SI), X9 ++ MOVQ 120(SI), X10 ++ PINSRQ $0x01, 72(SI), X10 ++ MOVQ 24(SI), X11 ++ PINSRQ $0x01, 64(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 96(SI), X8 ++ PINSRQ $0x01, 104(SI), X8 ++ MOVQ 8(SI), X9 ++ PINSRQ $0x01, 80(SI), X9 ++ MOVQ 16(SI), X10 ++ PINSRQ $0x01, 56(SI), X10 ++ MOVQ 32(SI), X11 ++ PINSRQ $0x01, 40(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVQ 80(SI), X8 ++ PINSRQ $0x01, 64(SI), X8 ++ MOVQ 56(SI), X9 ++ PINSRQ $0x01, 8(SI), X9 ++ MOVQ 16(SI), X10 ++ PINSRQ $0x01, 32(SI), X10 ++ MOVQ 48(SI), X11 ++ PINSRQ $0x01, 40(SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ MOVQ 120(SI), X8 ++ PINSRQ $0x01, 72(SI), X8 ++ MOVQ 24(SI), X9 ++ PINSRQ $0x01, 104(SI), X9 ++ MOVQ 88(SI), X10 ++ PINSRQ $0x01, 112(SI), X10 ++ MOVQ 96(SI), X11 ++ PINSRQ $0x01, (SI), X11 ++ PADDQ X8, X0 ++ PADDQ X9, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ X10, X0 ++ PADDQ X11, X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ PADDQ 16(R10), X0 ++ PADDQ 32(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ 48(R10), X0 ++ PADDQ 64(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ PADDQ 80(R10), X0 ++ PADDQ 96(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ 112(R10), X0 ++ PADDQ 128(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ PADDQ 144(R10), X0 ++ PADDQ 160(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ 176(R10), X0 ++ PADDQ 192(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X6, X8 ++ PUNPCKLQDQ X6, X9 ++ PUNPCKHQDQ X7, X6 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X7, X9 ++ MOVO X8, X7 ++ MOVO X2, X8 ++ PUNPCKHQDQ X9, X7 ++ PUNPCKLQDQ X3, X9 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X3 ++ PADDQ 208(R10), X0 ++ PADDQ 224(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFD $0xb1, X6, X6 ++ PSHUFD $0xb1, X7, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ PSHUFB X13, X2 ++ PSHUFB X13, X3 ++ PADDQ 240(R10), X0 ++ PADDQ 256(R10), X1 ++ PADDQ X2, X0 ++ PADDQ X3, X1 ++ PXOR X0, X6 ++ PXOR X1, X7 ++ PSHUFB X14, X6 ++ PSHUFB X14, X7 ++ PADDQ X6, X4 ++ PADDQ X7, X5 ++ PXOR X4, X2 ++ PXOR X5, X3 ++ MOVOU X2, X11 ++ PADDQ X2, X11 ++ PSRLQ $0x3f, X2 ++ PXOR X11, X2 ++ MOVOU X3, X11 ++ PADDQ X3, X11 ++ PSRLQ $0x3f, X3 ++ PXOR X11, X3 ++ MOVO X4, X8 ++ MOVO X5, X4 ++ MOVO X8, X5 ++ MOVO X2, X8 ++ PUNPCKLQDQ X2, X9 ++ PUNPCKHQDQ X3, X2 ++ PUNPCKHQDQ X9, X2 ++ PUNPCKLQDQ X3, X9 ++ MOVO X8, X3 ++ MOVO X6, X8 ++ PUNPCKHQDQ X9, X3 ++ PUNPCKLQDQ X7, X9 ++ PUNPCKHQDQ X9, X6 ++ PUNPCKLQDQ X8, X9 ++ PUNPCKHQDQ X9, X7 ++ MOVOU 32(AX), X10 ++ MOVOU 48(AX), X11 ++ PXOR X0, X12 ++ PXOR X1, X15 ++ PXOR X2, X10 ++ PXOR X3, X11 ++ PXOR X4, X12 ++ PXOR X5, X15 ++ PXOR X6, X10 ++ PXOR X7, X11 ++ MOVOU X10, 32(AX) ++ MOVOU X11, 48(AX) ++ LEAQ 128(SI), SI ++ SUBQ $0x80, DI ++ JNE loop ++ MOVOU X12, (AX) ++ MOVOU X15, 16(AX) ++ MOVQ R8, (BX) ++ MOVQ R9, 8(BX) ++ RET + +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 144(R10), 160(R10), 176(R10), 192(R10), X11, X13, X14) +- SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) +- HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 208(R10), 224(R10), 240(R10), 256(R10), X11, X13, X14) +- SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) ++DATA Β·iv3<>+0(SB)/8, $0x1f83d9abfb41bd6b ++DATA Β·iv3<>+8(SB)/8, $0x5be0cd19137e2179 ++GLOBL Β·iv3<>(SB), RODATA|NOPTR, $16 + +- MOVOU 32(AX), X10 +- MOVOU 48(AX), X11 +- PXOR X0, X12 +- PXOR X1, X15 +- PXOR X2, X10 +- PXOR X3, X11 +- PXOR X4, X12 +- PXOR X5, X15 +- PXOR X6, X10 +- PXOR X7, X11 +- MOVOU X10, 32(AX) +- MOVOU X11, 48(AX) ++DATA Β·c40<>+0(SB)/8, $0x0201000706050403 ++DATA Β·c40<>+8(SB)/8, $0x0a09080f0e0d0c0b ++GLOBL Β·c40<>(SB), RODATA|NOPTR, $16 + +- LEAQ 128(SI), SI +- SUBQ $128, DI +- JNE loop ++DATA Β·c48<>+0(SB)/8, $0x0100070605040302 ++DATA Β·c48<>+8(SB)/8, $0x09080f0e0d0c0b0a ++GLOBL Β·c48<>(SB), RODATA|NOPTR, $16 + +- MOVOU X12, 0(AX) +- MOVOU X15, 16(AX) ++DATA Β·iv0<>+0(SB)/8, $0x6a09e667f3bcc908 ++DATA Β·iv0<>+8(SB)/8, $0xbb67ae8584caa73b ++GLOBL Β·iv0<>(SB), RODATA|NOPTR, $16 + +- MOVQ R8, 0(BX) +- MOVQ R9, 8(BX) ++DATA Β·iv1<>+0(SB)/8, $0x3c6ef372fe94f82b ++DATA Β·iv1<>+8(SB)/8, $0xa54ff53a5f1d36f1 ++GLOBL Β·iv1<>(SB), RODATA|NOPTR, $16 + +- RET ++DATA Β·iv2<>+0(SB)/8, $0x510e527fade682d1 ++DATA Β·iv2<>+8(SB)/8, $0x9b05688c2b3e6c1f ++GLOBL Β·iv2<>(SB), RODATA|NOPTR, $16 +diff --git a/vendor/golang.org/x/crypto/blowfish/cipher.go b/vendor/golang.org/x/crypto/blowfish/cipher.go +index 213bf204af..0898956807 100644 +--- a/vendor/golang.org/x/crypto/blowfish/cipher.go ++++ b/vendor/golang.org/x/crypto/blowfish/cipher.go +@@ -11,7 +11,7 @@ + // Deprecated: any new system should use AES (from crypto/aes, if necessary in + // an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from + // golang.org/x/crypto/chacha20poly1305). +-package blowfish // import "golang.org/x/crypto/blowfish" ++package blowfish + + // The code is a port of Bruce Schneier's C implementation. + // See https://www.schneier.com/blowfish.html. +diff --git a/vendor/golang.org/x/crypto/cast5/cast5.go b/vendor/golang.org/x/crypto/cast5/cast5.go +index 425e8eecb0..016e90215c 100644 +--- a/vendor/golang.org/x/crypto/cast5/cast5.go ++++ b/vendor/golang.org/x/crypto/cast5/cast5.go +@@ -11,7 +11,7 @@ + // Deprecated: any new system should use AES (from crypto/aes, if necessary in + // an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from + // golang.org/x/crypto/chacha20poly1305). +-package cast5 // import "golang.org/x/crypto/cast5" ++package cast5 + + import ( + "errors" +diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_noasm.go b/vendor/golang.org/x/crypto/chacha20/chacha_noasm.go +index db42e6676a..c709b72847 100644 +--- a/vendor/golang.org/x/crypto/chacha20/chacha_noasm.go ++++ b/vendor/golang.org/x/crypto/chacha20/chacha_noasm.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build (!arm64 && !s390x && !ppc64le) || !gc || purego ++//go:build (!arm64 && !s390x && !ppc64 && !ppc64le) || !gc || purego + + package chacha20 + +diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go b/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.go +similarity index 89% +rename from vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go +rename to vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.go +index 3a4287f990..bd183d9ba1 100644 +--- a/vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go ++++ b/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build gc && !purego ++//go:build gc && !purego && (ppc64 || ppc64le) + + package chacha20 + +diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s b/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.s +similarity index 66% +rename from vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s +rename to vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.s +index 66aebae258..a660b4112f 100644 +--- a/vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s ++++ b/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.s +@@ -19,7 +19,7 @@ + // The differences in this and the original implementation are + // due to the calling conventions and initialization of constants. + +-//go:build gc && !purego ++//go:build gc && !purego && (ppc64 || ppc64le) + + #include "textflag.h" + +@@ -33,27 +33,70 @@ + #define CONSTBASE R16 + #define BLOCKS R17 + +-DATA consts<>+0x00(SB)/8, $0x3320646e61707865 +-DATA consts<>+0x08(SB)/8, $0x6b20657479622d32 +-DATA consts<>+0x10(SB)/8, $0x0000000000000001 +-DATA consts<>+0x18(SB)/8, $0x0000000000000000 +-DATA consts<>+0x20(SB)/8, $0x0000000000000004 +-DATA consts<>+0x28(SB)/8, $0x0000000000000000 +-DATA consts<>+0x30(SB)/8, $0x0a0b08090e0f0c0d +-DATA consts<>+0x38(SB)/8, $0x0203000106070405 +-DATA consts<>+0x40(SB)/8, $0x090a0b080d0e0f0c +-DATA consts<>+0x48(SB)/8, $0x0102030005060704 +-DATA consts<>+0x50(SB)/8, $0x6170786561707865 +-DATA consts<>+0x58(SB)/8, $0x6170786561707865 +-DATA consts<>+0x60(SB)/8, $0x3320646e3320646e +-DATA consts<>+0x68(SB)/8, $0x3320646e3320646e +-DATA consts<>+0x70(SB)/8, $0x79622d3279622d32 +-DATA consts<>+0x78(SB)/8, $0x79622d3279622d32 +-DATA consts<>+0x80(SB)/8, $0x6b2065746b206574 +-DATA consts<>+0x88(SB)/8, $0x6b2065746b206574 +-DATA consts<>+0x90(SB)/8, $0x0000000100000000 +-DATA consts<>+0x98(SB)/8, $0x0000000300000002 +-GLOBL consts<>(SB), RODATA, $0xa0 ++// for VPERMXOR ++#define MASK R18 ++ ++DATA consts<>+0x00(SB)/4, $0x61707865 ++DATA consts<>+0x04(SB)/4, $0x3320646e ++DATA consts<>+0x08(SB)/4, $0x79622d32 ++DATA consts<>+0x0c(SB)/4, $0x6b206574 ++DATA consts<>+0x10(SB)/4, $0x00000001 ++DATA consts<>+0x14(SB)/4, $0x00000000 ++DATA consts<>+0x18(SB)/4, $0x00000000 ++DATA consts<>+0x1c(SB)/4, $0x00000000 ++DATA consts<>+0x20(SB)/4, $0x00000004 ++DATA consts<>+0x24(SB)/4, $0x00000000 ++DATA consts<>+0x28(SB)/4, $0x00000000 ++DATA consts<>+0x2c(SB)/4, $0x00000000 ++DATA consts<>+0x30(SB)/4, $0x0e0f0c0d ++DATA consts<>+0x34(SB)/4, $0x0a0b0809 ++DATA consts<>+0x38(SB)/4, $0x06070405 ++DATA consts<>+0x3c(SB)/4, $0x02030001 ++DATA consts<>+0x40(SB)/4, $0x0d0e0f0c ++DATA consts<>+0x44(SB)/4, $0x090a0b08 ++DATA consts<>+0x48(SB)/4, $0x05060704 ++DATA consts<>+0x4c(SB)/4, $0x01020300 ++DATA consts<>+0x50(SB)/4, $0x61707865 ++DATA consts<>+0x54(SB)/4, $0x61707865 ++DATA consts<>+0x58(SB)/4, $0x61707865 ++DATA consts<>+0x5c(SB)/4, $0x61707865 ++DATA consts<>+0x60(SB)/4, $0x3320646e ++DATA consts<>+0x64(SB)/4, $0x3320646e ++DATA consts<>+0x68(SB)/4, $0x3320646e ++DATA consts<>+0x6c(SB)/4, $0x3320646e ++DATA consts<>+0x70(SB)/4, $0x79622d32 ++DATA consts<>+0x74(SB)/4, $0x79622d32 ++DATA consts<>+0x78(SB)/4, $0x79622d32 ++DATA consts<>+0x7c(SB)/4, $0x79622d32 ++DATA consts<>+0x80(SB)/4, $0x6b206574 ++DATA consts<>+0x84(SB)/4, $0x6b206574 ++DATA consts<>+0x88(SB)/4, $0x6b206574 ++DATA consts<>+0x8c(SB)/4, $0x6b206574 ++DATA consts<>+0x90(SB)/4, $0x00000000 ++DATA consts<>+0x94(SB)/4, $0x00000001 ++DATA consts<>+0x98(SB)/4, $0x00000002 ++DATA consts<>+0x9c(SB)/4, $0x00000003 ++DATA consts<>+0xa0(SB)/4, $0x11223300 ++DATA consts<>+0xa4(SB)/4, $0x55667744 ++DATA consts<>+0xa8(SB)/4, $0x99aabb88 ++DATA consts<>+0xac(SB)/4, $0xddeeffcc ++DATA consts<>+0xb0(SB)/4, $0x22330011 ++DATA consts<>+0xb4(SB)/4, $0x66774455 ++DATA consts<>+0xb8(SB)/4, $0xaabb8899 ++DATA consts<>+0xbc(SB)/4, $0xeeffccdd ++GLOBL consts<>(SB), RODATA, $0xc0 ++ ++#ifdef GOARCH_ppc64 ++#define BE_XXBRW_INIT() \ ++ LVSL (R0)(R0), V24 \ ++ VSPLTISB $3, V25 \ ++ VXOR V24, V25, V24 \ ++ ++#define BE_XXBRW(vr) VPERM vr, vr, V24, vr ++#else ++#define BE_XXBRW_INIT() ++#define BE_XXBRW(vr) ++#endif + + //func chaCha20_ctr32_vsx(out, inp *byte, len int, key *[8]uint32, counter *uint32) + TEXT Β·chaCha20_ctr32_vsx(SB),NOSPLIT,$64-40 +@@ -70,6 +113,9 @@ TEXT Β·chaCha20_ctr32_vsx(SB),NOSPLIT,$64-40 + MOVD $48, R10 + MOVD $64, R11 + SRD $6, LEN, BLOCKS ++ // for VPERMXOR ++ MOVD $consts<>+0xa0(SB), MASK ++ MOVD $16, R20 + // V16 + LXVW4X (CONSTBASE)(R0), VS48 + ADD $80,CONSTBASE +@@ -84,9 +130,15 @@ TEXT Β·chaCha20_ctr32_vsx(SB),NOSPLIT,$64-40 + // Clear V27 + VXOR V27, V27, V27 + ++ BE_XXBRW_INIT() ++ + // V28 + LXVW4X (CONSTBASE)(R11), VS60 + ++ // Load mask constants for VPERMXOR ++ LXVW4X (MASK)(R0), V20 ++ LXVW4X (MASK)(R20), V21 ++ + // splat slot from V19 -> V26 + VSPLTW $0, V19, V26 + +@@ -97,7 +149,7 @@ TEXT Β·chaCha20_ctr32_vsx(SB),NOSPLIT,$64-40 + + MOVD $10, R14 + MOVD R14, CTR +- ++ PCALIGN $16 + loop_outer_vsx: + // V0, V1, V2, V3 + LXVW4X (R0)(CONSTBASE), VS32 +@@ -128,22 +180,17 @@ loop_outer_vsx: + VSPLTISW $12, V28 + VSPLTISW $8, V29 + VSPLTISW $7, V30 +- ++ PCALIGN $16 + loop_vsx: + VADDUWM V0, V4, V0 + VADDUWM V1, V5, V1 + VADDUWM V2, V6, V2 + VADDUWM V3, V7, V3 + +- VXOR V12, V0, V12 +- VXOR V13, V1, V13 +- VXOR V14, V2, V14 +- VXOR V15, V3, V15 +- +- VRLW V12, V27, V12 +- VRLW V13, V27, V13 +- VRLW V14, V27, V14 +- VRLW V15, V27, V15 ++ VPERMXOR V12, V0, V21, V12 ++ VPERMXOR V13, V1, V21, V13 ++ VPERMXOR V14, V2, V21, V14 ++ VPERMXOR V15, V3, V21, V15 + + VADDUWM V8, V12, V8 + VADDUWM V9, V13, V9 +@@ -165,15 +212,10 @@ loop_vsx: + VADDUWM V2, V6, V2 + VADDUWM V3, V7, V3 + +- VXOR V12, V0, V12 +- VXOR V13, V1, V13 +- VXOR V14, V2, V14 +- VXOR V15, V3, V15 +- +- VRLW V12, V29, V12 +- VRLW V13, V29, V13 +- VRLW V14, V29, V14 +- VRLW V15, V29, V15 ++ VPERMXOR V12, V0, V20, V12 ++ VPERMXOR V13, V1, V20, V13 ++ VPERMXOR V14, V2, V20, V14 ++ VPERMXOR V15, V3, V20, V15 + + VADDUWM V8, V12, V8 + VADDUWM V9, V13, V9 +@@ -195,15 +237,10 @@ loop_vsx: + VADDUWM V2, V7, V2 + VADDUWM V3, V4, V3 + +- VXOR V15, V0, V15 +- VXOR V12, V1, V12 +- VXOR V13, V2, V13 +- VXOR V14, V3, V14 +- +- VRLW V15, V27, V15 +- VRLW V12, V27, V12 +- VRLW V13, V27, V13 +- VRLW V14, V27, V14 ++ VPERMXOR V15, V0, V21, V15 ++ VPERMXOR V12, V1, V21, V12 ++ VPERMXOR V13, V2, V21, V13 ++ VPERMXOR V14, V3, V21, V14 + + VADDUWM V10, V15, V10 + VADDUWM V11, V12, V11 +@@ -225,15 +262,10 @@ loop_vsx: + VADDUWM V2, V7, V2 + VADDUWM V3, V4, V3 + +- VXOR V15, V0, V15 +- VXOR V12, V1, V12 +- VXOR V13, V2, V13 +- VXOR V14, V3, V14 +- +- VRLW V15, V29, V15 +- VRLW V12, V29, V12 +- VRLW V13, V29, V13 +- VRLW V14, V29, V14 ++ VPERMXOR V15, V0, V20, V15 ++ VPERMXOR V12, V1, V20, V12 ++ VPERMXOR V13, V2, V20, V13 ++ VPERMXOR V14, V3, V20, V14 + + VADDUWM V10, V15, V10 + VADDUWM V11, V12, V11 +@@ -249,48 +281,48 @@ loop_vsx: + VRLW V6, V30, V6 + VRLW V7, V30, V7 + VRLW V4, V30, V4 +- BC 16, LT, loop_vsx ++ BDNZ loop_vsx + + VADDUWM V12, V26, V12 + +- WORD $0x13600F8C // VMRGEW V0, V1, V27 +- WORD $0x13821F8C // VMRGEW V2, V3, V28 ++ VMRGEW V0, V1, V27 ++ VMRGEW V2, V3, V28 + +- WORD $0x10000E8C // VMRGOW V0, V1, V0 +- WORD $0x10421E8C // VMRGOW V2, V3, V2 ++ VMRGOW V0, V1, V0 ++ VMRGOW V2, V3, V2 + +- WORD $0x13A42F8C // VMRGEW V4, V5, V29 +- WORD $0x13C63F8C // VMRGEW V6, V7, V30 ++ VMRGEW V4, V5, V29 ++ VMRGEW V6, V7, V30 + + XXPERMDI VS32, VS34, $0, VS33 + XXPERMDI VS32, VS34, $3, VS35 + XXPERMDI VS59, VS60, $0, VS32 + XXPERMDI VS59, VS60, $3, VS34 + +- WORD $0x10842E8C // VMRGOW V4, V5, V4 +- WORD $0x10C63E8C // VMRGOW V6, V7, V6 ++ VMRGOW V4, V5, V4 ++ VMRGOW V6, V7, V6 + +- WORD $0x13684F8C // VMRGEW V8, V9, V27 +- WORD $0x138A5F8C // VMRGEW V10, V11, V28 ++ VMRGEW V8, V9, V27 ++ VMRGEW V10, V11, V28 + + XXPERMDI VS36, VS38, $0, VS37 + XXPERMDI VS36, VS38, $3, VS39 + XXPERMDI VS61, VS62, $0, VS36 + XXPERMDI VS61, VS62, $3, VS38 + +- WORD $0x11084E8C // VMRGOW V8, V9, V8 +- WORD $0x114A5E8C // VMRGOW V10, V11, V10 ++ VMRGOW V8, V9, V8 ++ VMRGOW V10, V11, V10 + +- WORD $0x13AC6F8C // VMRGEW V12, V13, V29 +- WORD $0x13CE7F8C // VMRGEW V14, V15, V30 ++ VMRGEW V12, V13, V29 ++ VMRGEW V14, V15, V30 + + XXPERMDI VS40, VS42, $0, VS41 + XXPERMDI VS40, VS42, $3, VS43 + XXPERMDI VS59, VS60, $0, VS40 + XXPERMDI VS59, VS60, $3, VS42 + +- WORD $0x118C6E8C // VMRGOW V12, V13, V12 +- WORD $0x11CE7E8C // VMRGOW V14, V15, V14 ++ VMRGOW V12, V13, V12 ++ VMRGOW V14, V15, V14 + + VSPLTISW $4, V27 + VADDUWM V26, V27, V26 +@@ -305,6 +337,11 @@ loop_vsx: + VADDUWM V8, V18, V8 + VADDUWM V12, V19, V12 + ++ BE_XXBRW(V0) ++ BE_XXBRW(V4) ++ BE_XXBRW(V8) ++ BE_XXBRW(V12) ++ + CMPU LEN, $64 + BLT tail_vsx + +@@ -333,6 +370,11 @@ loop_vsx: + VADDUWM V9, V18, V8 + VADDUWM V13, V19, V12 + ++ BE_XXBRW(V0) ++ BE_XXBRW(V4) ++ BE_XXBRW(V8) ++ BE_XXBRW(V12) ++ + CMPU LEN, $64 + BLT tail_vsx + +@@ -340,8 +382,8 @@ loop_vsx: + LXVW4X (INP)(R8), VS60 + LXVW4X (INP)(R9), VS61 + LXVW4X (INP)(R10), VS62 +- VXOR V27, V0, V27 + ++ VXOR V27, V0, V27 + VXOR V28, V4, V28 + VXOR V29, V8, V29 + VXOR V30, V12, V30 +@@ -360,6 +402,11 @@ loop_vsx: + VADDUWM V10, V18, V8 + VADDUWM V14, V19, V12 + ++ BE_XXBRW(V0) ++ BE_XXBRW(V4) ++ BE_XXBRW(V8) ++ BE_XXBRW(V12) ++ + CMPU LEN, $64 + BLT tail_vsx + +@@ -387,6 +434,11 @@ loop_vsx: + VADDUWM V11, V18, V8 + VADDUWM V15, V19, V12 + ++ BE_XXBRW(V0) ++ BE_XXBRW(V4) ++ BE_XXBRW(V8) ++ BE_XXBRW(V12) ++ + CMPU LEN, $64 + BLT tail_vsx + +@@ -414,9 +466,9 @@ loop_vsx: + + done_vsx: + // Increment counter by number of 64 byte blocks +- MOVD (CNT), R14 ++ MOVWZ (CNT), R14 + ADD BLOCKS, R14 +- MOVD R14, (CNT) ++ MOVWZ R14, (CNT) + RET + + tail_vsx: +@@ -431,7 +483,7 @@ tail_vsx: + ADD $-1, R11, R12 + ADD $-1, INP + ADD $-1, OUT +- ++ PCALIGN $16 + looptail_vsx: + // Copying the result to OUT + // in bytes. +@@ -439,7 +491,7 @@ looptail_vsx: + MOVBZU 1(INP), TMP + XOR KEY, TMP, KEY + MOVBU KEY, 1(OUT) +- BC 16, LT, looptail_vsx ++ BDNZ looptail_vsx + + // Clear the stack values + STXVW4X VS48, (R11)(R0) +diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go +index 00f963ea20..21ca3b2ee4 100644 +--- a/vendor/golang.org/x/crypto/curve25519/curve25519.go ++++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go +@@ -6,9 +6,11 @@ + // performs scalar multiplication on the elliptic curve known as Curve25519. + // See RFC 7748. + // +-// Starting in Go 1.20, this package is a wrapper for the X25519 implementation ++// This package is a wrapper for the X25519 implementation + // in the crypto/ecdh package. +-package curve25519 // import "golang.org/x/crypto/curve25519" ++package curve25519 ++ ++import "crypto/ecdh" + + // ScalarMult sets dst to the product scalar * point. + // +@@ -16,7 +18,13 @@ package curve25519 // import "golang.org/x/crypto/curve25519" + // zeroes, irrespective of the scalar. Instead, use the X25519 function, which + // will return an error. + func ScalarMult(dst, scalar, point *[32]byte) { +- scalarMult(dst, scalar, point) ++ if _, err := x25519(dst, scalar[:], point[:]); err != nil { ++ // The only error condition for x25519 when the inputs are 32 bytes long ++ // is if the output would have been the all-zero value. ++ for i := range dst { ++ dst[i] = 0 ++ } ++ } + } + + // ScalarBaseMult sets dst to the product scalar * base where base is the +@@ -25,7 +33,12 @@ func ScalarMult(dst, scalar, point *[32]byte) { + // It is recommended to use the X25519 function with Basepoint instead, as + // copying into fixed size arrays can lead to unexpected bugs. + func ScalarBaseMult(dst, scalar *[32]byte) { +- scalarBaseMult(dst, scalar) ++ curve := ecdh.X25519() ++ priv, err := curve.NewPrivateKey(scalar[:]) ++ if err != nil { ++ panic("curve25519: internal error: scalarBaseMult was not 32 bytes") ++ } ++ copy(dst[:], priv.PublicKey().Bytes()) + } + + const ( +@@ -57,3 +70,21 @@ func X25519(scalar, point []byte) ([]byte, error) { + var dst [32]byte + return x25519(&dst, scalar, point) + } ++ ++func x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) { ++ curve := ecdh.X25519() ++ pub, err := curve.NewPublicKey(point) ++ if err != nil { ++ return nil, err ++ } ++ priv, err := curve.NewPrivateKey(scalar) ++ if err != nil { ++ return nil, err ++ } ++ out, err := priv.ECDH(pub) ++ if err != nil { ++ return nil, err ++ } ++ copy(dst[:], out) ++ return dst[:], nil ++} +diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519_compat.go b/vendor/golang.org/x/crypto/curve25519/curve25519_compat.go +deleted file mode 100644 +index ba647e8d77..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/curve25519_compat.go ++++ /dev/null +@@ -1,105 +0,0 @@ +-// Copyright 2019 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.20 +- +-package curve25519 +- +-import ( +- "crypto/subtle" +- "errors" +- "strconv" +- +- "golang.org/x/crypto/curve25519/internal/field" +-) +- +-func scalarMult(dst, scalar, point *[32]byte) { +- var e [32]byte +- +- copy(e[:], scalar[:]) +- e[0] &= 248 +- e[31] &= 127 +- e[31] |= 64 +- +- var x1, x2, z2, x3, z3, tmp0, tmp1 field.Element +- x1.SetBytes(point[:]) +- x2.One() +- x3.Set(&x1) +- z3.One() +- +- swap := 0 +- for pos := 254; pos >= 0; pos-- { +- b := e[pos/8] >> uint(pos&7) +- b &= 1 +- swap ^= int(b) +- x2.Swap(&x3, swap) +- z2.Swap(&z3, swap) +- swap = int(b) +- +- tmp0.Subtract(&x3, &z3) +- tmp1.Subtract(&x2, &z2) +- x2.Add(&x2, &z2) +- z2.Add(&x3, &z3) +- z3.Multiply(&tmp0, &x2) +- z2.Multiply(&z2, &tmp1) +- tmp0.Square(&tmp1) +- tmp1.Square(&x2) +- x3.Add(&z3, &z2) +- z2.Subtract(&z3, &z2) +- x2.Multiply(&tmp1, &tmp0) +- tmp1.Subtract(&tmp1, &tmp0) +- z2.Square(&z2) +- +- z3.Mult32(&tmp1, 121666) +- x3.Square(&x3) +- tmp0.Add(&tmp0, &z3) +- z3.Multiply(&x1, &z2) +- z2.Multiply(&tmp1, &tmp0) +- } +- +- x2.Swap(&x3, swap) +- z2.Swap(&z3, swap) +- +- z2.Invert(&z2) +- x2.Multiply(&x2, &z2) +- copy(dst[:], x2.Bytes()) +-} +- +-func scalarBaseMult(dst, scalar *[32]byte) { +- checkBasepoint() +- scalarMult(dst, scalar, &basePoint) +-} +- +-func x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) { +- var in [32]byte +- if l := len(scalar); l != 32 { +- return nil, errors.New("bad scalar length: " + strconv.Itoa(l) + ", expected 32") +- } +- if l := len(point); l != 32 { +- return nil, errors.New("bad point length: " + strconv.Itoa(l) + ", expected 32") +- } +- copy(in[:], scalar) +- if &point[0] == &Basepoint[0] { +- scalarBaseMult(dst, &in) +- } else { +- var base, zero [32]byte +- copy(base[:], point) +- scalarMult(dst, &in, &base) +- if subtle.ConstantTimeCompare(dst[:], zero[:]) == 1 { +- return nil, errors.New("bad input point: low order point") +- } +- } +- return dst[:], nil +-} +- +-func checkBasepoint() { +- if subtle.ConstantTimeCompare(Basepoint, []byte{ +- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- }) != 1 { +- panic("curve25519: global Basepoint value was modified") +- } +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519_go120.go b/vendor/golang.org/x/crypto/curve25519/curve25519_go120.go +deleted file mode 100644 +index 627df49727..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/curve25519_go120.go ++++ /dev/null +@@ -1,46 +0,0 @@ +-// Copyright 2022 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.20 +- +-package curve25519 +- +-import "crypto/ecdh" +- +-func x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) { +- curve := ecdh.X25519() +- pub, err := curve.NewPublicKey(point) +- if err != nil { +- return nil, err +- } +- priv, err := curve.NewPrivateKey(scalar) +- if err != nil { +- return nil, err +- } +- out, err := priv.ECDH(pub) +- if err != nil { +- return nil, err +- } +- copy(dst[:], out) +- return dst[:], nil +-} +- +-func scalarMult(dst, scalar, point *[32]byte) { +- if _, err := x25519(dst, scalar[:], point[:]); err != nil { +- // The only error condition for x25519 when the inputs are 32 bytes long +- // is if the output would have been the all-zero value. +- for i := range dst { +- dst[i] = 0 +- } +- } +-} +- +-func scalarBaseMult(dst, scalar *[32]byte) { +- curve := ecdh.X25519() +- priv, err := curve.NewPrivateKey(scalar[:]) +- if err != nil { +- panic("curve25519: internal error: scalarBaseMult was not 32 bytes") +- } +- copy(dst[:], priv.PublicKey().Bytes()) +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/README b/vendor/golang.org/x/crypto/curve25519/internal/field/README +deleted file mode 100644 +index e25bca7dc8..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/README ++++ /dev/null +@@ -1,7 +0,0 @@ +-This package is kept in sync with crypto/ed25519/internal/edwards25519/field in +-the standard library. +- +-If there are any changes in the standard library that need to be synced to this +-package, run sync.sh. It will not overwrite any local changes made since the +-previous sync, so it's ok to land changes in this package first, and then sync +-to the standard library later. +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe.go +deleted file mode 100644 +index ca841ad99e..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe.go ++++ /dev/null +@@ -1,416 +0,0 @@ +-// Copyright (c) 2017 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Package field implements fast arithmetic modulo 2^255-19. +-package field +- +-import ( +- "crypto/subtle" +- "encoding/binary" +- "math/bits" +-) +- +-// Element represents an element of the field GF(2^255-19). Note that this +-// is not a cryptographically secure group, and should only be used to interact +-// with edwards25519.Point coordinates. +-// +-// This type works similarly to math/big.Int, and all arguments and receivers +-// are allowed to alias. +-// +-// The zero value is a valid zero element. +-type Element struct { +- // An element t represents the integer +- // t.l0 + t.l1*2^51 + t.l2*2^102 + t.l3*2^153 + t.l4*2^204 +- // +- // Between operations, all limbs are expected to be lower than 2^52. +- l0 uint64 +- l1 uint64 +- l2 uint64 +- l3 uint64 +- l4 uint64 +-} +- +-const maskLow51Bits uint64 = (1 << 51) - 1 +- +-var feZero = &Element{0, 0, 0, 0, 0} +- +-// Zero sets v = 0, and returns v. +-func (v *Element) Zero() *Element { +- *v = *feZero +- return v +-} +- +-var feOne = &Element{1, 0, 0, 0, 0} +- +-// One sets v = 1, and returns v. +-func (v *Element) One() *Element { +- *v = *feOne +- return v +-} +- +-// reduce reduces v modulo 2^255 - 19 and returns it. +-func (v *Element) reduce() *Element { +- v.carryPropagate() +- +- // After the light reduction we now have a field element representation +- // v < 2^255 + 2^13 * 19, but need v < 2^255 - 19. +- +- // If v >= 2^255 - 19, then v + 19 >= 2^255, which would overflow 2^255 - 1, +- // generating a carry. That is, c will be 0 if v < 2^255 - 19, and 1 otherwise. +- c := (v.l0 + 19) >> 51 +- c = (v.l1 + c) >> 51 +- c = (v.l2 + c) >> 51 +- c = (v.l3 + c) >> 51 +- c = (v.l4 + c) >> 51 +- +- // If v < 2^255 - 19 and c = 0, this will be a no-op. Otherwise, it's +- // effectively applying the reduction identity to the carry. +- v.l0 += 19 * c +- +- v.l1 += v.l0 >> 51 +- v.l0 = v.l0 & maskLow51Bits +- v.l2 += v.l1 >> 51 +- v.l1 = v.l1 & maskLow51Bits +- v.l3 += v.l2 >> 51 +- v.l2 = v.l2 & maskLow51Bits +- v.l4 += v.l3 >> 51 +- v.l3 = v.l3 & maskLow51Bits +- // no additional carry +- v.l4 = v.l4 & maskLow51Bits +- +- return v +-} +- +-// Add sets v = a + b, and returns v. +-func (v *Element) Add(a, b *Element) *Element { +- v.l0 = a.l0 + b.l0 +- v.l1 = a.l1 + b.l1 +- v.l2 = a.l2 + b.l2 +- v.l3 = a.l3 + b.l3 +- v.l4 = a.l4 + b.l4 +- // Using the generic implementation here is actually faster than the +- // assembly. Probably because the body of this function is so simple that +- // the compiler can figure out better optimizations by inlining the carry +- // propagation. TODO +- return v.carryPropagateGeneric() +-} +- +-// Subtract sets v = a - b, and returns v. +-func (v *Element) Subtract(a, b *Element) *Element { +- // We first add 2 * p, to guarantee the subtraction won't underflow, and +- // then subtract b (which can be up to 2^255 + 2^13 * 19). +- v.l0 = (a.l0 + 0xFFFFFFFFFFFDA) - b.l0 +- v.l1 = (a.l1 + 0xFFFFFFFFFFFFE) - b.l1 +- v.l2 = (a.l2 + 0xFFFFFFFFFFFFE) - b.l2 +- v.l3 = (a.l3 + 0xFFFFFFFFFFFFE) - b.l3 +- v.l4 = (a.l4 + 0xFFFFFFFFFFFFE) - b.l4 +- return v.carryPropagate() +-} +- +-// Negate sets v = -a, and returns v. +-func (v *Element) Negate(a *Element) *Element { +- return v.Subtract(feZero, a) +-} +- +-// Invert sets v = 1/z mod p, and returns v. +-// +-// If z == 0, Invert returns v = 0. +-func (v *Element) Invert(z *Element) *Element { +- // Inversion is implemented as exponentiation with exponent p βˆ’ 2. It uses the +- // same sequence of 255 squarings and 11 multiplications as [Curve25519]. +- var z2, z9, z11, z2_5_0, z2_10_0, z2_20_0, z2_50_0, z2_100_0, t Element +- +- z2.Square(z) // 2 +- t.Square(&z2) // 4 +- t.Square(&t) // 8 +- z9.Multiply(&t, z) // 9 +- z11.Multiply(&z9, &z2) // 11 +- t.Square(&z11) // 22 +- z2_5_0.Multiply(&t, &z9) // 31 = 2^5 - 2^0 +- +- t.Square(&z2_5_0) // 2^6 - 2^1 +- for i := 0; i < 4; i++ { +- t.Square(&t) // 2^10 - 2^5 +- } +- z2_10_0.Multiply(&t, &z2_5_0) // 2^10 - 2^0 +- +- t.Square(&z2_10_0) // 2^11 - 2^1 +- for i := 0; i < 9; i++ { +- t.Square(&t) // 2^20 - 2^10 +- } +- z2_20_0.Multiply(&t, &z2_10_0) // 2^20 - 2^0 +- +- t.Square(&z2_20_0) // 2^21 - 2^1 +- for i := 0; i < 19; i++ { +- t.Square(&t) // 2^40 - 2^20 +- } +- t.Multiply(&t, &z2_20_0) // 2^40 - 2^0 +- +- t.Square(&t) // 2^41 - 2^1 +- for i := 0; i < 9; i++ { +- t.Square(&t) // 2^50 - 2^10 +- } +- z2_50_0.Multiply(&t, &z2_10_0) // 2^50 - 2^0 +- +- t.Square(&z2_50_0) // 2^51 - 2^1 +- for i := 0; i < 49; i++ { +- t.Square(&t) // 2^100 - 2^50 +- } +- z2_100_0.Multiply(&t, &z2_50_0) // 2^100 - 2^0 +- +- t.Square(&z2_100_0) // 2^101 - 2^1 +- for i := 0; i < 99; i++ { +- t.Square(&t) // 2^200 - 2^100 +- } +- t.Multiply(&t, &z2_100_0) // 2^200 - 2^0 +- +- t.Square(&t) // 2^201 - 2^1 +- for i := 0; i < 49; i++ { +- t.Square(&t) // 2^250 - 2^50 +- } +- t.Multiply(&t, &z2_50_0) // 2^250 - 2^0 +- +- t.Square(&t) // 2^251 - 2^1 +- t.Square(&t) // 2^252 - 2^2 +- t.Square(&t) // 2^253 - 2^3 +- t.Square(&t) // 2^254 - 2^4 +- t.Square(&t) // 2^255 - 2^5 +- +- return v.Multiply(&t, &z11) // 2^255 - 21 +-} +- +-// Set sets v = a, and returns v. +-func (v *Element) Set(a *Element) *Element { +- *v = *a +- return v +-} +- +-// SetBytes sets v to x, which must be a 32-byte little-endian encoding. +-// +-// Consistent with RFC 7748, the most significant bit (the high bit of the +-// last byte) is ignored, and non-canonical values (2^255-19 through 2^255-1) +-// are accepted. Note that this is laxer than specified by RFC 8032. +-func (v *Element) SetBytes(x []byte) *Element { +- if len(x) != 32 { +- panic("edwards25519: invalid field element input size") +- } +- +- // Bits 0:51 (bytes 0:8, bits 0:64, shift 0, mask 51). +- v.l0 = binary.LittleEndian.Uint64(x[0:8]) +- v.l0 &= maskLow51Bits +- // Bits 51:102 (bytes 6:14, bits 48:112, shift 3, mask 51). +- v.l1 = binary.LittleEndian.Uint64(x[6:14]) >> 3 +- v.l1 &= maskLow51Bits +- // Bits 102:153 (bytes 12:20, bits 96:160, shift 6, mask 51). +- v.l2 = binary.LittleEndian.Uint64(x[12:20]) >> 6 +- v.l2 &= maskLow51Bits +- // Bits 153:204 (bytes 19:27, bits 152:216, shift 1, mask 51). +- v.l3 = binary.LittleEndian.Uint64(x[19:27]) >> 1 +- v.l3 &= maskLow51Bits +- // Bits 204:251 (bytes 24:32, bits 192:256, shift 12, mask 51). +- // Note: not bytes 25:33, shift 4, to avoid overread. +- v.l4 = binary.LittleEndian.Uint64(x[24:32]) >> 12 +- v.l4 &= maskLow51Bits +- +- return v +-} +- +-// Bytes returns the canonical 32-byte little-endian encoding of v. +-func (v *Element) Bytes() []byte { +- // This function is outlined to make the allocations inline in the caller +- // rather than happen on the heap. +- var out [32]byte +- return v.bytes(&out) +-} +- +-func (v *Element) bytes(out *[32]byte) []byte { +- t := *v +- t.reduce() +- +- var buf [8]byte +- for i, l := range [5]uint64{t.l0, t.l1, t.l2, t.l3, t.l4} { +- bitsOffset := i * 51 +- binary.LittleEndian.PutUint64(buf[:], l<= len(out) { +- break +- } +- out[off] |= bb +- } +- } +- +- return out[:] +-} +- +-// Equal returns 1 if v and u are equal, and 0 otherwise. +-func (v *Element) Equal(u *Element) int { +- sa, sv := u.Bytes(), v.Bytes() +- return subtle.ConstantTimeCompare(sa, sv) +-} +- +-// mask64Bits returns 0xffffffff if cond is 1, and 0 otherwise. +-func mask64Bits(cond int) uint64 { return ^(uint64(cond) - 1) } +- +-// Select sets v to a if cond == 1, and to b if cond == 0. +-func (v *Element) Select(a, b *Element, cond int) *Element { +- m := mask64Bits(cond) +- v.l0 = (m & a.l0) | (^m & b.l0) +- v.l1 = (m & a.l1) | (^m & b.l1) +- v.l2 = (m & a.l2) | (^m & b.l2) +- v.l3 = (m & a.l3) | (^m & b.l3) +- v.l4 = (m & a.l4) | (^m & b.l4) +- return v +-} +- +-// Swap swaps v and u if cond == 1 or leaves them unchanged if cond == 0, and returns v. +-func (v *Element) Swap(u *Element, cond int) { +- m := mask64Bits(cond) +- t := m & (v.l0 ^ u.l0) +- v.l0 ^= t +- u.l0 ^= t +- t = m & (v.l1 ^ u.l1) +- v.l1 ^= t +- u.l1 ^= t +- t = m & (v.l2 ^ u.l2) +- v.l2 ^= t +- u.l2 ^= t +- t = m & (v.l3 ^ u.l3) +- v.l3 ^= t +- u.l3 ^= t +- t = m & (v.l4 ^ u.l4) +- v.l4 ^= t +- u.l4 ^= t +-} +- +-// IsNegative returns 1 if v is negative, and 0 otherwise. +-func (v *Element) IsNegative() int { +- return int(v.Bytes()[0] & 1) +-} +- +-// Absolute sets v to |u|, and returns v. +-func (v *Element) Absolute(u *Element) *Element { +- return v.Select(new(Element).Negate(u), u, u.IsNegative()) +-} +- +-// Multiply sets v = x * y, and returns v. +-func (v *Element) Multiply(x, y *Element) *Element { +- feMul(v, x, y) +- return v +-} +- +-// Square sets v = x * x, and returns v. +-func (v *Element) Square(x *Element) *Element { +- feSquare(v, x) +- return v +-} +- +-// Mult32 sets v = x * y, and returns v. +-func (v *Element) Mult32(x *Element, y uint32) *Element { +- x0lo, x0hi := mul51(x.l0, y) +- x1lo, x1hi := mul51(x.l1, y) +- x2lo, x2hi := mul51(x.l2, y) +- x3lo, x3hi := mul51(x.l3, y) +- x4lo, x4hi := mul51(x.l4, y) +- v.l0 = x0lo + 19*x4hi // carried over per the reduction identity +- v.l1 = x1lo + x0hi +- v.l2 = x2lo + x1hi +- v.l3 = x3lo + x2hi +- v.l4 = x4lo + x3hi +- // The hi portions are going to be only 32 bits, plus any previous excess, +- // so we can skip the carry propagation. +- return v +-} +- +-// mul51 returns lo + hi * 2⁡¹ = a * b. +-func mul51(a uint64, b uint32) (lo uint64, hi uint64) { +- mh, ml := bits.Mul64(a, uint64(b)) +- lo = ml & maskLow51Bits +- hi = (mh << 13) | (ml >> 51) +- return +-} +- +-// Pow22523 set v = x^((p-5)/8), and returns v. (p-5)/8 is 2^252-3. +-func (v *Element) Pow22523(x *Element) *Element { +- var t0, t1, t2 Element +- +- t0.Square(x) // x^2 +- t1.Square(&t0) // x^4 +- t1.Square(&t1) // x^8 +- t1.Multiply(x, &t1) // x^9 +- t0.Multiply(&t0, &t1) // x^11 +- t0.Square(&t0) // x^22 +- t0.Multiply(&t1, &t0) // x^31 +- t1.Square(&t0) // x^62 +- for i := 1; i < 5; i++ { // x^992 +- t1.Square(&t1) +- } +- t0.Multiply(&t1, &t0) // x^1023 -> 1023 = 2^10 - 1 +- t1.Square(&t0) // 2^11 - 2 +- for i := 1; i < 10; i++ { // 2^20 - 2^10 +- t1.Square(&t1) +- } +- t1.Multiply(&t1, &t0) // 2^20 - 1 +- t2.Square(&t1) // 2^21 - 2 +- for i := 1; i < 20; i++ { // 2^40 - 2^20 +- t2.Square(&t2) +- } +- t1.Multiply(&t2, &t1) // 2^40 - 1 +- t1.Square(&t1) // 2^41 - 2 +- for i := 1; i < 10; i++ { // 2^50 - 2^10 +- t1.Square(&t1) +- } +- t0.Multiply(&t1, &t0) // 2^50 - 1 +- t1.Square(&t0) // 2^51 - 2 +- for i := 1; i < 50; i++ { // 2^100 - 2^50 +- t1.Square(&t1) +- } +- t1.Multiply(&t1, &t0) // 2^100 - 1 +- t2.Square(&t1) // 2^101 - 2 +- for i := 1; i < 100; i++ { // 2^200 - 2^100 +- t2.Square(&t2) +- } +- t1.Multiply(&t2, &t1) // 2^200 - 1 +- t1.Square(&t1) // 2^201 - 2 +- for i := 1; i < 50; i++ { // 2^250 - 2^50 +- t1.Square(&t1) +- } +- t0.Multiply(&t1, &t0) // 2^250 - 1 +- t0.Square(&t0) // 2^251 - 2 +- t0.Square(&t0) // 2^252 - 4 +- return v.Multiply(&t0, x) // 2^252 - 3 -> x^(2^252-3) +-} +- +-// sqrtM1 is 2^((p-1)/4), which squared is equal to -1 by Euler's Criterion. +-var sqrtM1 = &Element{1718705420411056, 234908883556509, +- 2233514472574048, 2117202627021982, 765476049583133} +- +-// SqrtRatio sets r to the non-negative square root of the ratio of u and v. +-// +-// If u/v is square, SqrtRatio returns r and 1. If u/v is not square, SqrtRatio +-// sets r according to Section 4.3 of draft-irtf-cfrg-ristretto255-decaf448-00, +-// and returns r and 0. +-func (r *Element) SqrtRatio(u, v *Element) (rr *Element, wasSquare int) { +- var a, b Element +- +- // r = (u * v3) * (u * v7)^((p-5)/8) +- v2 := a.Square(v) +- uv3 := b.Multiply(u, b.Multiply(v2, v)) +- uv7 := a.Multiply(uv3, a.Square(v2)) +- r.Multiply(uv3, r.Pow22523(uv7)) +- +- check := a.Multiply(v, a.Square(r)) // check = v * r^2 +- +- uNeg := b.Negate(u) +- correctSignSqrt := check.Equal(u) +- flippedSignSqrt := check.Equal(uNeg) +- flippedSignSqrtI := check.Equal(uNeg.Multiply(uNeg, sqrtM1)) +- +- rPrime := b.Multiply(r, sqrtM1) // r_prime = SQRT_M1 * r +- // r = CT_SELECT(r_prime IF flipped_sign_sqrt | flipped_sign_sqrt_i ELSE r) +- r.Select(rPrime, r, flippedSignSqrt|flippedSignSqrtI) +- +- r.Absolute(r) // Choose the nonnegative square root. +- return r, correctSignSqrt | flippedSignSqrt +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go +deleted file mode 100644 +index 70c541692c..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go ++++ /dev/null +@@ -1,15 +0,0 @@ +-// Code generated by command: go run fe_amd64_asm.go -out ../fe_amd64.s -stubs ../fe_amd64.go -pkg field. DO NOT EDIT. +- +-//go:build amd64 && gc && !purego +- +-package field +- +-// feMul sets out = a * b. It works like feMulGeneric. +-// +-//go:noescape +-func feMul(out *Element, a *Element, b *Element) +- +-// feSquare sets out = a * a. It works like feSquareGeneric. +-// +-//go:noescape +-func feSquare(out *Element, a *Element) +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.s b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.s +deleted file mode 100644 +index 60817acc41..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.s ++++ /dev/null +@@ -1,378 +0,0 @@ +-// Code generated by command: go run fe_amd64_asm.go -out ../fe_amd64.s -stubs ../fe_amd64.go -pkg field. DO NOT EDIT. +- +-//go:build amd64 && gc && !purego +- +-#include "textflag.h" +- +-// func feMul(out *Element, a *Element, b *Element) +-TEXT Β·feMul(SB), NOSPLIT, $0-24 +- MOVQ a+8(FP), CX +- MOVQ b+16(FP), BX +- +- // r0 = a0Γ—b0 +- MOVQ (CX), AX +- MULQ (BX) +- MOVQ AX, DI +- MOVQ DX, SI +- +- // r0 += 19Γ—a1Γ—b4 +- MOVQ 8(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 32(BX) +- ADDQ AX, DI +- ADCQ DX, SI +- +- // r0 += 19Γ—a2Γ—b3 +- MOVQ 16(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 24(BX) +- ADDQ AX, DI +- ADCQ DX, SI +- +- // r0 += 19Γ—a3Γ—b2 +- MOVQ 24(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 16(BX) +- ADDQ AX, DI +- ADCQ DX, SI +- +- // r0 += 19Γ—a4Γ—b1 +- MOVQ 32(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 8(BX) +- ADDQ AX, DI +- ADCQ DX, SI +- +- // r1 = a0Γ—b1 +- MOVQ (CX), AX +- MULQ 8(BX) +- MOVQ AX, R9 +- MOVQ DX, R8 +- +- // r1 += a1Γ—b0 +- MOVQ 8(CX), AX +- MULQ (BX) +- ADDQ AX, R9 +- ADCQ DX, R8 +- +- // r1 += 19Γ—a2Γ—b4 +- MOVQ 16(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 32(BX) +- ADDQ AX, R9 +- ADCQ DX, R8 +- +- // r1 += 19Γ—a3Γ—b3 +- MOVQ 24(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 24(BX) +- ADDQ AX, R9 +- ADCQ DX, R8 +- +- // r1 += 19Γ—a4Γ—b2 +- MOVQ 32(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 16(BX) +- ADDQ AX, R9 +- ADCQ DX, R8 +- +- // r2 = a0Γ—b2 +- MOVQ (CX), AX +- MULQ 16(BX) +- MOVQ AX, R11 +- MOVQ DX, R10 +- +- // r2 += a1Γ—b1 +- MOVQ 8(CX), AX +- MULQ 8(BX) +- ADDQ AX, R11 +- ADCQ DX, R10 +- +- // r2 += a2Γ—b0 +- MOVQ 16(CX), AX +- MULQ (BX) +- ADDQ AX, R11 +- ADCQ DX, R10 +- +- // r2 += 19Γ—a3Γ—b4 +- MOVQ 24(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 32(BX) +- ADDQ AX, R11 +- ADCQ DX, R10 +- +- // r2 += 19Γ—a4Γ—b3 +- MOVQ 32(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 24(BX) +- ADDQ AX, R11 +- ADCQ DX, R10 +- +- // r3 = a0Γ—b3 +- MOVQ (CX), AX +- MULQ 24(BX) +- MOVQ AX, R13 +- MOVQ DX, R12 +- +- // r3 += a1Γ—b2 +- MOVQ 8(CX), AX +- MULQ 16(BX) +- ADDQ AX, R13 +- ADCQ DX, R12 +- +- // r3 += a2Γ—b1 +- MOVQ 16(CX), AX +- MULQ 8(BX) +- ADDQ AX, R13 +- ADCQ DX, R12 +- +- // r3 += a3Γ—b0 +- MOVQ 24(CX), AX +- MULQ (BX) +- ADDQ AX, R13 +- ADCQ DX, R12 +- +- // r3 += 19Γ—a4Γ—b4 +- MOVQ 32(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 32(BX) +- ADDQ AX, R13 +- ADCQ DX, R12 +- +- // r4 = a0Γ—b4 +- MOVQ (CX), AX +- MULQ 32(BX) +- MOVQ AX, R15 +- MOVQ DX, R14 +- +- // r4 += a1Γ—b3 +- MOVQ 8(CX), AX +- MULQ 24(BX) +- ADDQ AX, R15 +- ADCQ DX, R14 +- +- // r4 += a2Γ—b2 +- MOVQ 16(CX), AX +- MULQ 16(BX) +- ADDQ AX, R15 +- ADCQ DX, R14 +- +- // r4 += a3Γ—b1 +- MOVQ 24(CX), AX +- MULQ 8(BX) +- ADDQ AX, R15 +- ADCQ DX, R14 +- +- // r4 += a4Γ—b0 +- MOVQ 32(CX), AX +- MULQ (BX) +- ADDQ AX, R15 +- ADCQ DX, R14 +- +- // First reduction chain +- MOVQ $0x0007ffffffffffff, AX +- SHLQ $0x0d, DI, SI +- SHLQ $0x0d, R9, R8 +- SHLQ $0x0d, R11, R10 +- SHLQ $0x0d, R13, R12 +- SHLQ $0x0d, R15, R14 +- ANDQ AX, DI +- IMUL3Q $0x13, R14, R14 +- ADDQ R14, DI +- ANDQ AX, R9 +- ADDQ SI, R9 +- ANDQ AX, R11 +- ADDQ R8, R11 +- ANDQ AX, R13 +- ADDQ R10, R13 +- ANDQ AX, R15 +- ADDQ R12, R15 +- +- // Second reduction chain (carryPropagate) +- MOVQ DI, SI +- SHRQ $0x33, SI +- MOVQ R9, R8 +- SHRQ $0x33, R8 +- MOVQ R11, R10 +- SHRQ $0x33, R10 +- MOVQ R13, R12 +- SHRQ $0x33, R12 +- MOVQ R15, R14 +- SHRQ $0x33, R14 +- ANDQ AX, DI +- IMUL3Q $0x13, R14, R14 +- ADDQ R14, DI +- ANDQ AX, R9 +- ADDQ SI, R9 +- ANDQ AX, R11 +- ADDQ R8, R11 +- ANDQ AX, R13 +- ADDQ R10, R13 +- ANDQ AX, R15 +- ADDQ R12, R15 +- +- // Store output +- MOVQ out+0(FP), AX +- MOVQ DI, (AX) +- MOVQ R9, 8(AX) +- MOVQ R11, 16(AX) +- MOVQ R13, 24(AX) +- MOVQ R15, 32(AX) +- RET +- +-// func feSquare(out *Element, a *Element) +-TEXT Β·feSquare(SB), NOSPLIT, $0-16 +- MOVQ a+8(FP), CX +- +- // r0 = l0Γ—l0 +- MOVQ (CX), AX +- MULQ (CX) +- MOVQ AX, SI +- MOVQ DX, BX +- +- // r0 += 38Γ—l1Γ—l4 +- MOVQ 8(CX), AX +- IMUL3Q $0x26, AX, AX +- MULQ 32(CX) +- ADDQ AX, SI +- ADCQ DX, BX +- +- // r0 += 38Γ—l2Γ—l3 +- MOVQ 16(CX), AX +- IMUL3Q $0x26, AX, AX +- MULQ 24(CX) +- ADDQ AX, SI +- ADCQ DX, BX +- +- // r1 = 2Γ—l0Γ—l1 +- MOVQ (CX), AX +- SHLQ $0x01, AX +- MULQ 8(CX) +- MOVQ AX, R8 +- MOVQ DX, DI +- +- // r1 += 38Γ—l2Γ—l4 +- MOVQ 16(CX), AX +- IMUL3Q $0x26, AX, AX +- MULQ 32(CX) +- ADDQ AX, R8 +- ADCQ DX, DI +- +- // r1 += 19Γ—l3Γ—l3 +- MOVQ 24(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 24(CX) +- ADDQ AX, R8 +- ADCQ DX, DI +- +- // r2 = 2Γ—l0Γ—l2 +- MOVQ (CX), AX +- SHLQ $0x01, AX +- MULQ 16(CX) +- MOVQ AX, R10 +- MOVQ DX, R9 +- +- // r2 += l1Γ—l1 +- MOVQ 8(CX), AX +- MULQ 8(CX) +- ADDQ AX, R10 +- ADCQ DX, R9 +- +- // r2 += 38Γ—l3Γ—l4 +- MOVQ 24(CX), AX +- IMUL3Q $0x26, AX, AX +- MULQ 32(CX) +- ADDQ AX, R10 +- ADCQ DX, R9 +- +- // r3 = 2Γ—l0Γ—l3 +- MOVQ (CX), AX +- SHLQ $0x01, AX +- MULQ 24(CX) +- MOVQ AX, R12 +- MOVQ DX, R11 +- +- // r3 += 2Γ—l1Γ—l2 +- MOVQ 8(CX), AX +- IMUL3Q $0x02, AX, AX +- MULQ 16(CX) +- ADDQ AX, R12 +- ADCQ DX, R11 +- +- // r3 += 19Γ—l4Γ—l4 +- MOVQ 32(CX), AX +- IMUL3Q $0x13, AX, AX +- MULQ 32(CX) +- ADDQ AX, R12 +- ADCQ DX, R11 +- +- // r4 = 2Γ—l0Γ—l4 +- MOVQ (CX), AX +- SHLQ $0x01, AX +- MULQ 32(CX) +- MOVQ AX, R14 +- MOVQ DX, R13 +- +- // r4 += 2Γ—l1Γ—l3 +- MOVQ 8(CX), AX +- IMUL3Q $0x02, AX, AX +- MULQ 24(CX) +- ADDQ AX, R14 +- ADCQ DX, R13 +- +- // r4 += l2Γ—l2 +- MOVQ 16(CX), AX +- MULQ 16(CX) +- ADDQ AX, R14 +- ADCQ DX, R13 +- +- // First reduction chain +- MOVQ $0x0007ffffffffffff, AX +- SHLQ $0x0d, SI, BX +- SHLQ $0x0d, R8, DI +- SHLQ $0x0d, R10, R9 +- SHLQ $0x0d, R12, R11 +- SHLQ $0x0d, R14, R13 +- ANDQ AX, SI +- IMUL3Q $0x13, R13, R13 +- ADDQ R13, SI +- ANDQ AX, R8 +- ADDQ BX, R8 +- ANDQ AX, R10 +- ADDQ DI, R10 +- ANDQ AX, R12 +- ADDQ R9, R12 +- ANDQ AX, R14 +- ADDQ R11, R14 +- +- // Second reduction chain (carryPropagate) +- MOVQ SI, BX +- SHRQ $0x33, BX +- MOVQ R8, DI +- SHRQ $0x33, DI +- MOVQ R10, R9 +- SHRQ $0x33, R9 +- MOVQ R12, R11 +- SHRQ $0x33, R11 +- MOVQ R14, R13 +- SHRQ $0x33, R13 +- ANDQ AX, SI +- IMUL3Q $0x13, R13, R13 +- ADDQ R13, SI +- ANDQ AX, R8 +- ADDQ BX, R8 +- ANDQ AX, R10 +- ADDQ DI, R10 +- ANDQ AX, R12 +- ADDQ R9, R12 +- ANDQ AX, R14 +- ADDQ R11, R14 +- +- // Store output +- MOVQ out+0(FP), AX +- MOVQ SI, (AX) +- MOVQ R8, 8(AX) +- MOVQ R10, 16(AX) +- MOVQ R12, 24(AX) +- MOVQ R14, 32(AX) +- RET +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64_noasm.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64_noasm.go +deleted file mode 100644 +index 9da280d1d8..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64_noasm.go ++++ /dev/null +@@ -1,11 +0,0 @@ +-// Copyright (c) 2019 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !amd64 || !gc || purego +- +-package field +- +-func feMul(v, x, y *Element) { feMulGeneric(v, x, y) } +- +-func feSquare(v, x *Element) { feSquareGeneric(v, x) } +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.go +deleted file mode 100644 +index 075fe9b925..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.go ++++ /dev/null +@@ -1,15 +0,0 @@ +-// Copyright (c) 2020 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build arm64 && gc && !purego +- +-package field +- +-//go:noescape +-func carryPropagate(v *Element) +- +-func (v *Element) carryPropagate() *Element { +- carryPropagate(v) +- return v +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.s b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.s +deleted file mode 100644 +index 3126a43419..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64.s ++++ /dev/null +@@ -1,42 +0,0 @@ +-// Copyright (c) 2020 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build arm64 && gc && !purego +- +-#include "textflag.h" +- +-// carryPropagate works exactly like carryPropagateGeneric and uses the +-// same AND, ADD, and LSR+MADD instructions emitted by the compiler, but +-// avoids loading R0-R4 twice and uses LDP and STP. +-// +-// See https://golang.org/issues/43145 for the main compiler issue. +-// +-// func carryPropagate(v *Element) +-TEXT Β·carryPropagate(SB),NOFRAME|NOSPLIT,$0-8 +- MOVD v+0(FP), R20 +- +- LDP 0(R20), (R0, R1) +- LDP 16(R20), (R2, R3) +- MOVD 32(R20), R4 +- +- AND $0x7ffffffffffff, R0, R10 +- AND $0x7ffffffffffff, R1, R11 +- AND $0x7ffffffffffff, R2, R12 +- AND $0x7ffffffffffff, R3, R13 +- AND $0x7ffffffffffff, R4, R14 +- +- ADD R0>>51, R11, R11 +- ADD R1>>51, R12, R12 +- ADD R2>>51, R13, R13 +- ADD R3>>51, R14, R14 +- // R4>>51 * 19 + R10 -> R10 +- LSR $51, R4, R21 +- MOVD $19, R22 +- MADD R22, R10, R21, R10 +- +- STP (R10, R11), 0(R20) +- STP (R12, R13), 16(R20) +- MOVD R14, 32(R20) +- +- RET +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64_noasm.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64_noasm.go +deleted file mode 100644 +index fc029ac12d..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_arm64_noasm.go ++++ /dev/null +@@ -1,11 +0,0 @@ +-// Copyright (c) 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !arm64 || !gc || purego +- +-package field +- +-func (v *Element) carryPropagate() *Element { +- return v.carryPropagateGeneric() +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go +deleted file mode 100644 +index 2671217da5..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go ++++ /dev/null +@@ -1,264 +0,0 @@ +-// Copyright (c) 2017 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-package field +- +-import "math/bits" +- +-// uint128 holds a 128-bit number as two 64-bit limbs, for use with the +-// bits.Mul64 and bits.Add64 intrinsics. +-type uint128 struct { +- lo, hi uint64 +-} +- +-// mul64 returns a * b. +-func mul64(a, b uint64) uint128 { +- hi, lo := bits.Mul64(a, b) +- return uint128{lo, hi} +-} +- +-// addMul64 returns v + a * b. +-func addMul64(v uint128, a, b uint64) uint128 { +- hi, lo := bits.Mul64(a, b) +- lo, c := bits.Add64(lo, v.lo, 0) +- hi, _ = bits.Add64(hi, v.hi, c) +- return uint128{lo, hi} +-} +- +-// shiftRightBy51 returns a >> 51. a is assumed to be at most 115 bits. +-func shiftRightBy51(a uint128) uint64 { +- return (a.hi << (64 - 51)) | (a.lo >> 51) +-} +- +-func feMulGeneric(v, a, b *Element) { +- a0 := a.l0 +- a1 := a.l1 +- a2 := a.l2 +- a3 := a.l3 +- a4 := a.l4 +- +- b0 := b.l0 +- b1 := b.l1 +- b2 := b.l2 +- b3 := b.l3 +- b4 := b.l4 +- +- // Limb multiplication works like pen-and-paper columnar multiplication, but +- // with 51-bit limbs instead of digits. +- // +- // a4 a3 a2 a1 a0 x +- // b4 b3 b2 b1 b0 = +- // ------------------------ +- // a4b0 a3b0 a2b0 a1b0 a0b0 + +- // a4b1 a3b1 a2b1 a1b1 a0b1 + +- // a4b2 a3b2 a2b2 a1b2 a0b2 + +- // a4b3 a3b3 a2b3 a1b3 a0b3 + +- // a4b4 a3b4 a2b4 a1b4 a0b4 = +- // ---------------------------------------------- +- // r8 r7 r6 r5 r4 r3 r2 r1 r0 +- // +- // We can then use the reduction identity (a * 2²⁡⁡ + b = a * 19 + b) to +- // reduce the limbs that would overflow 255 bits. r5 * 2²⁡⁡ becomes 19 * r5, +- // r6 * 2³⁰⁢ becomes 19 * r6 * 2⁡¹, etc. +- // +- // Reduction can be carried out simultaneously to multiplication. For +- // example, we do not compute r5: whenever the result of a multiplication +- // belongs to r5, like a1b4, we multiply it by 19 and add the result to r0. +- // +- // a4b0 a3b0 a2b0 a1b0 a0b0 + +- // a3b1 a2b1 a1b1 a0b1 19Γ—a4b1 + +- // a2b2 a1b2 a0b2 19Γ—a4b2 19Γ—a3b2 + +- // a1b3 a0b3 19Γ—a4b3 19Γ—a3b3 19Γ—a2b3 + +- // a0b4 19Γ—a4b4 19Γ—a3b4 19Γ—a2b4 19Γ—a1b4 = +- // -------------------------------------- +- // r4 r3 r2 r1 r0 +- // +- // Finally we add up the columns into wide, overlapping limbs. +- +- a1_19 := a1 * 19 +- a2_19 := a2 * 19 +- a3_19 := a3 * 19 +- a4_19 := a4 * 19 +- +- // r0 = a0Γ—b0 + 19Γ—(a1Γ—b4 + a2Γ—b3 + a3Γ—b2 + a4Γ—b1) +- r0 := mul64(a0, b0) +- r0 = addMul64(r0, a1_19, b4) +- r0 = addMul64(r0, a2_19, b3) +- r0 = addMul64(r0, a3_19, b2) +- r0 = addMul64(r0, a4_19, b1) +- +- // r1 = a0Γ—b1 + a1Γ—b0 + 19Γ—(a2Γ—b4 + a3Γ—b3 + a4Γ—b2) +- r1 := mul64(a0, b1) +- r1 = addMul64(r1, a1, b0) +- r1 = addMul64(r1, a2_19, b4) +- r1 = addMul64(r1, a3_19, b3) +- r1 = addMul64(r1, a4_19, b2) +- +- // r2 = a0Γ—b2 + a1Γ—b1 + a2Γ—b0 + 19Γ—(a3Γ—b4 + a4Γ—b3) +- r2 := mul64(a0, b2) +- r2 = addMul64(r2, a1, b1) +- r2 = addMul64(r2, a2, b0) +- r2 = addMul64(r2, a3_19, b4) +- r2 = addMul64(r2, a4_19, b3) +- +- // r3 = a0Γ—b3 + a1Γ—b2 + a2Γ—b1 + a3Γ—b0 + 19Γ—a4Γ—b4 +- r3 := mul64(a0, b3) +- r3 = addMul64(r3, a1, b2) +- r3 = addMul64(r3, a2, b1) +- r3 = addMul64(r3, a3, b0) +- r3 = addMul64(r3, a4_19, b4) +- +- // r4 = a0Γ—b4 + a1Γ—b3 + a2Γ—b2 + a3Γ—b1 + a4Γ—b0 +- r4 := mul64(a0, b4) +- r4 = addMul64(r4, a1, b3) +- r4 = addMul64(r4, a2, b2) +- r4 = addMul64(r4, a3, b1) +- r4 = addMul64(r4, a4, b0) +- +- // After the multiplication, we need to reduce (carry) the five coefficients +- // to obtain a result with limbs that are at most slightly larger than 2⁡¹, +- // to respect the Element invariant. +- // +- // Overall, the reduction works the same as carryPropagate, except with +- // wider inputs: we take the carry for each coefficient by shifting it right +- // by 51, and add it to the limb above it. The top carry is multiplied by 19 +- // according to the reduction identity and added to the lowest limb. +- // +- // The largest coefficient (r0) will be at most 111 bits, which guarantees +- // that all carries are at most 111 - 51 = 60 bits, which fits in a uint64. +- // +- // r0 = a0Γ—b0 + 19Γ—(a1Γ—b4 + a2Γ—b3 + a3Γ—b2 + a4Γ—b1) +- // r0 < 2⁡²×2⁡² + 19Γ—(2⁡²×2⁡² + 2⁡²×2⁡² + 2⁡²×2⁡² + 2⁡²×2⁡²) +- // r0 < (1 + 19 Γ— 4) Γ— 2⁡² Γ— 2⁡² +- // r0 < 2⁷ Γ— 2⁡² Γ— 2⁡² +- // r0 < 2ΒΉΒΉΒΉ +- // +- // Moreover, the top coefficient (r4) is at most 107 bits, so c4 is at most +- // 56 bits, and c4 * 19 is at most 61 bits, which again fits in a uint64 and +- // allows us to easily apply the reduction identity. +- // +- // r4 = a0Γ—b4 + a1Γ—b3 + a2Γ—b2 + a3Γ—b1 + a4Γ—b0 +- // r4 < 5 Γ— 2⁡² Γ— 2⁡² +- // r4 < 2¹⁰⁷ +- // +- +- c0 := shiftRightBy51(r0) +- c1 := shiftRightBy51(r1) +- c2 := shiftRightBy51(r2) +- c3 := shiftRightBy51(r3) +- c4 := shiftRightBy51(r4) +- +- rr0 := r0.lo&maskLow51Bits + c4*19 +- rr1 := r1.lo&maskLow51Bits + c0 +- rr2 := r2.lo&maskLow51Bits + c1 +- rr3 := r3.lo&maskLow51Bits + c2 +- rr4 := r4.lo&maskLow51Bits + c3 +- +- // Now all coefficients fit into 64-bit registers but are still too large to +- // be passed around as a Element. We therefore do one last carry chain, +- // where the carries will be small enough to fit in the wiggle room above 2⁡¹. +- *v = Element{rr0, rr1, rr2, rr3, rr4} +- v.carryPropagate() +-} +- +-func feSquareGeneric(v, a *Element) { +- l0 := a.l0 +- l1 := a.l1 +- l2 := a.l2 +- l3 := a.l3 +- l4 := a.l4 +- +- // Squaring works precisely like multiplication above, but thanks to its +- // symmetry we get to group a few terms together. +- // +- // l4 l3 l2 l1 l0 x +- // l4 l3 l2 l1 l0 = +- // ------------------------ +- // l4l0 l3l0 l2l0 l1l0 l0l0 + +- // l4l1 l3l1 l2l1 l1l1 l0l1 + +- // l4l2 l3l2 l2l2 l1l2 l0l2 + +- // l4l3 l3l3 l2l3 l1l3 l0l3 + +- // l4l4 l3l4 l2l4 l1l4 l0l4 = +- // ---------------------------------------------- +- // r8 r7 r6 r5 r4 r3 r2 r1 r0 +- // +- // l4l0 l3l0 l2l0 l1l0 l0l0 + +- // l3l1 l2l1 l1l1 l0l1 19Γ—l4l1 + +- // l2l2 l1l2 l0l2 19Γ—l4l2 19Γ—l3l2 + +- // l1l3 l0l3 19Γ—l4l3 19Γ—l3l3 19Γ—l2l3 + +- // l0l4 19Γ—l4l4 19Γ—l3l4 19Γ—l2l4 19Γ—l1l4 = +- // -------------------------------------- +- // r4 r3 r2 r1 r0 +- // +- // With precomputed 2Γ—, 19Γ—, and 2Γ—19Γ— terms, we can compute each limb with +- // only three Mul64 and four Add64, instead of five and eight. +- +- l0_2 := l0 * 2 +- l1_2 := l1 * 2 +- +- l1_38 := l1 * 38 +- l2_38 := l2 * 38 +- l3_38 := l3 * 38 +- +- l3_19 := l3 * 19 +- l4_19 := l4 * 19 +- +- // r0 = l0Γ—l0 + 19Γ—(l1Γ—l4 + l2Γ—l3 + l3Γ—l2 + l4Γ—l1) = l0Γ—l0 + 19Γ—2Γ—(l1Γ—l4 + l2Γ—l3) +- r0 := mul64(l0, l0) +- r0 = addMul64(r0, l1_38, l4) +- r0 = addMul64(r0, l2_38, l3) +- +- // r1 = l0Γ—l1 + l1Γ—l0 + 19Γ—(l2Γ—l4 + l3Γ—l3 + l4Γ—l2) = 2Γ—l0Γ—l1 + 19Γ—2Γ—l2Γ—l4 + 19Γ—l3Γ—l3 +- r1 := mul64(l0_2, l1) +- r1 = addMul64(r1, l2_38, l4) +- r1 = addMul64(r1, l3_19, l3) +- +- // r2 = l0Γ—l2 + l1Γ—l1 + l2Γ—l0 + 19Γ—(l3Γ—l4 + l4Γ—l3) = 2Γ—l0Γ—l2 + l1Γ—l1 + 19Γ—2Γ—l3Γ—l4 +- r2 := mul64(l0_2, l2) +- r2 = addMul64(r2, l1, l1) +- r2 = addMul64(r2, l3_38, l4) +- +- // r3 = l0Γ—l3 + l1Γ—l2 + l2Γ—l1 + l3Γ—l0 + 19Γ—l4Γ—l4 = 2Γ—l0Γ—l3 + 2Γ—l1Γ—l2 + 19Γ—l4Γ—l4 +- r3 := mul64(l0_2, l3) +- r3 = addMul64(r3, l1_2, l2) +- r3 = addMul64(r3, l4_19, l4) +- +- // r4 = l0Γ—l4 + l1Γ—l3 + l2Γ—l2 + l3Γ—l1 + l4Γ—l0 = 2Γ—l0Γ—l4 + 2Γ—l1Γ—l3 + l2Γ—l2 +- r4 := mul64(l0_2, l4) +- r4 = addMul64(r4, l1_2, l3) +- r4 = addMul64(r4, l2, l2) +- +- c0 := shiftRightBy51(r0) +- c1 := shiftRightBy51(r1) +- c2 := shiftRightBy51(r2) +- c3 := shiftRightBy51(r3) +- c4 := shiftRightBy51(r4) +- +- rr0 := r0.lo&maskLow51Bits + c4*19 +- rr1 := r1.lo&maskLow51Bits + c0 +- rr2 := r2.lo&maskLow51Bits + c1 +- rr3 := r3.lo&maskLow51Bits + c2 +- rr4 := r4.lo&maskLow51Bits + c3 +- +- *v = Element{rr0, rr1, rr2, rr3, rr4} +- v.carryPropagate() +-} +- +-// carryPropagateGeneric brings the limbs below 52 bits by applying the reduction +-// identity (a * 2²⁡⁡ + b = a * 19 + b) to the l4 carry. TODO inline +-func (v *Element) carryPropagateGeneric() *Element { +- c0 := v.l0 >> 51 +- c1 := v.l1 >> 51 +- c2 := v.l2 >> 51 +- c3 := v.l3 >> 51 +- c4 := v.l4 >> 51 +- +- v.l0 = v.l0&maskLow51Bits + c4*19 +- v.l1 = v.l1&maskLow51Bits + c0 +- v.l2 = v.l2&maskLow51Bits + c1 +- v.l3 = v.l3&maskLow51Bits + c2 +- v.l4 = v.l4&maskLow51Bits + c3 +- +- return v +-} +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/sync.checkpoint b/vendor/golang.org/x/crypto/curve25519/internal/field/sync.checkpoint +deleted file mode 100644 +index e3685f95ca..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/sync.checkpoint ++++ /dev/null +@@ -1 +0,0 @@ +-b0c49ae9f59d233526f8934262c5bbbe14d4358d +diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/sync.sh b/vendor/golang.org/x/crypto/curve25519/internal/field/sync.sh +deleted file mode 100644 +index 1ba22a8b4c..0000000000 +--- a/vendor/golang.org/x/crypto/curve25519/internal/field/sync.sh ++++ /dev/null +@@ -1,19 +0,0 @@ +-#! /bin/bash +-set -euo pipefail +- +-cd "$(git rev-parse --show-toplevel)" +- +-STD_PATH=src/crypto/ed25519/internal/edwards25519/field +-LOCAL_PATH=curve25519/internal/field +-LAST_SYNC_REF=$(cat $LOCAL_PATH/sync.checkpoint) +- +-git fetch https://go.googlesource.com/go master +- +-if git diff --quiet $LAST_SYNC_REF:$STD_PATH FETCH_HEAD:$STD_PATH; then +- echo "No changes." +-else +- NEW_REF=$(git rev-parse FETCH_HEAD | tee $LOCAL_PATH/sync.checkpoint) +- echo "Applying changes from $LAST_SYNC_REF to $NEW_REF..." +- git diff $LAST_SYNC_REF:$STD_PATH FETCH_HEAD:$STD_PATH | \ +- git apply -3 --directory=$LOCAL_PATH +-fi +diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519.go b/vendor/golang.org/x/crypto/ed25519/ed25519.go +index a7828345fc..59b3a95a7d 100644 +--- a/vendor/golang.org/x/crypto/ed25519/ed25519.go ++++ b/vendor/golang.org/x/crypto/ed25519/ed25519.go +@@ -11,9 +11,7 @@ + // operations with the same key more efficient. This package refers to the RFC + // 8032 private key as the β€œseed”. + // +-// Beginning with Go 1.13, the functionality of this package was moved to the +-// standard library as crypto/ed25519. This package only acts as a compatibility +-// wrapper. ++// This package is a wrapper around the standard library crypto/ed25519 package. + package ed25519 + + import ( +diff --git a/vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.go b/vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.go +index 333da285b3..bd896bdc76 100644 +--- a/vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.go ++++ b/vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build (!amd64 && !ppc64le && !s390x) || !gc || purego ++//go:build (!amd64 && !ppc64le && !ppc64 && !s390x) || !gc || purego + + package poly1305 + +diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s b/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s +index e0d3c64756..133757384b 100644 +--- a/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s ++++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s +@@ -1,108 +1,93 @@ +-// Copyright 2012 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run sum_amd64_asm.go -out ../sum_amd64.s -pkg poly1305. DO NOT EDIT. + + //go:build gc && !purego + +-#include "textflag.h" +- +-#define POLY1305_ADD(msg, h0, h1, h2) \ +- ADDQ 0(msg), h0; \ +- ADCQ 8(msg), h1; \ +- ADCQ $1, h2; \ +- LEAQ 16(msg), msg +- +-#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \ +- MOVQ r0, AX; \ +- MULQ h0; \ +- MOVQ AX, t0; \ +- MOVQ DX, t1; \ +- MOVQ r0, AX; \ +- MULQ h1; \ +- ADDQ AX, t1; \ +- ADCQ $0, DX; \ +- MOVQ r0, t2; \ +- IMULQ h2, t2; \ +- ADDQ DX, t2; \ +- \ +- MOVQ r1, AX; \ +- MULQ h0; \ +- ADDQ AX, t1; \ +- ADCQ $0, DX; \ +- MOVQ DX, h0; \ +- MOVQ r1, t3; \ +- IMULQ h2, t3; \ +- MOVQ r1, AX; \ +- MULQ h1; \ +- ADDQ AX, t2; \ +- ADCQ DX, t3; \ +- ADDQ h0, t2; \ +- ADCQ $0, t3; \ +- \ +- MOVQ t0, h0; \ +- MOVQ t1, h1; \ +- MOVQ t2, h2; \ +- ANDQ $3, h2; \ +- MOVQ t2, t0; \ +- ANDQ $0xFFFFFFFFFFFFFFFC, t0; \ +- ADDQ t0, h0; \ +- ADCQ t3, h1; \ +- ADCQ $0, h2; \ +- SHRQ $2, t3, t2; \ +- SHRQ $2, t3; \ +- ADDQ t2, h0; \ +- ADCQ t3, h1; \ +- ADCQ $0, h2 +- +-// func update(state *[7]uint64, msg []byte) ++// func update(state *macState, msg []byte) + TEXT Β·update(SB), $0-32 + MOVQ state+0(FP), DI + MOVQ msg_base+8(FP), SI + MOVQ msg_len+16(FP), R15 +- +- MOVQ 0(DI), R8 // h0 +- MOVQ 8(DI), R9 // h1 +- MOVQ 16(DI), R10 // h2 +- MOVQ 24(DI), R11 // r0 +- MOVQ 32(DI), R12 // r1 +- +- CMPQ R15, $16 ++ MOVQ (DI), R8 ++ MOVQ 8(DI), R9 ++ MOVQ 16(DI), R10 ++ MOVQ 24(DI), R11 ++ MOVQ 32(DI), R12 ++ CMPQ R15, $0x10 + JB bytes_between_0_and_15 + + loop: +- POLY1305_ADD(SI, R8, R9, R10) ++ ADDQ (SI), R8 ++ ADCQ 8(SI), R9 ++ ADCQ $0x01, R10 ++ LEAQ 16(SI), SI + + multiply: +- POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14) +- SUBQ $16, R15 +- CMPQ R15, $16 +- JAE loop ++ MOVQ R11, AX ++ MULQ R8 ++ MOVQ AX, BX ++ MOVQ DX, CX ++ MOVQ R11, AX ++ MULQ R9 ++ ADDQ AX, CX ++ ADCQ $0x00, DX ++ MOVQ R11, R13 ++ IMULQ R10, R13 ++ ADDQ DX, R13 ++ MOVQ R12, AX ++ MULQ R8 ++ ADDQ AX, CX ++ ADCQ $0x00, DX ++ MOVQ DX, R8 ++ MOVQ R12, R14 ++ IMULQ R10, R14 ++ MOVQ R12, AX ++ MULQ R9 ++ ADDQ AX, R13 ++ ADCQ DX, R14 ++ ADDQ R8, R13 ++ ADCQ $0x00, R14 ++ MOVQ BX, R8 ++ MOVQ CX, R9 ++ MOVQ R13, R10 ++ ANDQ $0x03, R10 ++ MOVQ R13, BX ++ ANDQ $-4, BX ++ ADDQ BX, R8 ++ ADCQ R14, R9 ++ ADCQ $0x00, R10 ++ SHRQ $0x02, R14, R13 ++ SHRQ $0x02, R14 ++ ADDQ R13, R8 ++ ADCQ R14, R9 ++ ADCQ $0x00, R10 ++ SUBQ $0x10, R15 ++ CMPQ R15, $0x10 ++ JAE loop + + bytes_between_0_and_15: + TESTQ R15, R15 + JZ done +- MOVQ $1, BX ++ MOVQ $0x00000001, BX + XORQ CX, CX + XORQ R13, R13 + ADDQ R15, SI + + flush_buffer: +- SHLQ $8, BX, CX +- SHLQ $8, BX ++ SHLQ $0x08, BX, CX ++ SHLQ $0x08, BX + MOVB -1(SI), R13 + XORQ R13, BX + DECQ SI + DECQ R15 + JNZ flush_buffer +- + ADDQ BX, R8 + ADCQ CX, R9 +- ADCQ $0, R10 +- MOVQ $16, R15 ++ ADCQ $0x00, R10 ++ MOVQ $0x00000010, R15 + JMP multiply + + done: +- MOVQ R8, 0(DI) ++ MOVQ R8, (DI) + MOVQ R9, 8(DI) + MOVQ R10, 16(DI) + RET +diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.go b/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.go +similarity index 95% +rename from vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.go +rename to vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.go +index 4aec4874b5..1a1679aaad 100644 +--- a/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.go ++++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build gc && !purego ++//go:build gc && !purego && (ppc64 || ppc64le) + + package poly1305 + +diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.s b/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.s +similarity index 85% +rename from vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.s +rename to vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.s +index d2ca5deeb9..6899a1dabc 100644 +--- a/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64le.s ++++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.s +@@ -2,15 +2,25 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build gc && !purego ++//go:build gc && !purego && (ppc64 || ppc64le) + + #include "textflag.h" + + // This was ported from the amd64 implementation. + ++#ifdef GOARCH_ppc64le ++#define LE_MOVD MOVD ++#define LE_MOVWZ MOVWZ ++#define LE_MOVHZ MOVHZ ++#else ++#define LE_MOVD MOVDBR ++#define LE_MOVWZ MOVWBR ++#define LE_MOVHZ MOVHBR ++#endif ++ + #define POLY1305_ADD(msg, h0, h1, h2, t0, t1, t2) \ +- MOVD (msg), t0; \ +- MOVD 8(msg), t1; \ ++ LE_MOVD (msg)( R0), t0; \ ++ LE_MOVD (msg)(R24), t1; \ + MOVD $1, t2; \ + ADDC t0, h0, h0; \ + ADDE t1, h1, h1; \ +@@ -19,15 +29,14 @@ + + #define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3, t4, t5) \ + MULLD r0, h0, t0; \ +- MULLD r0, h1, t4; \ + MULHDU r0, h0, t1; \ ++ MULLD r0, h1, t4; \ + MULHDU r0, h1, t5; \ + ADDC t4, t1, t1; \ + MULLD r0, h2, t2; \ +- ADDZE t5; \ + MULHDU r1, h0, t4; \ + MULLD r1, h0, h0; \ +- ADD t5, t2, t2; \ ++ ADDE t5, t2, t2; \ + ADDC h0, t1, t1; \ + MULLD h2, r1, t3; \ + ADDZE t4, h0; \ +@@ -37,13 +46,11 @@ + ADDE t5, t3, t3; \ + ADDC h0, t2, t2; \ + MOVD $-4, t4; \ +- MOVD t0, h0; \ +- MOVD t1, h1; \ + ADDZE t3; \ +- ANDCC $3, t2, h2; \ +- AND t2, t4, t0; \ ++ RLDICL $0, t2, $62, h2; \ ++ AND t2, t4, h0; \ + ADDC t0, h0, h0; \ +- ADDE t3, h1, h1; \ ++ ADDE t3, t1, h1; \ + SLD $62, t3, t4; \ + SRD $2, t2; \ + ADDZE h2; \ +@@ -53,10 +60,6 @@ + ADDE t3, h1, h1; \ + ADDZE h2 + +-DATA Β·poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF +-DATA Β·poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC +-GLOBL Β·poly1305Mask<>(SB), RODATA, $16 +- + // func update(state *[7]uint64, msg []byte) + TEXT Β·update(SB), $0-32 + MOVD state+0(FP), R3 +@@ -69,12 +72,15 @@ TEXT Β·update(SB), $0-32 + MOVD 24(R3), R11 // r0 + MOVD 32(R3), R12 // r1 + ++ MOVD $8, R24 ++ + CMP R5, $16 + BLT bytes_between_0_and_15 + + loop: + POLY1305_ADD(R4, R8, R9, R10, R20, R21, R22) + ++ PCALIGN $16 + multiply: + POLY1305_MUL(R8, R9, R10, R11, R12, R16, R17, R18, R14, R20, R21) + ADD $-16, R5 +@@ -96,7 +102,7 @@ flush_buffer: + + // Greater than 8 -- load the rightmost remaining bytes in msg + // and put into R17 (h1) +- MOVD (R4)(R21), R17 ++ LE_MOVD (R4)(R21), R17 + MOVD $16, R22 + + // Find the offset to those bytes +@@ -120,7 +126,7 @@ just1: + BLT less8 + + // Exactly 8 +- MOVD (R4), R16 ++ LE_MOVD (R4), R16 + + CMP R17, $0 + +@@ -135,7 +141,7 @@ less8: + MOVD $0, R22 // shift count + CMP R5, $4 + BLT less4 +- MOVWZ (R4), R16 ++ LE_MOVWZ (R4), R16 + ADD $4, R4 + ADD $-4, R5 + MOVD $32, R22 +@@ -143,7 +149,7 @@ less8: + less4: + CMP R5, $2 + BLT less2 +- MOVHZ (R4), R21 ++ LE_MOVHZ (R4), R21 + SLD R22, R21, R21 + OR R16, R21, R16 + ADD $16, R22 +diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go +index f3c3242a04..1fe600ad03 100644 +--- a/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go ++++ b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go +@@ -32,7 +32,7 @@ chunk size. + + This package is interoperable with NaCl: https://nacl.cr.yp.to/secretbox.html. + */ +-package secretbox // import "golang.org/x/crypto/nacl/secretbox" ++package secretbox + + import ( + "golang.org/x/crypto/internal/alias" +diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp.go b/vendor/golang.org/x/crypto/ocsp/ocsp.go +index 4269ed113b..e6c645e7ce 100644 +--- a/vendor/golang.org/x/crypto/ocsp/ocsp.go ++++ b/vendor/golang.org/x/crypto/ocsp/ocsp.go +@@ -5,7 +5,7 @@ + // Package ocsp parses OCSP responses as specified in RFC 2560. OCSP responses + // are signed messages attesting to the validity of a certificate for a small + // period of time. This is used to manage revocation for X.509 certificates. +-package ocsp // import "golang.org/x/crypto/ocsp" ++package ocsp + + import ( + "crypto" +@@ -279,21 +279,22 @@ func getOIDFromHashAlgorithm(target crypto.Hash) asn1.ObjectIdentifier { + + // This is the exposed reflection of the internal OCSP structures. + +-// The status values that can be expressed in OCSP. See RFC 6960. ++// The status values that can be expressed in OCSP. See RFC 6960. ++// These are used for the Response.Status field. + const ( + // Good means that the certificate is valid. +- Good = iota ++ Good = 0 + // Revoked means that the certificate has been deliberately revoked. +- Revoked ++ Revoked = 1 + // Unknown means that the OCSP responder doesn't know about the certificate. +- Unknown ++ Unknown = 2 + // ServerFailed is unused and was never used (see + // https://go-review.googlesource.com/#/c/18944). ParseResponse will + // return a ResponseError when an error response is parsed. +- ServerFailed ++ ServerFailed = 3 + ) + +-// The enumerated reasons for revoking a certificate. See RFC 5280. ++// The enumerated reasons for revoking a certificate. See RFC 5280. + const ( + Unspecified = 0 + KeyCompromise = 1 +diff --git a/vendor/golang.org/x/crypto/openpgp/armor/armor.go b/vendor/golang.org/x/crypto/openpgp/armor/armor.go +index 8907183ec0..e664d127cb 100644 +--- a/vendor/golang.org/x/crypto/openpgp/armor/armor.go ++++ b/vendor/golang.org/x/crypto/openpgp/armor/armor.go +@@ -10,14 +10,15 @@ + // for their specific task. If you are required to interoperate with OpenPGP + // systems and need a maintained package, consider a community fork. + // See https://golang.org/issue/44226. +-package armor // import "golang.org/x/crypto/openpgp/armor" ++package armor + + import ( + "bufio" + "bytes" + "encoding/base64" +- "golang.org/x/crypto/openpgp/errors" + "io" ++ ++ "golang.org/x/crypto/openpgp/errors" + ) + + // A Block represents an OpenPGP armored structure. +diff --git a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go +index 743b35a120..f922bdbcaa 100644 +--- a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go ++++ b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go +@@ -16,7 +16,7 @@ + // https://golang.org/issue/44226), and ElGamal in the OpenPGP ecosystem has + // compatibility and security issues (see https://eprint.iacr.org/2021/923). + // Moreover, this package doesn't protect against side-channel attacks. +-package elgamal // import "golang.org/x/crypto/openpgp/elgamal" ++package elgamal + + import ( + "crypto/rand" +diff --git a/vendor/golang.org/x/crypto/openpgp/errors/errors.go b/vendor/golang.org/x/crypto/openpgp/errors/errors.go +index 1d7a0ea05a..a328749471 100644 +--- a/vendor/golang.org/x/crypto/openpgp/errors/errors.go ++++ b/vendor/golang.org/x/crypto/openpgp/errors/errors.go +@@ -9,7 +9,7 @@ + // for their specific task. If you are required to interoperate with OpenPGP + // systems and need a maintained package, consider a community fork. + // See https://golang.org/issue/44226. +-package errors // import "golang.org/x/crypto/openpgp/errors" ++package errors + + import ( + "strconv" +diff --git a/vendor/golang.org/x/crypto/openpgp/packet/packet.go b/vendor/golang.org/x/crypto/openpgp/packet/packet.go +index 0a19794a8e..a84a1a214e 100644 +--- a/vendor/golang.org/x/crypto/openpgp/packet/packet.go ++++ b/vendor/golang.org/x/crypto/openpgp/packet/packet.go +@@ -10,7 +10,7 @@ + // for their specific task. If you are required to interoperate with OpenPGP + // systems and need a maintained package, consider a community fork. + // See https://golang.org/issue/44226. +-package packet // import "golang.org/x/crypto/openpgp/packet" ++package packet + + import ( + "bufio" +diff --git a/vendor/golang.org/x/crypto/openpgp/read.go b/vendor/golang.org/x/crypto/openpgp/read.go +index 48a8931468..cff3db9196 100644 +--- a/vendor/golang.org/x/crypto/openpgp/read.go ++++ b/vendor/golang.org/x/crypto/openpgp/read.go +@@ -9,7 +9,7 @@ + // for their specific task. If you are required to interoperate with OpenPGP + // systems and need a maintained package, consider a community fork. + // See https://golang.org/issue/44226. +-package openpgp // import "golang.org/x/crypto/openpgp" ++package openpgp + + import ( + "crypto" +diff --git a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go +index f53244a1c7..fa1a919079 100644 +--- a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go ++++ b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go +@@ -10,7 +10,7 @@ + // for their specific task. If you are required to interoperate with OpenPGP + // systems and need a maintained package, consider a community fork. + // See https://golang.org/issue/44226. +-package s2k // import "golang.org/x/crypto/openpgp/s2k" ++package s2k + + import ( + "crypto" +diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go +index 904b57e01d..28cd99c7f3 100644 +--- a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go ++++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go +@@ -16,7 +16,7 @@ Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To + choose, you can pass the `New` functions from the different SHA packages to + pbkdf2.Key. + */ +-package pbkdf2 // import "golang.org/x/crypto/pbkdf2" ++package pbkdf2 + + import ( + "crypto/hmac" +diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go +index cf3eeb158a..b6d33ef074 100644 +--- a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go ++++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go +@@ -7,7 +7,7 @@ + // Deprecated: RIPEMD-160 is a legacy hash and should not be used for new + // applications. Also, this package does not and will not provide an optimized + // implementation. Instead, use a modern hash like SHA-256 (from crypto/sha256). +-package ripemd160 // import "golang.org/x/crypto/ripemd160" ++package ripemd160 + + // RIPEMD-160 is designed by Hans Dobbertin, Antoon Bosselaers, and Bart + // Preneel with specifications available at: +diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go b/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go +index 3fd05b2751..3685b34458 100644 +--- a/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go ++++ b/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go +@@ -3,7 +3,7 @@ + // license that can be found in the LICENSE file. + + // Package salsa provides low-level access to functions in the Salsa family. +-package salsa // import "golang.org/x/crypto/salsa20/salsa" ++package salsa + + import "math/bits" + +diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s +index fcce0234b6..3883e0ec22 100644 +--- a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s ++++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s +@@ -1,880 +1,880 @@ +-// Copyright 2012 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run salsa20_amd64_asm.go -out ../salsa20_amd64.s -pkg salsa. DO NOT EDIT. + + //go:build amd64 && !purego && gc + +-// This code was translated into a form compatible with 6a from the public +-// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html ++// func salsa2020XORKeyStream(out *byte, in *byte, n uint64, nonce *byte, key *byte) ++// Requires: SSE2 ++TEXT Β·salsa2020XORKeyStream(SB), $456-40 ++ // This needs up to 64 bytes at 360(R12); hence the non-obvious frame size. ++ MOVQ out+0(FP), DI ++ MOVQ in+8(FP), SI ++ MOVQ n+16(FP), DX ++ MOVQ nonce+24(FP), CX ++ MOVQ key+32(FP), R8 ++ MOVQ SP, R12 ++ ADDQ $0x1f, R12 ++ ANDQ $-32, R12 ++ MOVQ DX, R9 ++ MOVQ CX, DX ++ MOVQ R8, R10 ++ CMPQ R9, $0x00 ++ JBE DONE ++ MOVL 20(R10), CX ++ MOVL (R10), R8 ++ MOVL (DX), AX ++ MOVL 16(R10), R11 ++ MOVL CX, (R12) ++ MOVL R8, 4(R12) ++ MOVL AX, 8(R12) ++ MOVL R11, 12(R12) ++ MOVL 8(DX), CX ++ MOVL 24(R10), R8 ++ MOVL 4(R10), AX ++ MOVL 4(DX), R11 ++ MOVL CX, 16(R12) ++ MOVL R8, 20(R12) ++ MOVL AX, 24(R12) ++ MOVL R11, 28(R12) ++ MOVL 12(DX), CX ++ MOVL 12(R10), DX ++ MOVL 28(R10), R8 ++ MOVL 8(R10), AX ++ MOVL DX, 32(R12) ++ MOVL CX, 36(R12) ++ MOVL R8, 40(R12) ++ MOVL AX, 44(R12) ++ MOVQ $0x61707865, DX ++ MOVQ $0x3320646e, CX ++ MOVQ $0x79622d32, R8 ++ MOVQ $0x6b206574, AX ++ MOVL DX, 48(R12) ++ MOVL CX, 52(R12) ++ MOVL R8, 56(R12) ++ MOVL AX, 60(R12) ++ CMPQ R9, $0x00000100 ++ JB BYTESBETWEEN1AND255 ++ MOVOA 48(R12), X0 ++ PSHUFL $0x55, X0, X1 ++ PSHUFL $0xaa, X0, X2 ++ PSHUFL $0xff, X0, X3 ++ PSHUFL $0x00, X0, X0 ++ MOVOA X1, 64(R12) ++ MOVOA X2, 80(R12) ++ MOVOA X3, 96(R12) ++ MOVOA X0, 112(R12) ++ MOVOA (R12), X0 ++ PSHUFL $0xaa, X0, X1 ++ PSHUFL $0xff, X0, X2 ++ PSHUFL $0x00, X0, X3 ++ PSHUFL $0x55, X0, X0 ++ MOVOA X1, 128(R12) ++ MOVOA X2, 144(R12) ++ MOVOA X3, 160(R12) ++ MOVOA X0, 176(R12) ++ MOVOA 16(R12), X0 ++ PSHUFL $0xff, X0, X1 ++ PSHUFL $0x55, X0, X2 ++ PSHUFL $0xaa, X0, X0 ++ MOVOA X1, 192(R12) ++ MOVOA X2, 208(R12) ++ MOVOA X0, 224(R12) ++ MOVOA 32(R12), X0 ++ PSHUFL $0x00, X0, X1 ++ PSHUFL $0xaa, X0, X2 ++ PSHUFL $0xff, X0, X0 ++ MOVOA X1, 240(R12) ++ MOVOA X2, 256(R12) ++ MOVOA X0, 272(R12) + +-// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) +-// This needs up to 64 bytes at 360(R12); hence the non-obvious frame size. +-TEXT Β·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment +- MOVQ out+0(FP),DI +- MOVQ in+8(FP),SI +- MOVQ n+16(FP),DX +- MOVQ nonce+24(FP),CX +- MOVQ key+32(FP),R8 ++BYTESATLEAST256: ++ MOVL 16(R12), DX ++ MOVL 36(R12), CX ++ MOVL DX, 288(R12) ++ MOVL CX, 304(R12) ++ SHLQ $0x20, CX ++ ADDQ CX, DX ++ ADDQ $0x01, DX ++ MOVQ DX, CX ++ SHRQ $0x20, CX ++ MOVL DX, 292(R12) ++ MOVL CX, 308(R12) ++ ADDQ $0x01, DX ++ MOVQ DX, CX ++ SHRQ $0x20, CX ++ MOVL DX, 296(R12) ++ MOVL CX, 312(R12) ++ ADDQ $0x01, DX ++ MOVQ DX, CX ++ SHRQ $0x20, CX ++ MOVL DX, 300(R12) ++ MOVL CX, 316(R12) ++ ADDQ $0x01, DX ++ MOVQ DX, CX ++ SHRQ $0x20, CX ++ MOVL DX, 16(R12) ++ MOVL CX, 36(R12) ++ MOVQ R9, 352(R12) ++ MOVQ $0x00000014, DX ++ MOVOA 64(R12), X0 ++ MOVOA 80(R12), X1 ++ MOVOA 96(R12), X2 ++ MOVOA 256(R12), X3 ++ MOVOA 272(R12), X4 ++ MOVOA 128(R12), X5 ++ MOVOA 144(R12), X6 ++ MOVOA 176(R12), X7 ++ MOVOA 192(R12), X8 ++ MOVOA 208(R12), X9 ++ MOVOA 224(R12), X10 ++ MOVOA 304(R12), X11 ++ MOVOA 112(R12), X12 ++ MOVOA 160(R12), X13 ++ MOVOA 240(R12), X14 ++ MOVOA 288(R12), X15 + +- MOVQ SP,R12 +- ADDQ $31, R12 +- ANDQ $~31, R12 ++MAINLOOP1: ++ MOVOA X1, 320(R12) ++ MOVOA X2, 336(R12) ++ MOVOA X13, X1 ++ PADDL X12, X1 ++ MOVOA X1, X2 ++ PSLLL $0x07, X1 ++ PXOR X1, X14 ++ PSRLL $0x19, X2 ++ PXOR X2, X14 ++ MOVOA X7, X1 ++ PADDL X0, X1 ++ MOVOA X1, X2 ++ PSLLL $0x07, X1 ++ PXOR X1, X11 ++ PSRLL $0x19, X2 ++ PXOR X2, X11 ++ MOVOA X12, X1 ++ PADDL X14, X1 ++ MOVOA X1, X2 ++ PSLLL $0x09, X1 ++ PXOR X1, X15 ++ PSRLL $0x17, X2 ++ PXOR X2, X15 ++ MOVOA X0, X1 ++ PADDL X11, X1 ++ MOVOA X1, X2 ++ PSLLL $0x09, X1 ++ PXOR X1, X9 ++ PSRLL $0x17, X2 ++ PXOR X2, X9 ++ MOVOA X14, X1 ++ PADDL X15, X1 ++ MOVOA X1, X2 ++ PSLLL $0x0d, X1 ++ PXOR X1, X13 ++ PSRLL $0x13, X2 ++ PXOR X2, X13 ++ MOVOA X11, X1 ++ PADDL X9, X1 ++ MOVOA X1, X2 ++ PSLLL $0x0d, X1 ++ PXOR X1, X7 ++ PSRLL $0x13, X2 ++ PXOR X2, X7 ++ MOVOA X15, X1 ++ PADDL X13, X1 ++ MOVOA X1, X2 ++ PSLLL $0x12, X1 ++ PXOR X1, X12 ++ PSRLL $0x0e, X2 ++ PXOR X2, X12 ++ MOVOA 320(R12), X1 ++ MOVOA X12, 320(R12) ++ MOVOA X9, X2 ++ PADDL X7, X2 ++ MOVOA X2, X12 ++ PSLLL $0x12, X2 ++ PXOR X2, X0 ++ PSRLL $0x0e, X12 ++ PXOR X12, X0 ++ MOVOA X5, X2 ++ PADDL X1, X2 ++ MOVOA X2, X12 ++ PSLLL $0x07, X2 ++ PXOR X2, X3 ++ PSRLL $0x19, X12 ++ PXOR X12, X3 ++ MOVOA 336(R12), X2 ++ MOVOA X0, 336(R12) ++ MOVOA X6, X0 ++ PADDL X2, X0 ++ MOVOA X0, X12 ++ PSLLL $0x07, X0 ++ PXOR X0, X4 ++ PSRLL $0x19, X12 ++ PXOR X12, X4 ++ MOVOA X1, X0 ++ PADDL X3, X0 ++ MOVOA X0, X12 ++ PSLLL $0x09, X0 ++ PXOR X0, X10 ++ PSRLL $0x17, X12 ++ PXOR X12, X10 ++ MOVOA X2, X0 ++ PADDL X4, X0 ++ MOVOA X0, X12 ++ PSLLL $0x09, X0 ++ PXOR X0, X8 ++ PSRLL $0x17, X12 ++ PXOR X12, X8 ++ MOVOA X3, X0 ++ PADDL X10, X0 ++ MOVOA X0, X12 ++ PSLLL $0x0d, X0 ++ PXOR X0, X5 ++ PSRLL $0x13, X12 ++ PXOR X12, X5 ++ MOVOA X4, X0 ++ PADDL X8, X0 ++ MOVOA X0, X12 ++ PSLLL $0x0d, X0 ++ PXOR X0, X6 ++ PSRLL $0x13, X12 ++ PXOR X12, X6 ++ MOVOA X10, X0 ++ PADDL X5, X0 ++ MOVOA X0, X12 ++ PSLLL $0x12, X0 ++ PXOR X0, X1 ++ PSRLL $0x0e, X12 ++ PXOR X12, X1 ++ MOVOA 320(R12), X0 ++ MOVOA X1, 320(R12) ++ MOVOA X4, X1 ++ PADDL X0, X1 ++ MOVOA X1, X12 ++ PSLLL $0x07, X1 ++ PXOR X1, X7 ++ PSRLL $0x19, X12 ++ PXOR X12, X7 ++ MOVOA X8, X1 ++ PADDL X6, X1 ++ MOVOA X1, X12 ++ PSLLL $0x12, X1 ++ PXOR X1, X2 ++ PSRLL $0x0e, X12 ++ PXOR X12, X2 ++ MOVOA 336(R12), X12 ++ MOVOA X2, 336(R12) ++ MOVOA X14, X1 ++ PADDL X12, X1 ++ MOVOA X1, X2 ++ PSLLL $0x07, X1 ++ PXOR X1, X5 ++ PSRLL $0x19, X2 ++ PXOR X2, X5 ++ MOVOA X0, X1 ++ PADDL X7, X1 ++ MOVOA X1, X2 ++ PSLLL $0x09, X1 ++ PXOR X1, X10 ++ PSRLL $0x17, X2 ++ PXOR X2, X10 ++ MOVOA X12, X1 ++ PADDL X5, X1 ++ MOVOA X1, X2 ++ PSLLL $0x09, X1 ++ PXOR X1, X8 ++ PSRLL $0x17, X2 ++ PXOR X2, X8 ++ MOVOA X7, X1 ++ PADDL X10, X1 ++ MOVOA X1, X2 ++ PSLLL $0x0d, X1 ++ PXOR X1, X4 ++ PSRLL $0x13, X2 ++ PXOR X2, X4 ++ MOVOA X5, X1 ++ PADDL X8, X1 ++ MOVOA X1, X2 ++ PSLLL $0x0d, X1 ++ PXOR X1, X14 ++ PSRLL $0x13, X2 ++ PXOR X2, X14 ++ MOVOA X10, X1 ++ PADDL X4, X1 ++ MOVOA X1, X2 ++ PSLLL $0x12, X1 ++ PXOR X1, X0 ++ PSRLL $0x0e, X2 ++ PXOR X2, X0 ++ MOVOA 320(R12), X1 ++ MOVOA X0, 320(R12) ++ MOVOA X8, X0 ++ PADDL X14, X0 ++ MOVOA X0, X2 ++ PSLLL $0x12, X0 ++ PXOR X0, X12 ++ PSRLL $0x0e, X2 ++ PXOR X2, X12 ++ MOVOA X11, X0 ++ PADDL X1, X0 ++ MOVOA X0, X2 ++ PSLLL $0x07, X0 ++ PXOR X0, X6 ++ PSRLL $0x19, X2 ++ PXOR X2, X6 ++ MOVOA 336(R12), X2 ++ MOVOA X12, 336(R12) ++ MOVOA X3, X0 ++ PADDL X2, X0 ++ MOVOA X0, X12 ++ PSLLL $0x07, X0 ++ PXOR X0, X13 ++ PSRLL $0x19, X12 ++ PXOR X12, X13 ++ MOVOA X1, X0 ++ PADDL X6, X0 ++ MOVOA X0, X12 ++ PSLLL $0x09, X0 ++ PXOR X0, X15 ++ PSRLL $0x17, X12 ++ PXOR X12, X15 ++ MOVOA X2, X0 ++ PADDL X13, X0 ++ MOVOA X0, X12 ++ PSLLL $0x09, X0 ++ PXOR X0, X9 ++ PSRLL $0x17, X12 ++ PXOR X12, X9 ++ MOVOA X6, X0 ++ PADDL X15, X0 ++ MOVOA X0, X12 ++ PSLLL $0x0d, X0 ++ PXOR X0, X11 ++ PSRLL $0x13, X12 ++ PXOR X12, X11 ++ MOVOA X13, X0 ++ PADDL X9, X0 ++ MOVOA X0, X12 ++ PSLLL $0x0d, X0 ++ PXOR X0, X3 ++ PSRLL $0x13, X12 ++ PXOR X12, X3 ++ MOVOA X15, X0 ++ PADDL X11, X0 ++ MOVOA X0, X12 ++ PSLLL $0x12, X0 ++ PXOR X0, X1 ++ PSRLL $0x0e, X12 ++ PXOR X12, X1 ++ MOVOA X9, X0 ++ PADDL X3, X0 ++ MOVOA X0, X12 ++ PSLLL $0x12, X0 ++ PXOR X0, X2 ++ PSRLL $0x0e, X12 ++ PXOR X12, X2 ++ MOVOA 320(R12), X12 ++ MOVOA 336(R12), X0 ++ SUBQ $0x02, DX ++ JA MAINLOOP1 ++ PADDL 112(R12), X12 ++ PADDL 176(R12), X7 ++ PADDL 224(R12), X10 ++ PADDL 272(R12), X4 ++ MOVD X12, DX ++ MOVD X7, CX ++ MOVD X10, R8 ++ MOVD X4, R9 ++ PSHUFL $0x39, X12, X12 ++ PSHUFL $0x39, X7, X7 ++ PSHUFL $0x39, X10, X10 ++ PSHUFL $0x39, X4, X4 ++ XORL (SI), DX ++ XORL 4(SI), CX ++ XORL 8(SI), R8 ++ XORL 12(SI), R9 ++ MOVL DX, (DI) ++ MOVL CX, 4(DI) ++ MOVL R8, 8(DI) ++ MOVL R9, 12(DI) ++ MOVD X12, DX ++ MOVD X7, CX ++ MOVD X10, R8 ++ MOVD X4, R9 ++ PSHUFL $0x39, X12, X12 ++ PSHUFL $0x39, X7, X7 ++ PSHUFL $0x39, X10, X10 ++ PSHUFL $0x39, X4, X4 ++ XORL 64(SI), DX ++ XORL 68(SI), CX ++ XORL 72(SI), R8 ++ XORL 76(SI), R9 ++ MOVL DX, 64(DI) ++ MOVL CX, 68(DI) ++ MOVL R8, 72(DI) ++ MOVL R9, 76(DI) ++ MOVD X12, DX ++ MOVD X7, CX ++ MOVD X10, R8 ++ MOVD X4, R9 ++ PSHUFL $0x39, X12, X12 ++ PSHUFL $0x39, X7, X7 ++ PSHUFL $0x39, X10, X10 ++ PSHUFL $0x39, X4, X4 ++ XORL 128(SI), DX ++ XORL 132(SI), CX ++ XORL 136(SI), R8 ++ XORL 140(SI), R9 ++ MOVL DX, 128(DI) ++ MOVL CX, 132(DI) ++ MOVL R8, 136(DI) ++ MOVL R9, 140(DI) ++ MOVD X12, DX ++ MOVD X7, CX ++ MOVD X10, R8 ++ MOVD X4, R9 ++ XORL 192(SI), DX ++ XORL 196(SI), CX ++ XORL 200(SI), R8 ++ XORL 204(SI), R9 ++ MOVL DX, 192(DI) ++ MOVL CX, 196(DI) ++ MOVL R8, 200(DI) ++ MOVL R9, 204(DI) ++ PADDL 240(R12), X14 ++ PADDL 64(R12), X0 ++ PADDL 128(R12), X5 ++ PADDL 192(R12), X8 ++ MOVD X14, DX ++ MOVD X0, CX ++ MOVD X5, R8 ++ MOVD X8, R9 ++ PSHUFL $0x39, X14, X14 ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X5, X5 ++ PSHUFL $0x39, X8, X8 ++ XORL 16(SI), DX ++ XORL 20(SI), CX ++ XORL 24(SI), R8 ++ XORL 28(SI), R9 ++ MOVL DX, 16(DI) ++ MOVL CX, 20(DI) ++ MOVL R8, 24(DI) ++ MOVL R9, 28(DI) ++ MOVD X14, DX ++ MOVD X0, CX ++ MOVD X5, R8 ++ MOVD X8, R9 ++ PSHUFL $0x39, X14, X14 ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X5, X5 ++ PSHUFL $0x39, X8, X8 ++ XORL 80(SI), DX ++ XORL 84(SI), CX ++ XORL 88(SI), R8 ++ XORL 92(SI), R9 ++ MOVL DX, 80(DI) ++ MOVL CX, 84(DI) ++ MOVL R8, 88(DI) ++ MOVL R9, 92(DI) ++ MOVD X14, DX ++ MOVD X0, CX ++ MOVD X5, R8 ++ MOVD X8, R9 ++ PSHUFL $0x39, X14, X14 ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X5, X5 ++ PSHUFL $0x39, X8, X8 ++ XORL 144(SI), DX ++ XORL 148(SI), CX ++ XORL 152(SI), R8 ++ XORL 156(SI), R9 ++ MOVL DX, 144(DI) ++ MOVL CX, 148(DI) ++ MOVL R8, 152(DI) ++ MOVL R9, 156(DI) ++ MOVD X14, DX ++ MOVD X0, CX ++ MOVD X5, R8 ++ MOVD X8, R9 ++ XORL 208(SI), DX ++ XORL 212(SI), CX ++ XORL 216(SI), R8 ++ XORL 220(SI), R9 ++ MOVL DX, 208(DI) ++ MOVL CX, 212(DI) ++ MOVL R8, 216(DI) ++ MOVL R9, 220(DI) ++ PADDL 288(R12), X15 ++ PADDL 304(R12), X11 ++ PADDL 80(R12), X1 ++ PADDL 144(R12), X6 ++ MOVD X15, DX ++ MOVD X11, CX ++ MOVD X1, R8 ++ MOVD X6, R9 ++ PSHUFL $0x39, X15, X15 ++ PSHUFL $0x39, X11, X11 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X6, X6 ++ XORL 32(SI), DX ++ XORL 36(SI), CX ++ XORL 40(SI), R8 ++ XORL 44(SI), R9 ++ MOVL DX, 32(DI) ++ MOVL CX, 36(DI) ++ MOVL R8, 40(DI) ++ MOVL R9, 44(DI) ++ MOVD X15, DX ++ MOVD X11, CX ++ MOVD X1, R8 ++ MOVD X6, R9 ++ PSHUFL $0x39, X15, X15 ++ PSHUFL $0x39, X11, X11 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X6, X6 ++ XORL 96(SI), DX ++ XORL 100(SI), CX ++ XORL 104(SI), R8 ++ XORL 108(SI), R9 ++ MOVL DX, 96(DI) ++ MOVL CX, 100(DI) ++ MOVL R8, 104(DI) ++ MOVL R9, 108(DI) ++ MOVD X15, DX ++ MOVD X11, CX ++ MOVD X1, R8 ++ MOVD X6, R9 ++ PSHUFL $0x39, X15, X15 ++ PSHUFL $0x39, X11, X11 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X6, X6 ++ XORL 160(SI), DX ++ XORL 164(SI), CX ++ XORL 168(SI), R8 ++ XORL 172(SI), R9 ++ MOVL DX, 160(DI) ++ MOVL CX, 164(DI) ++ MOVL R8, 168(DI) ++ MOVL R9, 172(DI) ++ MOVD X15, DX ++ MOVD X11, CX ++ MOVD X1, R8 ++ MOVD X6, R9 ++ XORL 224(SI), DX ++ XORL 228(SI), CX ++ XORL 232(SI), R8 ++ XORL 236(SI), R9 ++ MOVL DX, 224(DI) ++ MOVL CX, 228(DI) ++ MOVL R8, 232(DI) ++ MOVL R9, 236(DI) ++ PADDL 160(R12), X13 ++ PADDL 208(R12), X9 ++ PADDL 256(R12), X3 ++ PADDL 96(R12), X2 ++ MOVD X13, DX ++ MOVD X9, CX ++ MOVD X3, R8 ++ MOVD X2, R9 ++ PSHUFL $0x39, X13, X13 ++ PSHUFL $0x39, X9, X9 ++ PSHUFL $0x39, X3, X3 ++ PSHUFL $0x39, X2, X2 ++ XORL 48(SI), DX ++ XORL 52(SI), CX ++ XORL 56(SI), R8 ++ XORL 60(SI), R9 ++ MOVL DX, 48(DI) ++ MOVL CX, 52(DI) ++ MOVL R8, 56(DI) ++ MOVL R9, 60(DI) ++ MOVD X13, DX ++ MOVD X9, CX ++ MOVD X3, R8 ++ MOVD X2, R9 ++ PSHUFL $0x39, X13, X13 ++ PSHUFL $0x39, X9, X9 ++ PSHUFL $0x39, X3, X3 ++ PSHUFL $0x39, X2, X2 ++ XORL 112(SI), DX ++ XORL 116(SI), CX ++ XORL 120(SI), R8 ++ XORL 124(SI), R9 ++ MOVL DX, 112(DI) ++ MOVL CX, 116(DI) ++ MOVL R8, 120(DI) ++ MOVL R9, 124(DI) ++ MOVD X13, DX ++ MOVD X9, CX ++ MOVD X3, R8 ++ MOVD X2, R9 ++ PSHUFL $0x39, X13, X13 ++ PSHUFL $0x39, X9, X9 ++ PSHUFL $0x39, X3, X3 ++ PSHUFL $0x39, X2, X2 ++ XORL 176(SI), DX ++ XORL 180(SI), CX ++ XORL 184(SI), R8 ++ XORL 188(SI), R9 ++ MOVL DX, 176(DI) ++ MOVL CX, 180(DI) ++ MOVL R8, 184(DI) ++ MOVL R9, 188(DI) ++ MOVD X13, DX ++ MOVD X9, CX ++ MOVD X3, R8 ++ MOVD X2, R9 ++ XORL 240(SI), DX ++ XORL 244(SI), CX ++ XORL 248(SI), R8 ++ XORL 252(SI), R9 ++ MOVL DX, 240(DI) ++ MOVL CX, 244(DI) ++ MOVL R8, 248(DI) ++ MOVL R9, 252(DI) ++ MOVQ 352(R12), R9 ++ SUBQ $0x00000100, R9 ++ ADDQ $0x00000100, SI ++ ADDQ $0x00000100, DI ++ CMPQ R9, $0x00000100 ++ JAE BYTESATLEAST256 ++ CMPQ R9, $0x00 ++ JBE DONE + +- MOVQ DX,R9 +- MOVQ CX,DX +- MOVQ R8,R10 +- CMPQ R9,$0 +- JBE DONE +- START: +- MOVL 20(R10),CX +- MOVL 0(R10),R8 +- MOVL 0(DX),AX +- MOVL 16(R10),R11 +- MOVL CX,0(R12) +- MOVL R8, 4 (R12) +- MOVL AX, 8 (R12) +- MOVL R11, 12 (R12) +- MOVL 8(DX),CX +- MOVL 24(R10),R8 +- MOVL 4(R10),AX +- MOVL 4(DX),R11 +- MOVL CX,16(R12) +- MOVL R8, 20 (R12) +- MOVL AX, 24 (R12) +- MOVL R11, 28 (R12) +- MOVL 12(DX),CX +- MOVL 12(R10),DX +- MOVL 28(R10),R8 +- MOVL 8(R10),AX +- MOVL DX,32(R12) +- MOVL CX, 36 (R12) +- MOVL R8, 40 (R12) +- MOVL AX, 44 (R12) +- MOVQ $1634760805,DX +- MOVQ $857760878,CX +- MOVQ $2036477234,R8 +- MOVQ $1797285236,AX +- MOVL DX,48(R12) +- MOVL CX, 52 (R12) +- MOVL R8, 56 (R12) +- MOVL AX, 60 (R12) +- CMPQ R9,$256 +- JB BYTESBETWEEN1AND255 +- MOVOA 48(R12),X0 +- PSHUFL $0X55,X0,X1 +- PSHUFL $0XAA,X0,X2 +- PSHUFL $0XFF,X0,X3 +- PSHUFL $0X00,X0,X0 +- MOVOA X1,64(R12) +- MOVOA X2,80(R12) +- MOVOA X3,96(R12) +- MOVOA X0,112(R12) +- MOVOA 0(R12),X0 +- PSHUFL $0XAA,X0,X1 +- PSHUFL $0XFF,X0,X2 +- PSHUFL $0X00,X0,X3 +- PSHUFL $0X55,X0,X0 +- MOVOA X1,128(R12) +- MOVOA X2,144(R12) +- MOVOA X3,160(R12) +- MOVOA X0,176(R12) +- MOVOA 16(R12),X0 +- PSHUFL $0XFF,X0,X1 +- PSHUFL $0X55,X0,X2 +- PSHUFL $0XAA,X0,X0 +- MOVOA X1,192(R12) +- MOVOA X2,208(R12) +- MOVOA X0,224(R12) +- MOVOA 32(R12),X0 +- PSHUFL $0X00,X0,X1 +- PSHUFL $0XAA,X0,X2 +- PSHUFL $0XFF,X0,X0 +- MOVOA X1,240(R12) +- MOVOA X2,256(R12) +- MOVOA X0,272(R12) +- BYTESATLEAST256: +- MOVL 16(R12),DX +- MOVL 36 (R12),CX +- MOVL DX,288(R12) +- MOVL CX,304(R12) +- SHLQ $32,CX +- ADDQ CX,DX +- ADDQ $1,DX +- MOVQ DX,CX +- SHRQ $32,CX +- MOVL DX, 292 (R12) +- MOVL CX, 308 (R12) +- ADDQ $1,DX +- MOVQ DX,CX +- SHRQ $32,CX +- MOVL DX, 296 (R12) +- MOVL CX, 312 (R12) +- ADDQ $1,DX +- MOVQ DX,CX +- SHRQ $32,CX +- MOVL DX, 300 (R12) +- MOVL CX, 316 (R12) +- ADDQ $1,DX +- MOVQ DX,CX +- SHRQ $32,CX +- MOVL DX,16(R12) +- MOVL CX, 36 (R12) +- MOVQ R9,352(R12) +- MOVQ $20,DX +- MOVOA 64(R12),X0 +- MOVOA 80(R12),X1 +- MOVOA 96(R12),X2 +- MOVOA 256(R12),X3 +- MOVOA 272(R12),X4 +- MOVOA 128(R12),X5 +- MOVOA 144(R12),X6 +- MOVOA 176(R12),X7 +- MOVOA 192(R12),X8 +- MOVOA 208(R12),X9 +- MOVOA 224(R12),X10 +- MOVOA 304(R12),X11 +- MOVOA 112(R12),X12 +- MOVOA 160(R12),X13 +- MOVOA 240(R12),X14 +- MOVOA 288(R12),X15 +- MAINLOOP1: +- MOVOA X1,320(R12) +- MOVOA X2,336(R12) +- MOVOA X13,X1 +- PADDL X12,X1 +- MOVOA X1,X2 +- PSLLL $7,X1 +- PXOR X1,X14 +- PSRLL $25,X2 +- PXOR X2,X14 +- MOVOA X7,X1 +- PADDL X0,X1 +- MOVOA X1,X2 +- PSLLL $7,X1 +- PXOR X1,X11 +- PSRLL $25,X2 +- PXOR X2,X11 +- MOVOA X12,X1 +- PADDL X14,X1 +- MOVOA X1,X2 +- PSLLL $9,X1 +- PXOR X1,X15 +- PSRLL $23,X2 +- PXOR X2,X15 +- MOVOA X0,X1 +- PADDL X11,X1 +- MOVOA X1,X2 +- PSLLL $9,X1 +- PXOR X1,X9 +- PSRLL $23,X2 +- PXOR X2,X9 +- MOVOA X14,X1 +- PADDL X15,X1 +- MOVOA X1,X2 +- PSLLL $13,X1 +- PXOR X1,X13 +- PSRLL $19,X2 +- PXOR X2,X13 +- MOVOA X11,X1 +- PADDL X9,X1 +- MOVOA X1,X2 +- PSLLL $13,X1 +- PXOR X1,X7 +- PSRLL $19,X2 +- PXOR X2,X7 +- MOVOA X15,X1 +- PADDL X13,X1 +- MOVOA X1,X2 +- PSLLL $18,X1 +- PXOR X1,X12 +- PSRLL $14,X2 +- PXOR X2,X12 +- MOVOA 320(R12),X1 +- MOVOA X12,320(R12) +- MOVOA X9,X2 +- PADDL X7,X2 +- MOVOA X2,X12 +- PSLLL $18,X2 +- PXOR X2,X0 +- PSRLL $14,X12 +- PXOR X12,X0 +- MOVOA X5,X2 +- PADDL X1,X2 +- MOVOA X2,X12 +- PSLLL $7,X2 +- PXOR X2,X3 +- PSRLL $25,X12 +- PXOR X12,X3 +- MOVOA 336(R12),X2 +- MOVOA X0,336(R12) +- MOVOA X6,X0 +- PADDL X2,X0 +- MOVOA X0,X12 +- PSLLL $7,X0 +- PXOR X0,X4 +- PSRLL $25,X12 +- PXOR X12,X4 +- MOVOA X1,X0 +- PADDL X3,X0 +- MOVOA X0,X12 +- PSLLL $9,X0 +- PXOR X0,X10 +- PSRLL $23,X12 +- PXOR X12,X10 +- MOVOA X2,X0 +- PADDL X4,X0 +- MOVOA X0,X12 +- PSLLL $9,X0 +- PXOR X0,X8 +- PSRLL $23,X12 +- PXOR X12,X8 +- MOVOA X3,X0 +- PADDL X10,X0 +- MOVOA X0,X12 +- PSLLL $13,X0 +- PXOR X0,X5 +- PSRLL $19,X12 +- PXOR X12,X5 +- MOVOA X4,X0 +- PADDL X8,X0 +- MOVOA X0,X12 +- PSLLL $13,X0 +- PXOR X0,X6 +- PSRLL $19,X12 +- PXOR X12,X6 +- MOVOA X10,X0 +- PADDL X5,X0 +- MOVOA X0,X12 +- PSLLL $18,X0 +- PXOR X0,X1 +- PSRLL $14,X12 +- PXOR X12,X1 +- MOVOA 320(R12),X0 +- MOVOA X1,320(R12) +- MOVOA X4,X1 +- PADDL X0,X1 +- MOVOA X1,X12 +- PSLLL $7,X1 +- PXOR X1,X7 +- PSRLL $25,X12 +- PXOR X12,X7 +- MOVOA X8,X1 +- PADDL X6,X1 +- MOVOA X1,X12 +- PSLLL $18,X1 +- PXOR X1,X2 +- PSRLL $14,X12 +- PXOR X12,X2 +- MOVOA 336(R12),X12 +- MOVOA X2,336(R12) +- MOVOA X14,X1 +- PADDL X12,X1 +- MOVOA X1,X2 +- PSLLL $7,X1 +- PXOR X1,X5 +- PSRLL $25,X2 +- PXOR X2,X5 +- MOVOA X0,X1 +- PADDL X7,X1 +- MOVOA X1,X2 +- PSLLL $9,X1 +- PXOR X1,X10 +- PSRLL $23,X2 +- PXOR X2,X10 +- MOVOA X12,X1 +- PADDL X5,X1 +- MOVOA X1,X2 +- PSLLL $9,X1 +- PXOR X1,X8 +- PSRLL $23,X2 +- PXOR X2,X8 +- MOVOA X7,X1 +- PADDL X10,X1 +- MOVOA X1,X2 +- PSLLL $13,X1 +- PXOR X1,X4 +- PSRLL $19,X2 +- PXOR X2,X4 +- MOVOA X5,X1 +- PADDL X8,X1 +- MOVOA X1,X2 +- PSLLL $13,X1 +- PXOR X1,X14 +- PSRLL $19,X2 +- PXOR X2,X14 +- MOVOA X10,X1 +- PADDL X4,X1 +- MOVOA X1,X2 +- PSLLL $18,X1 +- PXOR X1,X0 +- PSRLL $14,X2 +- PXOR X2,X0 +- MOVOA 320(R12),X1 +- MOVOA X0,320(R12) +- MOVOA X8,X0 +- PADDL X14,X0 +- MOVOA X0,X2 +- PSLLL $18,X0 +- PXOR X0,X12 +- PSRLL $14,X2 +- PXOR X2,X12 +- MOVOA X11,X0 +- PADDL X1,X0 +- MOVOA X0,X2 +- PSLLL $7,X0 +- PXOR X0,X6 +- PSRLL $25,X2 +- PXOR X2,X6 +- MOVOA 336(R12),X2 +- MOVOA X12,336(R12) +- MOVOA X3,X0 +- PADDL X2,X0 +- MOVOA X0,X12 +- PSLLL $7,X0 +- PXOR X0,X13 +- PSRLL $25,X12 +- PXOR X12,X13 +- MOVOA X1,X0 +- PADDL X6,X0 +- MOVOA X0,X12 +- PSLLL $9,X0 +- PXOR X0,X15 +- PSRLL $23,X12 +- PXOR X12,X15 +- MOVOA X2,X0 +- PADDL X13,X0 +- MOVOA X0,X12 +- PSLLL $9,X0 +- PXOR X0,X9 +- PSRLL $23,X12 +- PXOR X12,X9 +- MOVOA X6,X0 +- PADDL X15,X0 +- MOVOA X0,X12 +- PSLLL $13,X0 +- PXOR X0,X11 +- PSRLL $19,X12 +- PXOR X12,X11 +- MOVOA X13,X0 +- PADDL X9,X0 +- MOVOA X0,X12 +- PSLLL $13,X0 +- PXOR X0,X3 +- PSRLL $19,X12 +- PXOR X12,X3 +- MOVOA X15,X0 +- PADDL X11,X0 +- MOVOA X0,X12 +- PSLLL $18,X0 +- PXOR X0,X1 +- PSRLL $14,X12 +- PXOR X12,X1 +- MOVOA X9,X0 +- PADDL X3,X0 +- MOVOA X0,X12 +- PSLLL $18,X0 +- PXOR X0,X2 +- PSRLL $14,X12 +- PXOR X12,X2 +- MOVOA 320(R12),X12 +- MOVOA 336(R12),X0 +- SUBQ $2,DX +- JA MAINLOOP1 +- PADDL 112(R12),X12 +- PADDL 176(R12),X7 +- PADDL 224(R12),X10 +- PADDL 272(R12),X4 +- MOVD X12,DX +- MOVD X7,CX +- MOVD X10,R8 +- MOVD X4,R9 +- PSHUFL $0X39,X12,X12 +- PSHUFL $0X39,X7,X7 +- PSHUFL $0X39,X10,X10 +- PSHUFL $0X39,X4,X4 +- XORL 0(SI),DX +- XORL 4(SI),CX +- XORL 8(SI),R8 +- XORL 12(SI),R9 +- MOVL DX,0(DI) +- MOVL CX,4(DI) +- MOVL R8,8(DI) +- MOVL R9,12(DI) +- MOVD X12,DX +- MOVD X7,CX +- MOVD X10,R8 +- MOVD X4,R9 +- PSHUFL $0X39,X12,X12 +- PSHUFL $0X39,X7,X7 +- PSHUFL $0X39,X10,X10 +- PSHUFL $0X39,X4,X4 +- XORL 64(SI),DX +- XORL 68(SI),CX +- XORL 72(SI),R8 +- XORL 76(SI),R9 +- MOVL DX,64(DI) +- MOVL CX,68(DI) +- MOVL R8,72(DI) +- MOVL R9,76(DI) +- MOVD X12,DX +- MOVD X7,CX +- MOVD X10,R8 +- MOVD X4,R9 +- PSHUFL $0X39,X12,X12 +- PSHUFL $0X39,X7,X7 +- PSHUFL $0X39,X10,X10 +- PSHUFL $0X39,X4,X4 +- XORL 128(SI),DX +- XORL 132(SI),CX +- XORL 136(SI),R8 +- XORL 140(SI),R9 +- MOVL DX,128(DI) +- MOVL CX,132(DI) +- MOVL R8,136(DI) +- MOVL R9,140(DI) +- MOVD X12,DX +- MOVD X7,CX +- MOVD X10,R8 +- MOVD X4,R9 +- XORL 192(SI),DX +- XORL 196(SI),CX +- XORL 200(SI),R8 +- XORL 204(SI),R9 +- MOVL DX,192(DI) +- MOVL CX,196(DI) +- MOVL R8,200(DI) +- MOVL R9,204(DI) +- PADDL 240(R12),X14 +- PADDL 64(R12),X0 +- PADDL 128(R12),X5 +- PADDL 192(R12),X8 +- MOVD X14,DX +- MOVD X0,CX +- MOVD X5,R8 +- MOVD X8,R9 +- PSHUFL $0X39,X14,X14 +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X5,X5 +- PSHUFL $0X39,X8,X8 +- XORL 16(SI),DX +- XORL 20(SI),CX +- XORL 24(SI),R8 +- XORL 28(SI),R9 +- MOVL DX,16(DI) +- MOVL CX,20(DI) +- MOVL R8,24(DI) +- MOVL R9,28(DI) +- MOVD X14,DX +- MOVD X0,CX +- MOVD X5,R8 +- MOVD X8,R9 +- PSHUFL $0X39,X14,X14 +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X5,X5 +- PSHUFL $0X39,X8,X8 +- XORL 80(SI),DX +- XORL 84(SI),CX +- XORL 88(SI),R8 +- XORL 92(SI),R9 +- MOVL DX,80(DI) +- MOVL CX,84(DI) +- MOVL R8,88(DI) +- MOVL R9,92(DI) +- MOVD X14,DX +- MOVD X0,CX +- MOVD X5,R8 +- MOVD X8,R9 +- PSHUFL $0X39,X14,X14 +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X5,X5 +- PSHUFL $0X39,X8,X8 +- XORL 144(SI),DX +- XORL 148(SI),CX +- XORL 152(SI),R8 +- XORL 156(SI),R9 +- MOVL DX,144(DI) +- MOVL CX,148(DI) +- MOVL R8,152(DI) +- MOVL R9,156(DI) +- MOVD X14,DX +- MOVD X0,CX +- MOVD X5,R8 +- MOVD X8,R9 +- XORL 208(SI),DX +- XORL 212(SI),CX +- XORL 216(SI),R8 +- XORL 220(SI),R9 +- MOVL DX,208(DI) +- MOVL CX,212(DI) +- MOVL R8,216(DI) +- MOVL R9,220(DI) +- PADDL 288(R12),X15 +- PADDL 304(R12),X11 +- PADDL 80(R12),X1 +- PADDL 144(R12),X6 +- MOVD X15,DX +- MOVD X11,CX +- MOVD X1,R8 +- MOVD X6,R9 +- PSHUFL $0X39,X15,X15 +- PSHUFL $0X39,X11,X11 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X6,X6 +- XORL 32(SI),DX +- XORL 36(SI),CX +- XORL 40(SI),R8 +- XORL 44(SI),R9 +- MOVL DX,32(DI) +- MOVL CX,36(DI) +- MOVL R8,40(DI) +- MOVL R9,44(DI) +- MOVD X15,DX +- MOVD X11,CX +- MOVD X1,R8 +- MOVD X6,R9 +- PSHUFL $0X39,X15,X15 +- PSHUFL $0X39,X11,X11 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X6,X6 +- XORL 96(SI),DX +- XORL 100(SI),CX +- XORL 104(SI),R8 +- XORL 108(SI),R9 +- MOVL DX,96(DI) +- MOVL CX,100(DI) +- MOVL R8,104(DI) +- MOVL R9,108(DI) +- MOVD X15,DX +- MOVD X11,CX +- MOVD X1,R8 +- MOVD X6,R9 +- PSHUFL $0X39,X15,X15 +- PSHUFL $0X39,X11,X11 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X6,X6 +- XORL 160(SI),DX +- XORL 164(SI),CX +- XORL 168(SI),R8 +- XORL 172(SI),R9 +- MOVL DX,160(DI) +- MOVL CX,164(DI) +- MOVL R8,168(DI) +- MOVL R9,172(DI) +- MOVD X15,DX +- MOVD X11,CX +- MOVD X1,R8 +- MOVD X6,R9 +- XORL 224(SI),DX +- XORL 228(SI),CX +- XORL 232(SI),R8 +- XORL 236(SI),R9 +- MOVL DX,224(DI) +- MOVL CX,228(DI) +- MOVL R8,232(DI) +- MOVL R9,236(DI) +- PADDL 160(R12),X13 +- PADDL 208(R12),X9 +- PADDL 256(R12),X3 +- PADDL 96(R12),X2 +- MOVD X13,DX +- MOVD X9,CX +- MOVD X3,R8 +- MOVD X2,R9 +- PSHUFL $0X39,X13,X13 +- PSHUFL $0X39,X9,X9 +- PSHUFL $0X39,X3,X3 +- PSHUFL $0X39,X2,X2 +- XORL 48(SI),DX +- XORL 52(SI),CX +- XORL 56(SI),R8 +- XORL 60(SI),R9 +- MOVL DX,48(DI) +- MOVL CX,52(DI) +- MOVL R8,56(DI) +- MOVL R9,60(DI) +- MOVD X13,DX +- MOVD X9,CX +- MOVD X3,R8 +- MOVD X2,R9 +- PSHUFL $0X39,X13,X13 +- PSHUFL $0X39,X9,X9 +- PSHUFL $0X39,X3,X3 +- PSHUFL $0X39,X2,X2 +- XORL 112(SI),DX +- XORL 116(SI),CX +- XORL 120(SI),R8 +- XORL 124(SI),R9 +- MOVL DX,112(DI) +- MOVL CX,116(DI) +- MOVL R8,120(DI) +- MOVL R9,124(DI) +- MOVD X13,DX +- MOVD X9,CX +- MOVD X3,R8 +- MOVD X2,R9 +- PSHUFL $0X39,X13,X13 +- PSHUFL $0X39,X9,X9 +- PSHUFL $0X39,X3,X3 +- PSHUFL $0X39,X2,X2 +- XORL 176(SI),DX +- XORL 180(SI),CX +- XORL 184(SI),R8 +- XORL 188(SI),R9 +- MOVL DX,176(DI) +- MOVL CX,180(DI) +- MOVL R8,184(DI) +- MOVL R9,188(DI) +- MOVD X13,DX +- MOVD X9,CX +- MOVD X3,R8 +- MOVD X2,R9 +- XORL 240(SI),DX +- XORL 244(SI),CX +- XORL 248(SI),R8 +- XORL 252(SI),R9 +- MOVL DX,240(DI) +- MOVL CX,244(DI) +- MOVL R8,248(DI) +- MOVL R9,252(DI) +- MOVQ 352(R12),R9 +- SUBQ $256,R9 +- ADDQ $256,SI +- ADDQ $256,DI +- CMPQ R9,$256 +- JAE BYTESATLEAST256 +- CMPQ R9,$0 +- JBE DONE +- BYTESBETWEEN1AND255: +- CMPQ R9,$64 +- JAE NOCOPY +- MOVQ DI,DX +- LEAQ 360(R12),DI +- MOVQ R9,CX ++BYTESBETWEEN1AND255: ++ CMPQ R9, $0x40 ++ JAE NOCOPY ++ MOVQ DI, DX ++ LEAQ 360(R12), DI ++ MOVQ R9, CX + REP; MOVSB +- LEAQ 360(R12),DI +- LEAQ 360(R12),SI +- NOCOPY: +- MOVQ R9,352(R12) +- MOVOA 48(R12),X0 +- MOVOA 0(R12),X1 +- MOVOA 16(R12),X2 +- MOVOA 32(R12),X3 +- MOVOA X1,X4 +- MOVQ $20,CX +- MAINLOOP2: +- PADDL X0,X4 +- MOVOA X0,X5 +- MOVOA X4,X6 +- PSLLL $7,X4 +- PSRLL $25,X6 +- PXOR X4,X3 +- PXOR X6,X3 +- PADDL X3,X5 +- MOVOA X3,X4 +- MOVOA X5,X6 +- PSLLL $9,X5 +- PSRLL $23,X6 +- PXOR X5,X2 +- PSHUFL $0X93,X3,X3 +- PXOR X6,X2 +- PADDL X2,X4 +- MOVOA X2,X5 +- MOVOA X4,X6 +- PSLLL $13,X4 +- PSRLL $19,X6 +- PXOR X4,X1 +- PSHUFL $0X4E,X2,X2 +- PXOR X6,X1 +- PADDL X1,X5 +- MOVOA X3,X4 +- MOVOA X5,X6 +- PSLLL $18,X5 +- PSRLL $14,X6 +- PXOR X5,X0 +- PSHUFL $0X39,X1,X1 +- PXOR X6,X0 +- PADDL X0,X4 +- MOVOA X0,X5 +- MOVOA X4,X6 +- PSLLL $7,X4 +- PSRLL $25,X6 +- PXOR X4,X1 +- PXOR X6,X1 +- PADDL X1,X5 +- MOVOA X1,X4 +- MOVOA X5,X6 +- PSLLL $9,X5 +- PSRLL $23,X6 +- PXOR X5,X2 +- PSHUFL $0X93,X1,X1 +- PXOR X6,X2 +- PADDL X2,X4 +- MOVOA X2,X5 +- MOVOA X4,X6 +- PSLLL $13,X4 +- PSRLL $19,X6 +- PXOR X4,X3 +- PSHUFL $0X4E,X2,X2 +- PXOR X6,X3 +- PADDL X3,X5 +- MOVOA X1,X4 +- MOVOA X5,X6 +- PSLLL $18,X5 +- PSRLL $14,X6 +- PXOR X5,X0 +- PSHUFL $0X39,X3,X3 +- PXOR X6,X0 +- PADDL X0,X4 +- MOVOA X0,X5 +- MOVOA X4,X6 +- PSLLL $7,X4 +- PSRLL $25,X6 +- PXOR X4,X3 +- PXOR X6,X3 +- PADDL X3,X5 +- MOVOA X3,X4 +- MOVOA X5,X6 +- PSLLL $9,X5 +- PSRLL $23,X6 +- PXOR X5,X2 +- PSHUFL $0X93,X3,X3 +- PXOR X6,X2 +- PADDL X2,X4 +- MOVOA X2,X5 +- MOVOA X4,X6 +- PSLLL $13,X4 +- PSRLL $19,X6 +- PXOR X4,X1 +- PSHUFL $0X4E,X2,X2 +- PXOR X6,X1 +- PADDL X1,X5 +- MOVOA X3,X4 +- MOVOA X5,X6 +- PSLLL $18,X5 +- PSRLL $14,X6 +- PXOR X5,X0 +- PSHUFL $0X39,X1,X1 +- PXOR X6,X0 +- PADDL X0,X4 +- MOVOA X0,X5 +- MOVOA X4,X6 +- PSLLL $7,X4 +- PSRLL $25,X6 +- PXOR X4,X1 +- PXOR X6,X1 +- PADDL X1,X5 +- MOVOA X1,X4 +- MOVOA X5,X6 +- PSLLL $9,X5 +- PSRLL $23,X6 +- PXOR X5,X2 +- PSHUFL $0X93,X1,X1 +- PXOR X6,X2 +- PADDL X2,X4 +- MOVOA X2,X5 +- MOVOA X4,X6 +- PSLLL $13,X4 +- PSRLL $19,X6 +- PXOR X4,X3 +- PSHUFL $0X4E,X2,X2 +- PXOR X6,X3 +- SUBQ $4,CX +- PADDL X3,X5 +- MOVOA X1,X4 +- MOVOA X5,X6 +- PSLLL $18,X5 +- PXOR X7,X7 +- PSRLL $14,X6 +- PXOR X5,X0 +- PSHUFL $0X39,X3,X3 +- PXOR X6,X0 +- JA MAINLOOP2 +- PADDL 48(R12),X0 +- PADDL 0(R12),X1 +- PADDL 16(R12),X2 +- PADDL 32(R12),X3 +- MOVD X0,CX +- MOVD X1,R8 +- MOVD X2,R9 +- MOVD X3,AX +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X2,X2 +- PSHUFL $0X39,X3,X3 +- XORL 0(SI),CX +- XORL 48(SI),R8 +- XORL 32(SI),R9 +- XORL 16(SI),AX +- MOVL CX,0(DI) +- MOVL R8,48(DI) +- MOVL R9,32(DI) +- MOVL AX,16(DI) +- MOVD X0,CX +- MOVD X1,R8 +- MOVD X2,R9 +- MOVD X3,AX +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X2,X2 +- PSHUFL $0X39,X3,X3 +- XORL 20(SI),CX +- XORL 4(SI),R8 +- XORL 52(SI),R9 +- XORL 36(SI),AX +- MOVL CX,20(DI) +- MOVL R8,4(DI) +- MOVL R9,52(DI) +- MOVL AX,36(DI) +- MOVD X0,CX +- MOVD X1,R8 +- MOVD X2,R9 +- MOVD X3,AX +- PSHUFL $0X39,X0,X0 +- PSHUFL $0X39,X1,X1 +- PSHUFL $0X39,X2,X2 +- PSHUFL $0X39,X3,X3 +- XORL 40(SI),CX +- XORL 24(SI),R8 +- XORL 8(SI),R9 +- XORL 56(SI),AX +- MOVL CX,40(DI) +- MOVL R8,24(DI) +- MOVL R9,8(DI) +- MOVL AX,56(DI) +- MOVD X0,CX +- MOVD X1,R8 +- MOVD X2,R9 +- MOVD X3,AX +- XORL 60(SI),CX +- XORL 44(SI),R8 +- XORL 28(SI),R9 +- XORL 12(SI),AX +- MOVL CX,60(DI) +- MOVL R8,44(DI) +- MOVL R9,28(DI) +- MOVL AX,12(DI) +- MOVQ 352(R12),R9 +- MOVL 16(R12),CX +- MOVL 36 (R12),R8 +- ADDQ $1,CX +- SHLQ $32,R8 +- ADDQ R8,CX +- MOVQ CX,R8 +- SHRQ $32,R8 +- MOVL CX,16(R12) +- MOVL R8, 36 (R12) +- CMPQ R9,$64 +- JA BYTESATLEAST65 +- JAE BYTESATLEAST64 +- MOVQ DI,SI +- MOVQ DX,DI +- MOVQ R9,CX ++ LEAQ 360(R12), DI ++ LEAQ 360(R12), SI ++ ++NOCOPY: ++ MOVQ R9, 352(R12) ++ MOVOA 48(R12), X0 ++ MOVOA (R12), X1 ++ MOVOA 16(R12), X2 ++ MOVOA 32(R12), X3 ++ MOVOA X1, X4 ++ MOVQ $0x00000014, CX ++ ++MAINLOOP2: ++ PADDL X0, X4 ++ MOVOA X0, X5 ++ MOVOA X4, X6 ++ PSLLL $0x07, X4 ++ PSRLL $0x19, X6 ++ PXOR X4, X3 ++ PXOR X6, X3 ++ PADDL X3, X5 ++ MOVOA X3, X4 ++ MOVOA X5, X6 ++ PSLLL $0x09, X5 ++ PSRLL $0x17, X6 ++ PXOR X5, X2 ++ PSHUFL $0x93, X3, X3 ++ PXOR X6, X2 ++ PADDL X2, X4 ++ MOVOA X2, X5 ++ MOVOA X4, X6 ++ PSLLL $0x0d, X4 ++ PSRLL $0x13, X6 ++ PXOR X4, X1 ++ PSHUFL $0x4e, X2, X2 ++ PXOR X6, X1 ++ PADDL X1, X5 ++ MOVOA X3, X4 ++ MOVOA X5, X6 ++ PSLLL $0x12, X5 ++ PSRLL $0x0e, X6 ++ PXOR X5, X0 ++ PSHUFL $0x39, X1, X1 ++ PXOR X6, X0 ++ PADDL X0, X4 ++ MOVOA X0, X5 ++ MOVOA X4, X6 ++ PSLLL $0x07, X4 ++ PSRLL $0x19, X6 ++ PXOR X4, X1 ++ PXOR X6, X1 ++ PADDL X1, X5 ++ MOVOA X1, X4 ++ MOVOA X5, X6 ++ PSLLL $0x09, X5 ++ PSRLL $0x17, X6 ++ PXOR X5, X2 ++ PSHUFL $0x93, X1, X1 ++ PXOR X6, X2 ++ PADDL X2, X4 ++ MOVOA X2, X5 ++ MOVOA X4, X6 ++ PSLLL $0x0d, X4 ++ PSRLL $0x13, X6 ++ PXOR X4, X3 ++ PSHUFL $0x4e, X2, X2 ++ PXOR X6, X3 ++ PADDL X3, X5 ++ MOVOA X1, X4 ++ MOVOA X5, X6 ++ PSLLL $0x12, X5 ++ PSRLL $0x0e, X6 ++ PXOR X5, X0 ++ PSHUFL $0x39, X3, X3 ++ PXOR X6, X0 ++ PADDL X0, X4 ++ MOVOA X0, X5 ++ MOVOA X4, X6 ++ PSLLL $0x07, X4 ++ PSRLL $0x19, X6 ++ PXOR X4, X3 ++ PXOR X6, X3 ++ PADDL X3, X5 ++ MOVOA X3, X4 ++ MOVOA X5, X6 ++ PSLLL $0x09, X5 ++ PSRLL $0x17, X6 ++ PXOR X5, X2 ++ PSHUFL $0x93, X3, X3 ++ PXOR X6, X2 ++ PADDL X2, X4 ++ MOVOA X2, X5 ++ MOVOA X4, X6 ++ PSLLL $0x0d, X4 ++ PSRLL $0x13, X6 ++ PXOR X4, X1 ++ PSHUFL $0x4e, X2, X2 ++ PXOR X6, X1 ++ PADDL X1, X5 ++ MOVOA X3, X4 ++ MOVOA X5, X6 ++ PSLLL $0x12, X5 ++ PSRLL $0x0e, X6 ++ PXOR X5, X0 ++ PSHUFL $0x39, X1, X1 ++ PXOR X6, X0 ++ PADDL X0, X4 ++ MOVOA X0, X5 ++ MOVOA X4, X6 ++ PSLLL $0x07, X4 ++ PSRLL $0x19, X6 ++ PXOR X4, X1 ++ PXOR X6, X1 ++ PADDL X1, X5 ++ MOVOA X1, X4 ++ MOVOA X5, X6 ++ PSLLL $0x09, X5 ++ PSRLL $0x17, X6 ++ PXOR X5, X2 ++ PSHUFL $0x93, X1, X1 ++ PXOR X6, X2 ++ PADDL X2, X4 ++ MOVOA X2, X5 ++ MOVOA X4, X6 ++ PSLLL $0x0d, X4 ++ PSRLL $0x13, X6 ++ PXOR X4, X3 ++ PSHUFL $0x4e, X2, X2 ++ PXOR X6, X3 ++ SUBQ $0x04, CX ++ PADDL X3, X5 ++ MOVOA X1, X4 ++ MOVOA X5, X6 ++ PSLLL $0x12, X5 ++ PXOR X7, X7 ++ PSRLL $0x0e, X6 ++ PXOR X5, X0 ++ PSHUFL $0x39, X3, X3 ++ PXOR X6, X0 ++ JA MAINLOOP2 ++ PADDL 48(R12), X0 ++ PADDL (R12), X1 ++ PADDL 16(R12), X2 ++ PADDL 32(R12), X3 ++ MOVD X0, CX ++ MOVD X1, R8 ++ MOVD X2, R9 ++ MOVD X3, AX ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X2, X2 ++ PSHUFL $0x39, X3, X3 ++ XORL (SI), CX ++ XORL 48(SI), R8 ++ XORL 32(SI), R9 ++ XORL 16(SI), AX ++ MOVL CX, (DI) ++ MOVL R8, 48(DI) ++ MOVL R9, 32(DI) ++ MOVL AX, 16(DI) ++ MOVD X0, CX ++ MOVD X1, R8 ++ MOVD X2, R9 ++ MOVD X3, AX ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X2, X2 ++ PSHUFL $0x39, X3, X3 ++ XORL 20(SI), CX ++ XORL 4(SI), R8 ++ XORL 52(SI), R9 ++ XORL 36(SI), AX ++ MOVL CX, 20(DI) ++ MOVL R8, 4(DI) ++ MOVL R9, 52(DI) ++ MOVL AX, 36(DI) ++ MOVD X0, CX ++ MOVD X1, R8 ++ MOVD X2, R9 ++ MOVD X3, AX ++ PSHUFL $0x39, X0, X0 ++ PSHUFL $0x39, X1, X1 ++ PSHUFL $0x39, X2, X2 ++ PSHUFL $0x39, X3, X3 ++ XORL 40(SI), CX ++ XORL 24(SI), R8 ++ XORL 8(SI), R9 ++ XORL 56(SI), AX ++ MOVL CX, 40(DI) ++ MOVL R8, 24(DI) ++ MOVL R9, 8(DI) ++ MOVL AX, 56(DI) ++ MOVD X0, CX ++ MOVD X1, R8 ++ MOVD X2, R9 ++ MOVD X3, AX ++ XORL 60(SI), CX ++ XORL 44(SI), R8 ++ XORL 28(SI), R9 ++ XORL 12(SI), AX ++ MOVL CX, 60(DI) ++ MOVL R8, 44(DI) ++ MOVL R9, 28(DI) ++ MOVL AX, 12(DI) ++ MOVQ 352(R12), R9 ++ MOVL 16(R12), CX ++ MOVL 36(R12), R8 ++ ADDQ $0x01, CX ++ SHLQ $0x20, R8 ++ ADDQ R8, CX ++ MOVQ CX, R8 ++ SHRQ $0x20, R8 ++ MOVL CX, 16(R12) ++ MOVL R8, 36(R12) ++ CMPQ R9, $0x40 ++ JA BYTESATLEAST65 ++ JAE BYTESATLEAST64 ++ MOVQ DI, SI ++ MOVQ DX, DI ++ MOVQ R9, CX + REP; MOVSB +- BYTESATLEAST64: +- DONE: ++ ++BYTESATLEAST64: ++DONE: + RET +- BYTESATLEAST65: +- SUBQ $64,R9 +- ADDQ $64,DI +- ADDQ $64,SI +- JMP BYTESBETWEEN1AND255 ++ ++BYTESATLEAST65: ++ SUBQ $0x40, R9 ++ ADDQ $0x40, DI ++ ADDQ $0x40, SI ++ JMP BYTESBETWEEN1AND255 +diff --git a/vendor/golang.org/x/crypto/scrypt/scrypt.go b/vendor/golang.org/x/crypto/scrypt/scrypt.go +index c971a99fa6..76fa40fb20 100644 +--- a/vendor/golang.org/x/crypto/scrypt/scrypt.go ++++ b/vendor/golang.org/x/crypto/scrypt/scrypt.go +@@ -5,7 +5,7 @@ + // Package scrypt implements the scrypt key derivation function as defined in + // Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard + // Functions" (https://www.tarsnap.com/scrypt/scrypt.pdf). +-package scrypt // import "golang.org/x/crypto/scrypt" ++package scrypt + + import ( + "crypto/sha256" +diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go +index decd8cf9bf..bbf391fe6e 100644 +--- a/vendor/golang.org/x/crypto/sha3/doc.go ++++ b/vendor/golang.org/x/crypto/sha3/doc.go +@@ -5,6 +5,10 @@ + // Package sha3 implements the SHA-3 fixed-output-length hash functions and + // the SHAKE variable-output-length hash functions defined by FIPS-202. + // ++// All types in this package also implement [encoding.BinaryMarshaler], ++// [encoding.BinaryAppender] and [encoding.BinaryUnmarshaler] to marshal and ++// unmarshal the internal state of the hash. ++// + // Both types of hash function use the "sponge" construction and the Keccak + // permutation. For a detailed specification see http://keccak.noekeon.org/ + // +@@ -59,4 +63,4 @@ + // They produce output of the same length, with the same security strengths + // against all attacks. This means, in particular, that SHA3-256 only has + // 128-bit collision resistance, because its output length is 32 bytes. +-package sha3 // import "golang.org/x/crypto/sha3" ++package sha3 +diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go +index 0d8043fd2a..31fffbe044 100644 +--- a/vendor/golang.org/x/crypto/sha3/hashes.go ++++ b/vendor/golang.org/x/crypto/sha3/hashes.go +@@ -9,6 +9,7 @@ package sha3 + // bytes. + + import ( ++ "crypto" + "hash" + ) + +@@ -16,53 +17,83 @@ import ( + // Its generic security strength is 224 bits against preimage attacks, + // and 112 bits against collision attacks. + func New224() hash.Hash { +- if h := new224Asm(); h != nil { +- return h +- } +- return &state{rate: 144, outputLen: 28, dsbyte: 0x06} ++ return new224() + } + + // New256 creates a new SHA3-256 hash. + // Its generic security strength is 256 bits against preimage attacks, + // and 128 bits against collision attacks. + func New256() hash.Hash { +- if h := new256Asm(); h != nil { +- return h +- } +- return &state{rate: 136, outputLen: 32, dsbyte: 0x06} ++ return new256() + } + + // New384 creates a new SHA3-384 hash. + // Its generic security strength is 384 bits against preimage attacks, + // and 192 bits against collision attacks. + func New384() hash.Hash { +- if h := new384Asm(); h != nil { +- return h +- } +- return &state{rate: 104, outputLen: 48, dsbyte: 0x06} ++ return new384() + } + + // New512 creates a new SHA3-512 hash. + // Its generic security strength is 512 bits against preimage attacks, + // and 256 bits against collision attacks. + func New512() hash.Hash { +- if h := new512Asm(); h != nil { +- return h +- } +- return &state{rate: 72, outputLen: 64, dsbyte: 0x06} ++ return new512() ++} ++ ++func init() { ++ crypto.RegisterHash(crypto.SHA3_224, New224) ++ crypto.RegisterHash(crypto.SHA3_256, New256) ++ crypto.RegisterHash(crypto.SHA3_384, New384) ++ crypto.RegisterHash(crypto.SHA3_512, New512) ++} ++ ++const ( ++ dsbyteSHA3 = 0b00000110 ++ dsbyteKeccak = 0b00000001 ++ dsbyteShake = 0b00011111 ++ dsbyteCShake = 0b00000100 ++ ++ // rateK[c] is the rate in bytes for Keccak[c] where c is the capacity in ++ // bits. Given the sponge size is 1600 bits, the rate is 1600 - c bits. ++ rateK256 = (1600 - 256) / 8 ++ rateK448 = (1600 - 448) / 8 ++ rateK512 = (1600 - 512) / 8 ++ rateK768 = (1600 - 768) / 8 ++ rateK1024 = (1600 - 1024) / 8 ++) ++ ++func new224Generic() *state { ++ return &state{rate: rateK448, outputLen: 28, dsbyte: dsbyteSHA3} ++} ++ ++func new256Generic() *state { ++ return &state{rate: rateK512, outputLen: 32, dsbyte: dsbyteSHA3} ++} ++ ++func new384Generic() *state { ++ return &state{rate: rateK768, outputLen: 48, dsbyte: dsbyteSHA3} ++} ++ ++func new512Generic() *state { ++ return &state{rate: rateK1024, outputLen: 64, dsbyte: dsbyteSHA3} + } + + // NewLegacyKeccak256 creates a new Keccak-256 hash. + // + // Only use this function if you require compatibility with an existing cryptosystem + // that uses non-standard padding. All other users should use New256 instead. +-func NewLegacyKeccak256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x01} } ++func NewLegacyKeccak256() hash.Hash { ++ return &state{rate: rateK512, outputLen: 32, dsbyte: dsbyteKeccak} ++} + + // NewLegacyKeccak512 creates a new Keccak-512 hash. + // + // Only use this function if you require compatibility with an existing cryptosystem + // that uses non-standard padding. All other users should use New512 instead. +-func NewLegacyKeccak512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x01} } ++func NewLegacyKeccak512() hash.Hash { ++ return &state{rate: rateK1024, outputLen: 64, dsbyte: dsbyteKeccak} ++} + + // Sum224 returns the SHA3-224 digest of the data. + func Sum224(data []byte) (digest [28]byte) { +diff --git a/vendor/golang.org/x/crypto/sha3/hashes_generic.go b/vendor/golang.org/x/crypto/sha3/hashes_generic.go +deleted file mode 100644 +index fe8c84793c..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/hashes_generic.go ++++ /dev/null +@@ -1,27 +0,0 @@ +-// Copyright 2017 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !gc || purego || !s390x +- +-package sha3 +- +-import ( +- "hash" +-) +- +-// new224Asm returns an assembly implementation of SHA3-224 if available, +-// otherwise it returns nil. +-func new224Asm() hash.Hash { return nil } +- +-// new256Asm returns an assembly implementation of SHA3-256 if available, +-// otherwise it returns nil. +-func new256Asm() hash.Hash { return nil } +- +-// new384Asm returns an assembly implementation of SHA3-384 if available, +-// otherwise it returns nil. +-func new384Asm() hash.Hash { return nil } +- +-// new512Asm returns an assembly implementation of SHA3-512 if available, +-// otherwise it returns nil. +-func new512Asm() hash.Hash { return nil } +diff --git a/vendor/golang.org/x/crypto/sha3/hashes_noasm.go b/vendor/golang.org/x/crypto/sha3/hashes_noasm.go +new file mode 100644 +index 0000000000..9d85fb6214 +--- /dev/null ++++ b/vendor/golang.org/x/crypto/sha3/hashes_noasm.go +@@ -0,0 +1,23 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !gc || purego || !s390x ++ ++package sha3 ++ ++func new224() *state { ++ return new224Generic() ++} ++ ++func new256() *state { ++ return new256Generic() ++} ++ ++func new384() *state { ++ return new384Generic() ++} ++ ++func new512() *state { ++ return new512Generic() ++} +diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s +index 1f53938861..99e2f16e97 100644 +--- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s ++++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s +@@ -1,390 +1,5419 @@ +-// Copyright 2015 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// Code generated by command: go run keccakf_amd64_asm.go -out ../keccakf_amd64.s -pkg sha3. DO NOT EDIT. + + //go:build amd64 && !purego && gc + +-// This code was translated into a form compatible with 6a from the public +-// domain sources at https://github.com/gvanas/KeccakCodePackage +- +-// Offsets in state +-#define _ba (0*8) +-#define _be (1*8) +-#define _bi (2*8) +-#define _bo (3*8) +-#define _bu (4*8) +-#define _ga (5*8) +-#define _ge (6*8) +-#define _gi (7*8) +-#define _go (8*8) +-#define _gu (9*8) +-#define _ka (10*8) +-#define _ke (11*8) +-#define _ki (12*8) +-#define _ko (13*8) +-#define _ku (14*8) +-#define _ma (15*8) +-#define _me (16*8) +-#define _mi (17*8) +-#define _mo (18*8) +-#define _mu (19*8) +-#define _sa (20*8) +-#define _se (21*8) +-#define _si (22*8) +-#define _so (23*8) +-#define _su (24*8) +- +-// Temporary registers +-#define rT1 AX +- +-// Round vars +-#define rpState DI +-#define rpStack SP +- +-#define rDa BX +-#define rDe CX +-#define rDi DX +-#define rDo R8 +-#define rDu R9 +- +-#define rBa R10 +-#define rBe R11 +-#define rBi R12 +-#define rBo R13 +-#define rBu R14 +- +-#define rCa SI +-#define rCe BP +-#define rCi rBi +-#define rCo rBo +-#define rCu R15 +- +-#define MOVQ_RBI_RCE MOVQ rBi, rCe +-#define XORQ_RT1_RCA XORQ rT1, rCa +-#define XORQ_RT1_RCE XORQ rT1, rCe +-#define XORQ_RBA_RCU XORQ rBa, rCu +-#define XORQ_RBE_RCU XORQ rBe, rCu +-#define XORQ_RDU_RCU XORQ rDu, rCu +-#define XORQ_RDA_RCA XORQ rDa, rCa +-#define XORQ_RDE_RCE XORQ rDe, rCe +- +-#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ +- /* Prepare round */ \ +- MOVQ rCe, rDa; \ +- ROLQ $1, rDa; \ +- \ +- MOVQ _bi(iState), rCi; \ +- XORQ _gi(iState), rDi; \ +- XORQ rCu, rDa; \ +- XORQ _ki(iState), rCi; \ +- XORQ _mi(iState), rDi; \ +- XORQ rDi, rCi; \ +- \ +- MOVQ rCi, rDe; \ +- ROLQ $1, rDe; \ +- \ +- MOVQ _bo(iState), rCo; \ +- XORQ _go(iState), rDo; \ +- XORQ rCa, rDe; \ +- XORQ _ko(iState), rCo; \ +- XORQ _mo(iState), rDo; \ +- XORQ rDo, rCo; \ +- \ +- MOVQ rCo, rDi; \ +- ROLQ $1, rDi; \ +- \ +- MOVQ rCu, rDo; \ +- XORQ rCe, rDi; \ +- ROLQ $1, rDo; \ +- \ +- MOVQ rCa, rDu; \ +- XORQ rCi, rDo; \ +- ROLQ $1, rDu; \ +- \ +- /* Result b */ \ +- MOVQ _ba(iState), rBa; \ +- MOVQ _ge(iState), rBe; \ +- XORQ rCo, rDu; \ +- MOVQ _ki(iState), rBi; \ +- MOVQ _mo(iState), rBo; \ +- MOVQ _su(iState), rBu; \ +- XORQ rDe, rBe; \ +- ROLQ $44, rBe; \ +- XORQ rDi, rBi; \ +- XORQ rDa, rBa; \ +- ROLQ $43, rBi; \ +- \ +- MOVQ rBe, rCa; \ +- MOVQ rc, rT1; \ +- ORQ rBi, rCa; \ +- XORQ rBa, rT1; \ +- XORQ rT1, rCa; \ +- MOVQ rCa, _ba(oState); \ +- \ +- XORQ rDu, rBu; \ +- ROLQ $14, rBu; \ +- MOVQ rBa, rCu; \ +- ANDQ rBe, rCu; \ +- XORQ rBu, rCu; \ +- MOVQ rCu, _bu(oState); \ +- \ +- XORQ rDo, rBo; \ +- ROLQ $21, rBo; \ +- MOVQ rBo, rT1; \ +- ANDQ rBu, rT1; \ +- XORQ rBi, rT1; \ +- MOVQ rT1, _bi(oState); \ +- \ +- NOTQ rBi; \ +- ORQ rBa, rBu; \ +- ORQ rBo, rBi; \ +- XORQ rBo, rBu; \ +- XORQ rBe, rBi; \ +- MOVQ rBu, _bo(oState); \ +- MOVQ rBi, _be(oState); \ +- B_RBI_RCE; \ +- \ +- /* Result g */ \ +- MOVQ _gu(iState), rBe; \ +- XORQ rDu, rBe; \ +- MOVQ _ka(iState), rBi; \ +- ROLQ $20, rBe; \ +- XORQ rDa, rBi; \ +- ROLQ $3, rBi; \ +- MOVQ _bo(iState), rBa; \ +- MOVQ rBe, rT1; \ +- ORQ rBi, rT1; \ +- XORQ rDo, rBa; \ +- MOVQ _me(iState), rBo; \ +- MOVQ _si(iState), rBu; \ +- ROLQ $28, rBa; \ +- XORQ rBa, rT1; \ +- MOVQ rT1, _ga(oState); \ +- G_RT1_RCA; \ +- \ +- XORQ rDe, rBo; \ +- ROLQ $45, rBo; \ +- MOVQ rBi, rT1; \ +- ANDQ rBo, rT1; \ +- XORQ rBe, rT1; \ +- MOVQ rT1, _ge(oState); \ +- G_RT1_RCE; \ +- \ +- XORQ rDi, rBu; \ +- ROLQ $61, rBu; \ +- MOVQ rBu, rT1; \ +- ORQ rBa, rT1; \ +- XORQ rBo, rT1; \ +- MOVQ rT1, _go(oState); \ +- \ +- ANDQ rBe, rBa; \ +- XORQ rBu, rBa; \ +- MOVQ rBa, _gu(oState); \ +- NOTQ rBu; \ +- G_RBA_RCU; \ +- \ +- ORQ rBu, rBo; \ +- XORQ rBi, rBo; \ +- MOVQ rBo, _gi(oState); \ +- \ +- /* Result k */ \ +- MOVQ _be(iState), rBa; \ +- MOVQ _gi(iState), rBe; \ +- MOVQ _ko(iState), rBi; \ +- MOVQ _mu(iState), rBo; \ +- MOVQ _sa(iState), rBu; \ +- XORQ rDi, rBe; \ +- ROLQ $6, rBe; \ +- XORQ rDo, rBi; \ +- ROLQ $25, rBi; \ +- MOVQ rBe, rT1; \ +- ORQ rBi, rT1; \ +- XORQ rDe, rBa; \ +- ROLQ $1, rBa; \ +- XORQ rBa, rT1; \ +- MOVQ rT1, _ka(oState); \ +- K_RT1_RCA; \ +- \ +- XORQ rDu, rBo; \ +- ROLQ $8, rBo; \ +- MOVQ rBi, rT1; \ +- ANDQ rBo, rT1; \ +- XORQ rBe, rT1; \ +- MOVQ rT1, _ke(oState); \ +- K_RT1_RCE; \ +- \ +- XORQ rDa, rBu; \ +- ROLQ $18, rBu; \ +- NOTQ rBo; \ +- MOVQ rBo, rT1; \ +- ANDQ rBu, rT1; \ +- XORQ rBi, rT1; \ +- MOVQ rT1, _ki(oState); \ +- \ +- MOVQ rBu, rT1; \ +- ORQ rBa, rT1; \ +- XORQ rBo, rT1; \ +- MOVQ rT1, _ko(oState); \ +- \ +- ANDQ rBe, rBa; \ +- XORQ rBu, rBa; \ +- MOVQ rBa, _ku(oState); \ +- K_RBA_RCU; \ +- \ +- /* Result m */ \ +- MOVQ _ga(iState), rBe; \ +- XORQ rDa, rBe; \ +- MOVQ _ke(iState), rBi; \ +- ROLQ $36, rBe; \ +- XORQ rDe, rBi; \ +- MOVQ _bu(iState), rBa; \ +- ROLQ $10, rBi; \ +- MOVQ rBe, rT1; \ +- MOVQ _mi(iState), rBo; \ +- ANDQ rBi, rT1; \ +- XORQ rDu, rBa; \ +- MOVQ _so(iState), rBu; \ +- ROLQ $27, rBa; \ +- XORQ rBa, rT1; \ +- MOVQ rT1, _ma(oState); \ +- M_RT1_RCA; \ +- \ +- XORQ rDi, rBo; \ +- ROLQ $15, rBo; \ +- MOVQ rBi, rT1; \ +- ORQ rBo, rT1; \ +- XORQ rBe, rT1; \ +- MOVQ rT1, _me(oState); \ +- M_RT1_RCE; \ +- \ +- XORQ rDo, rBu; \ +- ROLQ $56, rBu; \ +- NOTQ rBo; \ +- MOVQ rBo, rT1; \ +- ORQ rBu, rT1; \ +- XORQ rBi, rT1; \ +- MOVQ rT1, _mi(oState); \ +- \ +- ORQ rBa, rBe; \ +- XORQ rBu, rBe; \ +- MOVQ rBe, _mu(oState); \ +- \ +- ANDQ rBa, rBu; \ +- XORQ rBo, rBu; \ +- MOVQ rBu, _mo(oState); \ +- M_RBE_RCU; \ +- \ +- /* Result s */ \ +- MOVQ _bi(iState), rBa; \ +- MOVQ _go(iState), rBe; \ +- MOVQ _ku(iState), rBi; \ +- XORQ rDi, rBa; \ +- MOVQ _ma(iState), rBo; \ +- ROLQ $62, rBa; \ +- XORQ rDo, rBe; \ +- MOVQ _se(iState), rBu; \ +- ROLQ $55, rBe; \ +- \ +- XORQ rDu, rBi; \ +- MOVQ rBa, rDu; \ +- XORQ rDe, rBu; \ +- ROLQ $2, rBu; \ +- ANDQ rBe, rDu; \ +- XORQ rBu, rDu; \ +- MOVQ rDu, _su(oState); \ +- \ +- ROLQ $39, rBi; \ +- S_RDU_RCU; \ +- NOTQ rBe; \ +- XORQ rDa, rBo; \ +- MOVQ rBe, rDa; \ +- ANDQ rBi, rDa; \ +- XORQ rBa, rDa; \ +- MOVQ rDa, _sa(oState); \ +- S_RDA_RCA; \ +- \ +- ROLQ $41, rBo; \ +- MOVQ rBi, rDe; \ +- ORQ rBo, rDe; \ +- XORQ rBe, rDe; \ +- MOVQ rDe, _se(oState); \ +- S_RDE_RCE; \ +- \ +- MOVQ rBo, rDi; \ +- MOVQ rBu, rDo; \ +- ANDQ rBu, rDi; \ +- ORQ rBa, rDo; \ +- XORQ rBi, rDi; \ +- XORQ rBo, rDo; \ +- MOVQ rDi, _si(oState); \ +- MOVQ rDo, _so(oState) \ +- + // func keccakF1600(a *[25]uint64) +-TEXT Β·keccakF1600(SB), 0, $200-8 +- MOVQ a+0(FP), rpState ++TEXT Β·keccakF1600(SB), $200-8 ++ MOVQ a+0(FP), DI + + // Convert the user state into an internal state +- NOTQ _be(rpState) +- NOTQ _bi(rpState) +- NOTQ _go(rpState) +- NOTQ _ki(rpState) +- NOTQ _mi(rpState) +- NOTQ _sa(rpState) ++ NOTQ 8(DI) ++ NOTQ 16(DI) ++ NOTQ 64(DI) ++ NOTQ 96(DI) ++ NOTQ 136(DI) ++ NOTQ 160(DI) + + // Execute the KeccakF permutation +- MOVQ _ba(rpState), rCa +- MOVQ _be(rpState), rCe +- MOVQ _bu(rpState), rCu +- +- XORQ _ga(rpState), rCa +- XORQ _ge(rpState), rCe +- XORQ _gu(rpState), rCu +- +- XORQ _ka(rpState), rCa +- XORQ _ke(rpState), rCe +- XORQ _ku(rpState), rCu +- +- XORQ _ma(rpState), rCa +- XORQ _me(rpState), rCe +- XORQ _mu(rpState), rCu +- +- XORQ _sa(rpState), rCa +- XORQ _se(rpState), rCe +- MOVQ _si(rpState), rDi +- MOVQ _so(rpState), rDo +- XORQ _su(rpState), rCu +- +- mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) +- mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) ++ MOVQ (DI), SI ++ MOVQ 8(DI), BP ++ MOVQ 32(DI), R15 ++ XORQ 40(DI), SI ++ XORQ 48(DI), BP ++ XORQ 72(DI), R15 ++ XORQ 80(DI), SI ++ XORQ 88(DI), BP ++ XORQ 112(DI), R15 ++ XORQ 120(DI), SI ++ XORQ 128(DI), BP ++ XORQ 152(DI), R15 ++ XORQ 160(DI), SI ++ XORQ 168(DI), BP ++ MOVQ 176(DI), DX ++ MOVQ 184(DI), R8 ++ XORQ 192(DI), R15 + +- // Revert the internal state to the user state +- NOTQ _be(rpState) +- NOTQ _bi(rpState) +- NOTQ _go(rpState) +- NOTQ _ki(rpState) +- NOTQ _mi(rpState) +- NOTQ _sa(rpState) ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000000000001, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000000008082, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x800000000000808a, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000080008000, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x000000000000808b, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000080000001, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000080008081, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000008009, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x000000000000008a, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000000000088, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000080008009, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x000000008000000a, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) + ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x000000008000808b, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x800000000000008b, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000008089, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000008003, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000008002, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000000080, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x000000000000800a, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x800000008000000a, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000080008081, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000000008080, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(DI), R12 ++ XORQ 56(DI), DX ++ XORQ R15, BX ++ XORQ 96(DI), R12 ++ XORQ 136(DI), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(DI), R13 ++ XORQ 64(DI), R8 ++ XORQ SI, CX ++ XORQ 104(DI), R13 ++ XORQ 144(DI), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (DI), R10 ++ MOVQ 48(DI), R11 ++ XORQ R13, R9 ++ MOVQ 96(DI), R12 ++ MOVQ 144(DI), R13 ++ MOVQ 192(DI), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x0000000080000001, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (SP) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(SP) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(SP) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(SP) ++ MOVQ R12, 8(SP) ++ MOVQ R12, BP ++ ++ // Result g ++ MOVQ 72(DI), R11 ++ XORQ R9, R11 ++ MOVQ 80(DI), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(DI), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(DI), R13 ++ MOVQ 176(DI), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(SP) ++ XORQ AX, SI ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(SP) ++ XORQ AX, BP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(SP) ++ NOTQ R14 ++ XORQ R10, R15 ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(SP) ++ ++ // Result k ++ MOVQ 8(DI), R10 ++ MOVQ 56(DI), R11 ++ MOVQ 104(DI), R12 ++ MOVQ 152(DI), R13 ++ MOVQ 160(DI), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(SP) ++ XORQ AX, SI ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(SP) ++ XORQ AX, BP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(SP) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(SP) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(SP) ++ XORQ R10, R15 ++ ++ // Result m ++ MOVQ 40(DI), R11 ++ XORQ BX, R11 ++ MOVQ 88(DI), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(DI), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(DI), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(DI), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(SP) ++ XORQ AX, SI ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(SP) ++ XORQ AX, BP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(SP) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(SP) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(SP) ++ XORQ R11, R15 ++ ++ // Result s ++ MOVQ 16(DI), R10 ++ MOVQ 64(DI), R11 ++ MOVQ 112(DI), R12 ++ XORQ DX, R10 ++ MOVQ 120(DI), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(DI), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(SP) ++ ROLQ $0x27, R12 ++ XORQ R9, R15 ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(SP) ++ XORQ BX, SI ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(SP) ++ XORQ CX, BP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(SP) ++ MOVQ R8, 184(SP) ++ ++ // Prepare round ++ MOVQ BP, BX ++ ROLQ $0x01, BX ++ MOVQ 16(SP), R12 ++ XORQ 56(SP), DX ++ XORQ R15, BX ++ XORQ 96(SP), R12 ++ XORQ 136(SP), DX ++ XORQ DX, R12 ++ MOVQ R12, CX ++ ROLQ $0x01, CX ++ MOVQ 24(SP), R13 ++ XORQ 64(SP), R8 ++ XORQ SI, CX ++ XORQ 104(SP), R13 ++ XORQ 144(SP), R8 ++ XORQ R8, R13 ++ MOVQ R13, DX ++ ROLQ $0x01, DX ++ MOVQ R15, R8 ++ XORQ BP, DX ++ ROLQ $0x01, R8 ++ MOVQ SI, R9 ++ XORQ R12, R8 ++ ROLQ $0x01, R9 ++ ++ // Result b ++ MOVQ (SP), R10 ++ MOVQ 48(SP), R11 ++ XORQ R13, R9 ++ MOVQ 96(SP), R12 ++ MOVQ 144(SP), R13 ++ MOVQ 192(SP), R14 ++ XORQ CX, R11 ++ ROLQ $0x2c, R11 ++ XORQ DX, R12 ++ XORQ BX, R10 ++ ROLQ $0x2b, R12 ++ MOVQ R11, SI ++ MOVQ $0x8000000080008008, AX ++ ORQ R12, SI ++ XORQ R10, AX ++ XORQ AX, SI ++ MOVQ SI, (DI) ++ XORQ R9, R14 ++ ROLQ $0x0e, R14 ++ MOVQ R10, R15 ++ ANDQ R11, R15 ++ XORQ R14, R15 ++ MOVQ R15, 32(DI) ++ XORQ R8, R13 ++ ROLQ $0x15, R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 16(DI) ++ NOTQ R12 ++ ORQ R10, R14 ++ ORQ R13, R12 ++ XORQ R13, R14 ++ XORQ R11, R12 ++ MOVQ R14, 24(DI) ++ MOVQ R12, 8(DI) ++ NOP ++ ++ // Result g ++ MOVQ 72(SP), R11 ++ XORQ R9, R11 ++ MOVQ 80(SP), R12 ++ ROLQ $0x14, R11 ++ XORQ BX, R12 ++ ROLQ $0x03, R12 ++ MOVQ 24(SP), R10 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ R8, R10 ++ MOVQ 128(SP), R13 ++ MOVQ 176(SP), R14 ++ ROLQ $0x1c, R10 ++ XORQ R10, AX ++ MOVQ AX, 40(DI) ++ NOP ++ XORQ CX, R13 ++ ROLQ $0x2d, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 48(DI) ++ NOP ++ XORQ DX, R14 ++ ROLQ $0x3d, R14 ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 64(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 72(DI) ++ NOTQ R14 ++ NOP ++ ORQ R14, R13 ++ XORQ R12, R13 ++ MOVQ R13, 56(DI) ++ ++ // Result k ++ MOVQ 8(SP), R10 ++ MOVQ 56(SP), R11 ++ MOVQ 104(SP), R12 ++ MOVQ 152(SP), R13 ++ MOVQ 160(SP), R14 ++ XORQ DX, R11 ++ ROLQ $0x06, R11 ++ XORQ R8, R12 ++ ROLQ $0x19, R12 ++ MOVQ R11, AX ++ ORQ R12, AX ++ XORQ CX, R10 ++ ROLQ $0x01, R10 ++ XORQ R10, AX ++ MOVQ AX, 80(DI) ++ NOP ++ XORQ R9, R13 ++ ROLQ $0x08, R13 ++ MOVQ R12, AX ++ ANDQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 88(DI) ++ NOP ++ XORQ BX, R14 ++ ROLQ $0x12, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ANDQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 96(DI) ++ MOVQ R14, AX ++ ORQ R10, AX ++ XORQ R13, AX ++ MOVQ AX, 104(DI) ++ ANDQ R11, R10 ++ XORQ R14, R10 ++ MOVQ R10, 112(DI) ++ NOP ++ ++ // Result m ++ MOVQ 40(SP), R11 ++ XORQ BX, R11 ++ MOVQ 88(SP), R12 ++ ROLQ $0x24, R11 ++ XORQ CX, R12 ++ MOVQ 32(SP), R10 ++ ROLQ $0x0a, R12 ++ MOVQ R11, AX ++ MOVQ 136(SP), R13 ++ ANDQ R12, AX ++ XORQ R9, R10 ++ MOVQ 184(SP), R14 ++ ROLQ $0x1b, R10 ++ XORQ R10, AX ++ MOVQ AX, 120(DI) ++ NOP ++ XORQ DX, R13 ++ ROLQ $0x0f, R13 ++ MOVQ R12, AX ++ ORQ R13, AX ++ XORQ R11, AX ++ MOVQ AX, 128(DI) ++ NOP ++ XORQ R8, R14 ++ ROLQ $0x38, R14 ++ NOTQ R13 ++ MOVQ R13, AX ++ ORQ R14, AX ++ XORQ R12, AX ++ MOVQ AX, 136(DI) ++ ORQ R10, R11 ++ XORQ R14, R11 ++ MOVQ R11, 152(DI) ++ ANDQ R10, R14 ++ XORQ R13, R14 ++ MOVQ R14, 144(DI) ++ NOP ++ ++ // Result s ++ MOVQ 16(SP), R10 ++ MOVQ 64(SP), R11 ++ MOVQ 112(SP), R12 ++ XORQ DX, R10 ++ MOVQ 120(SP), R13 ++ ROLQ $0x3e, R10 ++ XORQ R8, R11 ++ MOVQ 168(SP), R14 ++ ROLQ $0x37, R11 ++ XORQ R9, R12 ++ MOVQ R10, R9 ++ XORQ CX, R14 ++ ROLQ $0x02, R14 ++ ANDQ R11, R9 ++ XORQ R14, R9 ++ MOVQ R9, 192(DI) ++ ROLQ $0x27, R12 ++ NOP ++ NOTQ R11 ++ XORQ BX, R13 ++ MOVQ R11, BX ++ ANDQ R12, BX ++ XORQ R10, BX ++ MOVQ BX, 160(DI) ++ NOP ++ ROLQ $0x29, R13 ++ MOVQ R12, CX ++ ORQ R13, CX ++ XORQ R11, CX ++ MOVQ CX, 168(DI) ++ NOP ++ MOVQ R13, DX ++ MOVQ R14, R8 ++ ANDQ R14, DX ++ ORQ R10, R8 ++ XORQ R12, DX ++ XORQ R13, R8 ++ MOVQ DX, 176(DI) ++ MOVQ R8, 184(DI) ++ ++ // Revert the internal state to the user state ++ NOTQ 8(DI) ++ NOTQ 16(DI) ++ NOTQ 64(DI) ++ NOTQ 96(DI) ++ NOTQ 136(DI) ++ NOTQ 160(DI) + RET +diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go +deleted file mode 100644 +index addfd5049b..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/register.go ++++ /dev/null +@@ -1,18 +0,0 @@ +-// Copyright 2014 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.4 +- +-package sha3 +- +-import ( +- "crypto" +-) +- +-func init() { +- crypto.RegisterHash(crypto.SHA3_224, New224) +- crypto.RegisterHash(crypto.SHA3_256, New256) +- crypto.RegisterHash(crypto.SHA3_384, New384) +- crypto.RegisterHash(crypto.SHA3_512, New512) +-} +diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go +index 4884d172a4..6658c44479 100644 +--- a/vendor/golang.org/x/crypto/sha3/sha3.go ++++ b/vendor/golang.org/x/crypto/sha3/sha3.go +@@ -4,6 +4,15 @@ + + package sha3 + ++import ( ++ "crypto/subtle" ++ "encoding/binary" ++ "errors" ++ "unsafe" ++ ++ "golang.org/x/sys/cpu" ++) ++ + // spongeDirection indicates the direction bytes are flowing through the sponge. + type spongeDirection int + +@@ -14,17 +23,13 @@ const ( + spongeSqueezing + ) + +-const ( +- // maxRate is the maximum size of the internal buffer. SHAKE-256 +- // currently needs the largest buffer. +- maxRate = 168 +-) +- + type state struct { +- // Generic sponge components. +- a [25]uint64 // main state of the hash +- buf []byte // points into storage +- rate int // the number of bytes of state to use ++ a [1600 / 8]byte // main state of the hash ++ ++ // a[n:rate] is the buffer. If absorbing, it's the remaining space to XOR ++ // into before running the permutation. If squeezing, it's the remaining ++ // output to produce before running the permutation. ++ n, rate int + + // dsbyte contains the "domain separation" bits and the first bit of + // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the +@@ -40,9 +45,6 @@ type state struct { + // Extendable-Output Functions (May 2014)" + dsbyte byte + +- storage storageBuf +- +- // Specific to SHA-3 and SHAKE. + outputLen int // the default output size in bytes + state spongeDirection // whether the sponge is absorbing or squeezing + } +@@ -54,103 +56,77 @@ func (d *state) BlockSize() int { return d.rate } + func (d *state) Size() int { return d.outputLen } + + // Reset clears the internal state by zeroing the sponge state and +-// the byte buffer, and setting Sponge.state to absorbing. ++// the buffer indexes, and setting Sponge.state to absorbing. + func (d *state) Reset() { + // Zero the permutation's state. + for i := range d.a { + d.a[i] = 0 + } + d.state = spongeAbsorbing +- d.buf = d.storage.asBytes()[:0] ++ d.n = 0 + } + + func (d *state) clone() *state { + ret := *d +- if ret.state == spongeAbsorbing { +- ret.buf = ret.storage.asBytes()[:len(ret.buf)] +- } else { +- ret.buf = ret.storage.asBytes()[d.rate-cap(d.buf) : d.rate] +- } +- + return &ret + } + +-// permute applies the KeccakF-1600 permutation. It handles +-// any input-output buffering. ++// permute applies the KeccakF-1600 permutation. + func (d *state) permute() { +- switch d.state { +- case spongeAbsorbing: +- // If we're absorbing, we need to xor the input into the state +- // before applying the permutation. +- xorIn(d, d.buf) +- d.buf = d.storage.asBytes()[:0] +- keccakF1600(&d.a) +- case spongeSqueezing: +- // If we're squeezing, we need to apply the permutation before +- // copying more output. +- keccakF1600(&d.a) +- d.buf = d.storage.asBytes()[:d.rate] +- copyOut(d, d.buf) ++ var a *[25]uint64 ++ if cpu.IsBigEndian { ++ a = new([25]uint64) ++ for i := range a { ++ a[i] = binary.LittleEndian.Uint64(d.a[i*8:]) ++ } ++ } else { ++ a = (*[25]uint64)(unsafe.Pointer(&d.a)) ++ } ++ ++ keccakF1600(a) ++ d.n = 0 ++ ++ if cpu.IsBigEndian { ++ for i := range a { ++ binary.LittleEndian.PutUint64(d.a[i*8:], a[i]) ++ } + } + } + + // pads appends the domain separation bits in dsbyte, applies + // the multi-bitrate 10..1 padding rule, and permutes the state. +-func (d *state) padAndPermute(dsbyte byte) { +- if d.buf == nil { +- d.buf = d.storage.asBytes()[:0] +- } ++func (d *state) padAndPermute() { + // Pad with this instance's domain-separator bits. We know that there's +- // at least one byte of space in d.buf because, if it were full, ++ // at least one byte of space in the sponge because, if it were full, + // permute would have been called to empty it. dsbyte also contains the + // first one bit for the padding. See the comment in the state struct. +- d.buf = append(d.buf, dsbyte) +- zerosStart := len(d.buf) +- d.buf = d.storage.asBytes()[:d.rate] +- for i := zerosStart; i < d.rate; i++ { +- d.buf[i] = 0 +- } ++ d.a[d.n] ^= d.dsbyte + // This adds the final one bit for the padding. Because of the way that + // bits are numbered from the LSB upwards, the final bit is the MSB of + // the last byte. +- d.buf[d.rate-1] ^= 0x80 ++ d.a[d.rate-1] ^= 0x80 + // Apply the permutation + d.permute() + d.state = spongeSqueezing +- d.buf = d.storage.asBytes()[:d.rate] +- copyOut(d, d.buf) + } + + // Write absorbs more data into the hash's state. It panics if any + // output has already been read. +-func (d *state) Write(p []byte) (written int, err error) { ++func (d *state) Write(p []byte) (n int, err error) { + if d.state != spongeAbsorbing { + panic("sha3: Write after Read") + } +- if d.buf == nil { +- d.buf = d.storage.asBytes()[:0] +- } +- written = len(p) ++ ++ n = len(p) + + for len(p) > 0 { +- if len(d.buf) == 0 && len(p) >= d.rate { +- // The fast path; absorb a full "rate" bytes of input and apply the permutation. +- xorIn(d, p[:d.rate]) +- p = p[d.rate:] +- keccakF1600(&d.a) +- } else { +- // The slow path; buffer the input until we can fill the sponge, and then xor it in. +- todo := d.rate - len(d.buf) +- if todo > len(p) { +- todo = len(p) +- } +- d.buf = append(d.buf, p[:todo]...) +- p = p[todo:] +- +- // If the sponge is full, apply the permutation. +- if len(d.buf) == d.rate { +- d.permute() +- } ++ x := subtle.XORBytes(d.a[d.n:d.rate], d.a[d.n:d.rate], p) ++ d.n += x ++ p = p[x:] ++ ++ // If the sponge is full, apply the permutation. ++ if d.n == d.rate { ++ d.permute() + } + } + +@@ -161,21 +137,21 @@ func (d *state) Write(p []byte) (written int, err error) { + func (d *state) Read(out []byte) (n int, err error) { + // If we're still absorbing, pad and apply the permutation. + if d.state == spongeAbsorbing { +- d.padAndPermute(d.dsbyte) ++ d.padAndPermute() + } + + n = len(out) + + // Now, do the squeezing. + for len(out) > 0 { +- n := copy(out, d.buf) +- d.buf = d.buf[n:] +- out = out[n:] +- + // Apply the permutation if we've squeezed the sponge dry. +- if len(d.buf) == 0 { ++ if d.n == d.rate { + d.permute() + } ++ ++ x := copy(out, d.a[d.n:d.rate]) ++ d.n += x ++ out = out[x:] + } + + return +@@ -195,3 +171,74 @@ func (d *state) Sum(in []byte) []byte { + dup.Read(hash) + return append(in, hash...) + } ++ ++const ( ++ magicSHA3 = "sha\x08" ++ magicShake = "sha\x09" ++ magicCShake = "sha\x0a" ++ magicKeccak = "sha\x0b" ++ // magic || rate || main state || n || sponge direction ++ marshaledSize = len(magicSHA3) + 1 + 200 + 1 + 1 ++) ++ ++func (d *state) MarshalBinary() ([]byte, error) { ++ return d.AppendBinary(make([]byte, 0, marshaledSize)) ++} ++ ++func (d *state) AppendBinary(b []byte) ([]byte, error) { ++ switch d.dsbyte { ++ case dsbyteSHA3: ++ b = append(b, magicSHA3...) ++ case dsbyteShake: ++ b = append(b, magicShake...) ++ case dsbyteCShake: ++ b = append(b, magicCShake...) ++ case dsbyteKeccak: ++ b = append(b, magicKeccak...) ++ default: ++ panic("unknown dsbyte") ++ } ++ // rate is at most 168, and n is at most rate. ++ b = append(b, byte(d.rate)) ++ b = append(b, d.a[:]...) ++ b = append(b, byte(d.n), byte(d.state)) ++ return b, nil ++} ++ ++func (d *state) UnmarshalBinary(b []byte) error { ++ if len(b) != marshaledSize { ++ return errors.New("sha3: invalid hash state") ++ } ++ ++ magic := string(b[:len(magicSHA3)]) ++ b = b[len(magicSHA3):] ++ switch { ++ case magic == magicSHA3 && d.dsbyte == dsbyteSHA3: ++ case magic == magicShake && d.dsbyte == dsbyteShake: ++ case magic == magicCShake && d.dsbyte == dsbyteCShake: ++ case magic == magicKeccak && d.dsbyte == dsbyteKeccak: ++ default: ++ return errors.New("sha3: invalid hash state identifier") ++ } ++ ++ rate := int(b[0]) ++ b = b[1:] ++ if rate != d.rate { ++ return errors.New("sha3: invalid hash state function") ++ } ++ ++ copy(d.a[:], b) ++ b = b[len(d.a):] ++ ++ n, state := int(b[0]), spongeDirection(b[1]) ++ if n > d.rate { ++ return errors.New("sha3: invalid hash state") ++ } ++ d.n = n ++ if state != spongeAbsorbing && state != spongeSqueezing { ++ return errors.New("sha3: invalid hash state") ++ } ++ d.state = state ++ ++ return nil ++} +diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +index d861bca528..00d8034ae6 100644 +--- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go ++++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +@@ -143,6 +143,12 @@ func (s *asmState) Write(b []byte) (int, error) { + + // Read squeezes an arbitrary number of bytes from the sponge. + func (s *asmState) Read(out []byte) (n int, err error) { ++ // The 'compute last message digest' instruction only stores the digest ++ // at the first operand (dst) for SHAKE functions. ++ if s.function != shake_128 && s.function != shake_256 { ++ panic("sha3: can only call Read for SHAKE functions") ++ } ++ + n = len(out) + + // need to pad if we were absorbing +@@ -202,8 +208,17 @@ func (s *asmState) Sum(b []byte) []byte { + + // Hash the buffer. Note that we don't clear it because we + // aren't updating the state. +- klmd(s.function, &a, nil, s.buf) +- return append(b, a[:s.outputLen]...) ++ switch s.function { ++ case sha3_224, sha3_256, sha3_384, sha3_512: ++ klmd(s.function, &a, nil, s.buf) ++ return append(b, a[:s.outputLen]...) ++ case shake_128, shake_256: ++ d := make([]byte, s.outputLen, 64) ++ klmd(s.function, &a, d, s.buf) ++ return append(b, d[:s.outputLen]...) ++ default: ++ panic("sha3: unknown function") ++ } + } + + // Reset resets the Hash to its initial state. +@@ -233,56 +248,56 @@ func (s *asmState) Clone() ShakeHash { + return s.clone() + } + +-// new224Asm returns an assembly implementation of SHA3-224 if available, +-// otherwise it returns nil. +-func new224Asm() hash.Hash { ++// new224 returns an assembly implementation of SHA3-224 if available, ++// otherwise it returns a generic implementation. ++func new224() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_224) + } +- return nil ++ return new224Generic() + } + +-// new256Asm returns an assembly implementation of SHA3-256 if available, +-// otherwise it returns nil. +-func new256Asm() hash.Hash { ++// new256 returns an assembly implementation of SHA3-256 if available, ++// otherwise it returns a generic implementation. ++func new256() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_256) + } +- return nil ++ return new256Generic() + } + +-// new384Asm returns an assembly implementation of SHA3-384 if available, +-// otherwise it returns nil. +-func new384Asm() hash.Hash { ++// new384 returns an assembly implementation of SHA3-384 if available, ++// otherwise it returns a generic implementation. ++func new384() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_384) + } +- return nil ++ return new384Generic() + } + +-// new512Asm returns an assembly implementation of SHA3-512 if available, +-// otherwise it returns nil. +-func new512Asm() hash.Hash { ++// new512 returns an assembly implementation of SHA3-512 if available, ++// otherwise it returns a generic implementation. ++func new512() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_512) + } +- return nil ++ return new512Generic() + } + +-// newShake128Asm returns an assembly implementation of SHAKE-128 if available, +-// otherwise it returns nil. +-func newShake128Asm() ShakeHash { ++// newShake128 returns an assembly implementation of SHAKE-128 if available, ++// otherwise it returns a generic implementation. ++func newShake128() ShakeHash { + if cpu.S390X.HasSHA3 { + return newAsmState(shake_128) + } +- return nil ++ return newShake128Generic() + } + +-// newShake256Asm returns an assembly implementation of SHAKE-256 if available, +-// otherwise it returns nil. +-func newShake256Asm() ShakeHash { ++// newShake256 returns an assembly implementation of SHAKE-256 if available, ++// otherwise it returns a generic implementation. ++func newShake256() ShakeHash { + if cpu.S390X.HasSHA3 { + return newAsmState(shake_256) + } +- return nil ++ return newShake256Generic() + } +diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go +index bb69984027..a6b3a4281f 100644 +--- a/vendor/golang.org/x/crypto/sha3/shake.go ++++ b/vendor/golang.org/x/crypto/sha3/shake.go +@@ -16,9 +16,12 @@ package sha3 + // [2] https://doi.org/10.6028/NIST.SP.800-185 + + import ( ++ "bytes" + "encoding/binary" ++ "errors" + "hash" + "io" ++ "math/bits" + ) + + // ShakeHash defines the interface to hash functions that support +@@ -50,44 +53,36 @@ type cshakeState struct { + initBlock []byte + } + +-// Consts for configuring initial SHA-3 state +-const ( +- dsbyteShake = 0x1f +- dsbyteCShake = 0x04 +- rate128 = 168 +- rate256 = 136 +-) ++func bytepad(data []byte, rate int) []byte { ++ out := make([]byte, 0, 9+len(data)+rate-1) ++ out = append(out, leftEncode(uint64(rate))...) ++ out = append(out, data...) ++ if padlen := rate - len(out)%rate; padlen < rate { ++ out = append(out, make([]byte, padlen)...) ++ } ++ return out ++} + +-func bytepad(input []byte, w int) []byte { +- // leftEncode always returns max 9 bytes +- buf := make([]byte, 0, 9+len(input)+w) +- buf = append(buf, leftEncode(uint64(w))...) +- buf = append(buf, input...) +- padlen := w - (len(buf) % w) +- return append(buf, make([]byte, padlen)...) +-} +- +-func leftEncode(value uint64) []byte { +- var b [9]byte +- binary.BigEndian.PutUint64(b[1:], value) +- // Trim all but last leading zero bytes +- i := byte(1) +- for i < 8 && b[i] == 0 { +- i++ ++func leftEncode(x uint64) []byte { ++ // Let n be the smallest positive integer for which 2^(8n) > x. ++ n := (bits.Len64(x) + 7) / 8 ++ if n == 0 { ++ n = 1 + } +- // Prepend number of encoded bytes +- b[i-1] = 9 - i +- return b[i-1:] ++ // Return n || x with n as a byte and x an n bytes in big-endian order. ++ b := make([]byte, 9) ++ binary.BigEndian.PutUint64(b[1:], x) ++ b = b[9-n-1:] ++ b[0] = byte(n) ++ return b + } + + func newCShake(N, S []byte, rate, outputLen int, dsbyte byte) ShakeHash { + c := cshakeState{state: &state{rate: rate, outputLen: outputLen, dsbyte: dsbyte}} +- +- // leftEncode returns max 9 bytes +- c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) +- c.initBlock = append(c.initBlock, leftEncode(uint64(len(N)*8))...) ++ c.initBlock = make([]byte, 0, 9+len(N)+9+len(S)) // leftEncode returns max 9 bytes ++ c.initBlock = append(c.initBlock, leftEncode(uint64(len(N))*8)...) + c.initBlock = append(c.initBlock, N...) +- c.initBlock = append(c.initBlock, leftEncode(uint64(len(S)*8))...) ++ c.initBlock = append(c.initBlock, leftEncode(uint64(len(S))*8)...) + c.initBlock = append(c.initBlock, S...) + c.Write(bytepad(c.initBlock, c.rate)) + return &c +@@ -111,24 +106,50 @@ func (c *state) Clone() ShakeHash { + return c.clone() + } + ++func (c *cshakeState) MarshalBinary() ([]byte, error) { ++ return c.AppendBinary(make([]byte, 0, marshaledSize+len(c.initBlock))) ++} ++ ++func (c *cshakeState) AppendBinary(b []byte) ([]byte, error) { ++ b, err := c.state.AppendBinary(b) ++ if err != nil { ++ return nil, err ++ } ++ b = append(b, c.initBlock...) ++ return b, nil ++} ++ ++func (c *cshakeState) UnmarshalBinary(b []byte) error { ++ if len(b) <= marshaledSize { ++ return errors.New("sha3: invalid hash state") ++ } ++ if err := c.state.UnmarshalBinary(b[:marshaledSize]); err != nil { ++ return err ++ } ++ c.initBlock = bytes.Clone(b[marshaledSize:]) ++ return nil ++} ++ + // NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. + // Its generic security strength is 128 bits against all attacks if at + // least 32 bytes of its output are used. + func NewShake128() ShakeHash { +- if h := newShake128Asm(); h != nil { +- return h +- } +- return &state{rate: rate128, outputLen: 32, dsbyte: dsbyteShake} ++ return newShake128() + } + + // NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. + // Its generic security strength is 256 bits against all attacks if + // at least 64 bytes of its output are used. + func NewShake256() ShakeHash { +- if h := newShake256Asm(); h != nil { +- return h +- } +- return &state{rate: rate256, outputLen: 64, dsbyte: dsbyteShake} ++ return newShake256() ++} ++ ++func newShake128Generic() *state { ++ return &state{rate: rateK256, outputLen: 32, dsbyte: dsbyteShake} ++} ++ ++func newShake256Generic() *state { ++ return &state{rate: rateK512, outputLen: 64, dsbyte: dsbyteShake} + } + + // NewCShake128 creates a new instance of cSHAKE128 variable-output-length ShakeHash, +@@ -141,7 +162,7 @@ func NewCShake128(N, S []byte) ShakeHash { + if len(N) == 0 && len(S) == 0 { + return NewShake128() + } +- return newCShake(N, S, rate128, 32, dsbyteCShake) ++ return newCShake(N, S, rateK256, 32, dsbyteCShake) + } + + // NewCShake256 creates a new instance of cSHAKE256 variable-output-length ShakeHash, +@@ -154,7 +175,7 @@ func NewCShake256(N, S []byte) ShakeHash { + if len(N) == 0 && len(S) == 0 { + return NewShake256() + } +- return newCShake(N, S, rate256, 64, dsbyteCShake) ++ return newCShake(N, S, rateK512, 64, dsbyteCShake) + } + + // ShakeSum128 writes an arbitrary-length digest of data into hash. +diff --git a/vendor/golang.org/x/crypto/sha3/shake_generic.go b/vendor/golang.org/x/crypto/sha3/shake_generic.go +deleted file mode 100644 +index 8d31cf5be2..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/shake_generic.go ++++ /dev/null +@@ -1,19 +0,0 @@ +-// Copyright 2017 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !gc || purego || !s390x +- +-package sha3 +- +-// newShake128Asm returns an assembly implementation of SHAKE-128 if available, +-// otherwise it returns nil. +-func newShake128Asm() ShakeHash { +- return nil +-} +- +-// newShake256Asm returns an assembly implementation of SHAKE-256 if available, +-// otherwise it returns nil. +-func newShake256Asm() ShakeHash { +- return nil +-} +diff --git a/vendor/golang.org/x/crypto/sha3/shake_noasm.go b/vendor/golang.org/x/crypto/sha3/shake_noasm.go +new file mode 100644 +index 0000000000..4276ba4ab2 +--- /dev/null ++++ b/vendor/golang.org/x/crypto/sha3/shake_noasm.go +@@ -0,0 +1,15 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !gc || purego || !s390x ++ ++package sha3 ++ ++func newShake128() *state { ++ return newShake128Generic() ++} ++ ++func newShake256() *state { ++ return newShake256Generic() ++} +diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go +deleted file mode 100644 +index 7337cca88e..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/xor.go ++++ /dev/null +@@ -1,23 +0,0 @@ +-// Copyright 2015 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build (!amd64 && !386 && !ppc64le) || purego +- +-package sha3 +- +-// A storageBuf is an aligned array of maxRate bytes. +-type storageBuf [maxRate]byte +- +-func (b *storageBuf) asBytes() *[maxRate]byte { +- return (*[maxRate]byte)(b) +-} +- +-var ( +- xorIn = xorInGeneric +- copyOut = copyOutGeneric +- xorInUnaligned = xorInGeneric +- copyOutUnaligned = copyOutGeneric +-) +- +-const xorImplementationUnaligned = "generic" +diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go +deleted file mode 100644 +index 8d94771127..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/xor_generic.go ++++ /dev/null +@@ -1,28 +0,0 @@ +-// Copyright 2015 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-package sha3 +- +-import "encoding/binary" +- +-// xorInGeneric xors the bytes in buf into the state; it +-// makes no non-portable assumptions about memory layout +-// or alignment. +-func xorInGeneric(d *state, buf []byte) { +- n := len(buf) / 8 +- +- for i := 0; i < n; i++ { +- a := binary.LittleEndian.Uint64(buf) +- d.a[i] ^= a +- buf = buf[8:] +- } +-} +- +-// copyOutGeneric copies uint64s to a byte buffer. +-func copyOutGeneric(d *state, b []byte) { +- for i := 0; len(b) >= 8; i++ { +- binary.LittleEndian.PutUint64(b, d.a[i]) +- b = b[8:] +- } +-} +diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go +deleted file mode 100644 +index 870e2d16e0..0000000000 +--- a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go ++++ /dev/null +@@ -1,66 +0,0 @@ +-// Copyright 2015 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build (amd64 || 386 || ppc64le) && !purego +- +-package sha3 +- +-import "unsafe" +- +-// A storageBuf is an aligned array of maxRate bytes. +-type storageBuf [maxRate / 8]uint64 +- +-func (b *storageBuf) asBytes() *[maxRate]byte { +- return (*[maxRate]byte)(unsafe.Pointer(b)) +-} +- +-// xorInUnaligned uses unaligned reads and writes to update d.a to contain d.a +-// XOR buf. +-func xorInUnaligned(d *state, buf []byte) { +- n := len(buf) +- bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] +- if n >= 72 { +- d.a[0] ^= bw[0] +- d.a[1] ^= bw[1] +- d.a[2] ^= bw[2] +- d.a[3] ^= bw[3] +- d.a[4] ^= bw[4] +- d.a[5] ^= bw[5] +- d.a[6] ^= bw[6] +- d.a[7] ^= bw[7] +- d.a[8] ^= bw[8] +- } +- if n >= 104 { +- d.a[9] ^= bw[9] +- d.a[10] ^= bw[10] +- d.a[11] ^= bw[11] +- d.a[12] ^= bw[12] +- } +- if n >= 136 { +- d.a[13] ^= bw[13] +- d.a[14] ^= bw[14] +- d.a[15] ^= bw[15] +- d.a[16] ^= bw[16] +- } +- if n >= 144 { +- d.a[17] ^= bw[17] +- } +- if n >= 168 { +- d.a[18] ^= bw[18] +- d.a[19] ^= bw[19] +- d.a[20] ^= bw[20] +- } +-} +- +-func copyOutUnaligned(d *state, buf []byte) { +- ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) +- copy(buf, ab[:]) +-} +- +-var ( +- xorIn = xorInUnaligned +- copyOut = copyOutUnaligned +-) +- +-const xorImplementationUnaligned = "unaligned" +diff --git a/vendor/golang.org/x/crypto/ssh/agent/client.go b/vendor/golang.org/x/crypto/ssh/agent/client.go +index fecba8eb38..106708d289 100644 +--- a/vendor/golang.org/x/crypto/ssh/agent/client.go ++++ b/vendor/golang.org/x/crypto/ssh/agent/client.go +@@ -10,7 +10,7 @@ + // References: + // + // [PROTOCOL.agent]: https://tools.ietf.org/html/draft-miller-ssh-agent-00 +-package agent // import "golang.org/x/crypto/ssh/agent" ++package agent + + import ( + "bytes" +diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring.go b/vendor/golang.org/x/crypto/ssh/agent/keyring.go +index 21bfa870fa..c1b4361087 100644 +--- a/vendor/golang.org/x/crypto/ssh/agent/keyring.go ++++ b/vendor/golang.org/x/crypto/ssh/agent/keyring.go +@@ -175,6 +175,15 @@ func (r *keyring) Add(key AddedKey) error { + p.expire = &t + } + ++ // If we already have a Signer with the same public key, replace it with the ++ // new one. ++ for idx, k := range r.keys { ++ if bytes.Equal(k.signer.PublicKey().Marshal(), p.signer.PublicKey().Marshal()) { ++ r.keys[idx] = p ++ return nil ++ } ++ } ++ + r.keys = append(r.keys, p) + + return nil +diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go +index 34bf089d0b..b86dde151d 100644 +--- a/vendor/golang.org/x/crypto/ssh/client_auth.go ++++ b/vendor/golang.org/x/crypto/ssh/client_auth.go +@@ -71,6 +71,10 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { + for auth := AuthMethod(new(noneAuth)); auth != nil; { + ok, methods, err := auth.auth(sessionID, config.User, c.transport, config.Rand, extensions) + if err != nil { ++ // On disconnect, return error immediately ++ if _, ok := err.(*disconnectMsg); ok { ++ return err ++ } + // We return the error later if there is no other method left to + // try. + ok = authFailure +@@ -404,10 +408,10 @@ func validateKey(key PublicKey, algo string, user string, c packetConn) (bool, e + return false, err + } + +- return confirmKeyAck(key, algo, c) ++ return confirmKeyAck(key, c) + } + +-func confirmKeyAck(key PublicKey, algo string, c packetConn) (bool, error) { ++func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { + pubKey := key.Marshal() + + for { +@@ -425,7 +429,15 @@ func confirmKeyAck(key PublicKey, algo string, c packetConn) (bool, error) { + if err := Unmarshal(packet, &msg); err != nil { + return false, err + } +- if msg.Algo != algo || !bytes.Equal(msg.PubKey, pubKey) { ++ // According to RFC 4252 Section 7 the algorithm in ++ // SSH_MSG_USERAUTH_PK_OK should match that of the request but some ++ // servers send the key type instead. OpenSSH allows any algorithm ++ // that matches the public key, so we do the same. ++ // https://github.com/openssh/openssh-portable/blob/86bdd385/sshconnect2.c#L709 ++ if !contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { ++ return false, nil ++ } ++ if !bytes.Equal(msg.PubKey, pubKey) { + return false, nil + } + return true, nil +@@ -543,6 +555,7 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe + } + + gotMsgExtInfo := false ++ gotUserAuthInfoRequest := false + for { + packet, err := c.readPacket() + if err != nil { +@@ -573,6 +586,9 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe + if msg.PartialSuccess { + return authPartialSuccess, msg.Methods, nil + } ++ if !gotUserAuthInfoRequest { ++ return authFailure, msg.Methods, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) ++ } + return authFailure, msg.Methods, nil + case msgUserAuthSuccess: + return authSuccess, nil, nil +@@ -584,6 +600,7 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe + if err := Unmarshal(packet, &msg); err != nil { + return authFailure, nil, err + } ++ gotUserAuthInfoRequest = true + + // Manually unpack the prompt/echo pairs. + rest := msg.Prompts +diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go +index edbe63340d..f5d352fe3a 100644 +--- a/vendor/golang.org/x/crypto/ssh/doc.go ++++ b/vendor/golang.org/x/crypto/ssh/doc.go +@@ -20,4 +20,4 @@ References: + This package does not fall under the stability promise of the Go language itself, + so its API may be changed when pressing needs arise. + */ +-package ssh // import "golang.org/x/crypto/ssh" ++package ssh +diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go +index 56cdc7c21c..c9202b05da 100644 +--- a/vendor/golang.org/x/crypto/ssh/handshake.go ++++ b/vendor/golang.org/x/crypto/ssh/handshake.go +@@ -25,6 +25,11 @@ const debugHandshake = false + // quickly. + const chanSize = 16 + ++// maxPendingPackets sets the maximum number of packets to queue while waiting ++// for KEX to complete. This limits the total pending data to maxPendingPackets ++// * maxPacket bytes, which is ~16.8MB. ++const maxPendingPackets = 64 ++ + // keyingTransport is a packet based transport that supports key + // changes. It need not be thread-safe. It should pass through + // msgNewKeys in both directions. +@@ -73,13 +78,22 @@ type handshakeTransport struct { + incoming chan []byte + readError error + +- mu sync.Mutex +- writeError error +- sentInitPacket []byte +- sentInitMsg *kexInitMsg +- pendingPackets [][]byte // Used when a key exchange is in progress. ++ mu sync.Mutex ++ // Condition for the above mutex. It is used to notify a completed key ++ // exchange or a write failure. Writes can wait for this condition while a ++ // key exchange is in progress. ++ writeCond *sync.Cond ++ writeError error ++ sentInitPacket []byte ++ sentInitMsg *kexInitMsg ++ // Used to queue writes when a key exchange is in progress. The length is ++ // limited by pendingPacketsSize. Once full, writes will block until the key ++ // exchange is completed or an error occurs. If not empty, it is emptied ++ // all at once when the key exchange is completed in kexLoop. ++ pendingPackets [][]byte + writePacketsLeft uint32 + writeBytesLeft int64 ++ userAuthComplete bool // whether the user authentication phase is complete + + // If the read loop wants to schedule a kex, it pings this + // channel, and the write loop will send out a kex +@@ -133,6 +147,7 @@ func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, + + config: config, + } ++ t.writeCond = sync.NewCond(&t.mu) + t.resetReadThresholds() + t.resetWriteThresholds() + +@@ -259,6 +274,7 @@ func (t *handshakeTransport) recordWriteError(err error) { + defer t.mu.Unlock() + if t.writeError == nil && err != nil { + t.writeError = err ++ t.writeCond.Broadcast() + } + } + +@@ -362,6 +378,8 @@ write: + } + } + t.pendingPackets = t.pendingPackets[:0] ++ // Unblock writePacket if waiting for KEX. ++ t.writeCond.Broadcast() + t.mu.Unlock() + } + +@@ -552,26 +570,44 @@ func (t *handshakeTransport) sendKexInit() error { + return nil + } + ++var errSendBannerPhase = errors.New("ssh: SendAuthBanner outside of authentication phase") ++ + func (t *handshakeTransport) writePacket(p []byte) error { ++ t.mu.Lock() ++ defer t.mu.Unlock() ++ + switch p[0] { + case msgKexInit: + return errors.New("ssh: only handshakeTransport can send kexInit") + case msgNewKeys: + return errors.New("ssh: only handshakeTransport can send newKeys") ++ case msgUserAuthBanner: ++ if t.userAuthComplete { ++ return errSendBannerPhase ++ } ++ case msgUserAuthSuccess: ++ t.userAuthComplete = true + } + +- t.mu.Lock() +- defer t.mu.Unlock() + if t.writeError != nil { + return t.writeError + } + + if t.sentInitMsg != nil { +- // Copy the packet so the writer can reuse the buffer. +- cp := make([]byte, len(p)) +- copy(cp, p) +- t.pendingPackets = append(t.pendingPackets, cp) +- return nil ++ if len(t.pendingPackets) < maxPendingPackets { ++ // Copy the packet so the writer can reuse the buffer. ++ cp := make([]byte, len(p)) ++ copy(cp, p) ++ t.pendingPackets = append(t.pendingPackets, cp) ++ return nil ++ } ++ for t.sentInitMsg != nil { ++ // Block and wait for KEX to complete or an error. ++ t.writeCond.Wait() ++ if t.writeError != nil { ++ return t.writeError ++ } ++ } + } + + if t.writeBytesLeft > 0 { +@@ -588,6 +624,7 @@ func (t *handshakeTransport) writePacket(p []byte) error { + + if err := t.pushPacket(p); err != nil { + t.writeError = err ++ t.writeCond.Broadcast() + } + + return nil +diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go +index df4ebdada5..98e6706d5d 100644 +--- a/vendor/golang.org/x/crypto/ssh/keys.go ++++ b/vendor/golang.org/x/crypto/ssh/keys.go +@@ -488,7 +488,49 @@ func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { + h := hash.New() + h.Write(data) + digest := h.Sum(nil) +- return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), hash, digest, sig.Blob) ++ ++ // Signatures in PKCS1v15 must match the key's modulus in ++ // length. However with SSH, some signers provide RSA ++ // signatures which are missing the MSB 0's of the bignum ++ // represented. With ssh-rsa signatures, this is encouraged by ++ // the spec (even though e.g. OpenSSH will give the full ++ // length unconditionally). With rsa-sha2-* signatures, the ++ // verifier is allowed to support these, even though they are ++ // out of spec. See RFC 4253 Section 6.6 for ssh-rsa and RFC ++ // 8332 Section 3 for rsa-sha2-* details. ++ // ++ // In practice: ++ // * OpenSSH always allows "short" signatures: ++ // https://github.com/openssh/openssh-portable/blob/V_9_8_P1/ssh-rsa.c#L526 ++ // but always generates padded signatures: ++ // https://github.com/openssh/openssh-portable/blob/V_9_8_P1/ssh-rsa.c#L439 ++ // ++ // * PuTTY versions 0.81 and earlier will generate short ++ // signatures for all RSA signature variants. Note that ++ // PuTTY is embedded in other software, such as WinSCP and ++ // FileZilla. At the time of writing, a patch has been ++ // applied to PuTTY to generate padded signatures for ++ // rsa-sha2-*, but not yet released: ++ // https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=a5bcf3d384e1bf15a51a6923c3724cbbee022d8e ++ // ++ // * SSH.NET versions 2024.0.0 and earlier will generate short ++ // signatures for all RSA signature variants, fixed in 2024.1.0: ++ // https://github.com/sshnet/SSH.NET/releases/tag/2024.1.0 ++ // ++ // As a result, we pad these up to the key size by inserting ++ // leading 0's. ++ // ++ // Note that support for short signatures with rsa-sha2-* may ++ // be removed in the future due to such signatures not being ++ // allowed by the spec. ++ blob := sig.Blob ++ keySize := (*rsa.PublicKey)(r).Size() ++ if len(blob) < keySize { ++ padded := make([]byte, keySize) ++ copy(padded[keySize-len(blob):], blob) ++ blob = padded ++ } ++ return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), hash, digest, blob) + } + + func (r *rsaPublicKey) CryptoPublicKey() crypto.PublicKey { +@@ -904,6 +946,10 @@ func (k *skECDSAPublicKey) Verify(data []byte, sig *Signature) error { + return errors.New("ssh: signature did not verify") + } + ++func (k *skECDSAPublicKey) CryptoPublicKey() crypto.PublicKey { ++ return &k.PublicKey ++} ++ + type skEd25519PublicKey struct { + // application is a URL-like string, typically "ssh:" for SSH. + // see openssh/PROTOCOL.u2f for details. +@@ -1000,6 +1046,10 @@ func (k *skEd25519PublicKey) Verify(data []byte, sig *Signature) error { + return nil + } + ++func (k *skEd25519PublicKey) CryptoPublicKey() crypto.PublicKey { ++ return k.PublicKey ++} ++ + // NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, + // *ecdsa.PrivateKey or any other crypto.Signer and returns a + // corresponding Signer instance. ECDSA keys must use P-256, P-384 or +diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go +index c2dfe3268c..1839ddc6a4 100644 +--- a/vendor/golang.org/x/crypto/ssh/server.go ++++ b/vendor/golang.org/x/crypto/ssh/server.go +@@ -59,6 +59,27 @@ type GSSAPIWithMICConfig struct { + Server GSSAPIServer + } + ++// SendAuthBanner implements [ServerPreAuthConn]. ++func (s *connection) SendAuthBanner(msg string) error { ++ return s.transport.writePacket(Marshal(&userAuthBannerMsg{ ++ Message: msg, ++ })) ++} ++ ++func (*connection) unexportedMethodForFutureProofing() {} ++ ++// ServerPreAuthConn is the interface available on an incoming server ++// connection before authentication has completed. ++type ServerPreAuthConn interface { ++ unexportedMethodForFutureProofing() // permits growing ServerPreAuthConn safely later, ala testing.TB ++ ++ ConnMetadata ++ ++ // SendAuthBanner sends a banner message to the client. ++ // It returns an error once the authentication phase has ended. ++ SendAuthBanner(string) error ++} ++ + // ServerConfig holds server specific configuration data. + type ServerConfig struct { + // Config contains configuration shared between client and server. +@@ -118,6 +139,12 @@ type ServerConfig struct { + // attempts. + AuthLogCallback func(conn ConnMetadata, method string, err error) + ++ // PreAuthConnCallback, if non-nil, is called upon receiving a new connection ++ // before any authentication has started. The provided ServerPreAuthConn ++ // can be used at any time before authentication is complete, including ++ // after this callback has returned. ++ PreAuthConnCallback func(ServerPreAuthConn) ++ + // ServerVersion is the version identification string to announce in + // the public handshake. + // If empty, a reasonable default is used. +@@ -149,7 +176,7 @@ func (s *ServerConfig) AddHostKey(key Signer) { + } + + // cachedPubKey contains the results of querying whether a public key is +-// acceptable for a user. ++// acceptable for a user. This is a FIFO cache. + type cachedPubKey struct { + user string + pubKeyData []byte +@@ -157,7 +184,13 @@ type cachedPubKey struct { + perms *Permissions + } + +-const maxCachedPubKeys = 16 ++// maxCachedPubKeys is the number of cache entries we store. ++// ++// Due to consistent misuse of the PublicKeyCallback API, we have reduced this ++// to 1, such that the only key in the cache is the most recently seen one. This ++// forces the behavior that the last call to PublicKeyCallback will always be ++// with the key that is used for authentication. ++const maxCachedPubKeys = 1 + + // pubKeyCache caches tests for public keys. Since SSH clients + // will query whether a public key is acceptable before attempting to +@@ -179,9 +212,10 @@ func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + + // add adds the given tuple to the cache. + func (c *pubKeyCache) add(candidate cachedPubKey) { +- if len(c.keys) < maxCachedPubKeys { +- c.keys = append(c.keys, candidate) ++ if len(c.keys) >= maxCachedPubKeys { ++ c.keys = c.keys[1:] + } ++ c.keys = append(c.keys, candidate) + } + + // ServerConn is an authenticated SSH connection, as seen from the +@@ -426,6 +460,35 @@ func (l ServerAuthError) Error() string { + return "[" + strings.Join(errs, ", ") + "]" + } + ++// ServerAuthCallbacks defines server-side authentication callbacks. ++type ServerAuthCallbacks struct { ++ // PasswordCallback behaves like [ServerConfig.PasswordCallback]. ++ PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) ++ ++ // PublicKeyCallback behaves like [ServerConfig.PublicKeyCallback]. ++ PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) ++ ++ // KeyboardInteractiveCallback behaves like [ServerConfig.KeyboardInteractiveCallback]. ++ KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) ++ ++ // GSSAPIWithMICConfig behaves like [ServerConfig.GSSAPIWithMICConfig]. ++ GSSAPIWithMICConfig *GSSAPIWithMICConfig ++} ++ ++// PartialSuccessError can be returned by any of the [ServerConfig] ++// authentication callbacks to indicate to the client that authentication has ++// partially succeeded, but further steps are required. ++type PartialSuccessError struct { ++ // Next defines the authentication callbacks to apply to further steps. The ++ // available methods communicated to the client are based on the non-nil ++ // ServerAuthCallbacks fields. ++ Next ServerAuthCallbacks ++} ++ ++func (p *PartialSuccessError) Error() string { ++ return "ssh: authenticated with partial success" ++} ++ + // ErrNoAuth is the error value returned if no + // authentication method has been passed yet. This happens as a normal + // part of the authentication loop, since the client first tries +@@ -433,14 +496,46 @@ func (l ServerAuthError) Error() string { + // It is returned in ServerAuthError.Errors from NewServerConn. + var ErrNoAuth = errors.New("ssh: no auth passed yet") + ++// BannerError is an error that can be returned by authentication handlers in ++// ServerConfig to send a banner message to the client. ++type BannerError struct { ++ Err error ++ Message string ++} ++ ++func (b *BannerError) Unwrap() error { ++ return b.Err ++} ++ ++func (b *BannerError) Error() string { ++ if b.Err == nil { ++ return b.Message ++ } ++ return b.Err.Error() ++} ++ + func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { ++ if config.PreAuthConnCallback != nil { ++ config.PreAuthConnCallback(s) ++ } ++ + sessionID := s.transport.getSessionID() + var cache pubKeyCache + var perms *Permissions + + authFailures := 0 ++ noneAuthCount := 0 + var authErrs []error +- var displayedBanner bool ++ var calledBannerCallback bool ++ partialSuccessReturned := false ++ // Set the initial authentication callbacks from the config. They can be ++ // changed if a PartialSuccessError is returned. ++ authConfig := ServerAuthCallbacks{ ++ PasswordCallback: config.PasswordCallback, ++ PublicKeyCallback: config.PublicKeyCallback, ++ KeyboardInteractiveCallback: config.KeyboardInteractiveCallback, ++ GSSAPIWithMICConfig: config.GSSAPIWithMICConfig, ++ } + + userAuthLoop: + for { +@@ -453,8 +548,8 @@ userAuthLoop: + if err := s.transport.writePacket(Marshal(discMsg)); err != nil { + return nil, err + } +- +- return nil, discMsg ++ authErrs = append(authErrs, discMsg) ++ return nil, &ServerAuthError{Errors: authErrs} + } + + var userAuthReq userAuthRequestMsg +@@ -471,16 +566,17 @@ userAuthLoop: + return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) + } + ++ if s.user != userAuthReq.User && partialSuccessReturned { ++ return nil, fmt.Errorf("ssh: client changed the user after a partial success authentication, previous user %q, current user %q", ++ s.user, userAuthReq.User) ++ } ++ + s.user = userAuthReq.User + +- if !displayedBanner && config.BannerCallback != nil { +- displayedBanner = true +- msg := config.BannerCallback(s) +- if msg != "" { +- bannerMsg := &userAuthBannerMsg{ +- Message: msg, +- } +- if err := s.transport.writePacket(Marshal(bannerMsg)); err != nil { ++ if !calledBannerCallback && config.BannerCallback != nil { ++ calledBannerCallback = true ++ if msg := config.BannerCallback(s); msg != "" { ++ if err := s.SendAuthBanner(msg); err != nil { + return nil, err + } + } +@@ -491,20 +587,18 @@ userAuthLoop: + + switch userAuthReq.Method { + case "none": +- if config.NoClientAuth { ++ noneAuthCount++ ++ // We don't allow none authentication after a partial success ++ // response. ++ if config.NoClientAuth && !partialSuccessReturned { + if config.NoClientAuthCallback != nil { + perms, authErr = config.NoClientAuthCallback(s) + } else { + authErr = nil + } + } +- +- // allow initial attempt of 'none' without penalty +- if authFailures == 0 { +- authFailures-- +- } + case "password": +- if config.PasswordCallback == nil { ++ if authConfig.PasswordCallback == nil { + authErr = errors.New("ssh: password auth not configured") + break + } +@@ -518,17 +612,17 @@ userAuthLoop: + return nil, parseError(msgUserAuthRequest) + } + +- perms, authErr = config.PasswordCallback(s, password) ++ perms, authErr = authConfig.PasswordCallback(s, password) + case "keyboard-interactive": +- if config.KeyboardInteractiveCallback == nil { ++ if authConfig.KeyboardInteractiveCallback == nil { + authErr = errors.New("ssh: keyboard-interactive auth not configured") + break + } + + prompter := &sshClientKeyboardInteractive{s} +- perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) ++ perms, authErr = authConfig.KeyboardInteractiveCallback(s, prompter.Challenge) + case "publickey": +- if config.PublicKeyCallback == nil { ++ if authConfig.PublicKeyCallback == nil { + authErr = errors.New("ssh: publickey auth not configured") + break + } +@@ -562,11 +656,18 @@ userAuthLoop: + if !ok { + candidate.user = s.user + candidate.pubKeyData = pubKeyData +- candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) +- if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { +- candidate.result = checkSourceAddress( ++ candidate.perms, candidate.result = authConfig.PublicKeyCallback(s, pubKey) ++ _, isPartialSuccessError := candidate.result.(*PartialSuccessError) ++ ++ if (candidate.result == nil || isPartialSuccessError) && ++ candidate.perms != nil && ++ candidate.perms.CriticalOptions != nil && ++ candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { ++ if err := checkSourceAddress( + s.RemoteAddr(), +- candidate.perms.CriticalOptions[sourceAddressCriticalOption]) ++ candidate.perms.CriticalOptions[sourceAddressCriticalOption]); err != nil { ++ candidate.result = err ++ } + } + cache.add(candidate) + } +@@ -578,8 +679,8 @@ userAuthLoop: + if len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } +- +- if candidate.result == nil { ++ _, isPartialSuccessError := candidate.result.(*PartialSuccessError) ++ if candidate.result == nil || isPartialSuccessError { + okMsg := userAuthPubKeyOkMsg{ + Algo: algo, + PubKey: pubKeyData, +@@ -629,11 +730,11 @@ userAuthLoop: + perms = candidate.perms + } + case "gssapi-with-mic": +- if config.GSSAPIWithMICConfig == nil { ++ if authConfig.GSSAPIWithMICConfig == nil { + authErr = errors.New("ssh: gssapi-with-mic auth not configured") + break + } +- gssapiConfig := config.GSSAPIWithMICConfig ++ gssapiConfig := authConfig.GSSAPIWithMICConfig + userAuthRequestGSSAPI, err := parseGSSAPIPayload(userAuthReq.Payload) + if err != nil { + return nil, parseError(msgUserAuthRequest) +@@ -685,53 +786,83 @@ userAuthLoop: + config.AuthLogCallback(s, userAuthReq.Method, authErr) + } + ++ var bannerErr *BannerError ++ if errors.As(authErr, &bannerErr) { ++ if bannerErr.Message != "" { ++ if err := s.SendAuthBanner(bannerErr.Message); err != nil { ++ return nil, err ++ } ++ } ++ } ++ + if authErr == nil { + break userAuthLoop + } + +- authFailures++ +- if config.MaxAuthTries > 0 && authFailures >= config.MaxAuthTries { +- // If we have hit the max attempts, don't bother sending the +- // final SSH_MSG_USERAUTH_FAILURE message, since there are +- // no more authentication methods which can be attempted, +- // and this message may cause the client to re-attempt +- // authentication while we send the disconnect message. +- // Continue, and trigger the disconnect at the start of +- // the loop. +- // +- // The SSH specification is somewhat confusing about this, +- // RFC 4252 Section 5.1 requires each authentication failure +- // be responded to with a respective SSH_MSG_USERAUTH_FAILURE +- // message, but Section 4 says the server should disconnect +- // after some number of attempts, but it isn't explicit which +- // message should take precedence (i.e. should there be a failure +- // message than a disconnect message, or if we are going to +- // disconnect, should we only send that message.) +- // +- // Either way, OpenSSH disconnects immediately after the last +- // failed authnetication attempt, and given they are typically +- // considered the golden implementation it seems reasonable +- // to match that behavior. +- continue ++ var failureMsg userAuthFailureMsg ++ ++ if partialSuccess, ok := authErr.(*PartialSuccessError); ok { ++ // After a partial success error we don't allow changing the user ++ // name and execute the NoClientAuthCallback. ++ partialSuccessReturned = true ++ ++ // In case a partial success is returned, the server may send ++ // a new set of authentication methods. ++ authConfig = partialSuccess.Next ++ ++ // Reset pubkey cache, as the new PublicKeyCallback might ++ // accept a different set of public keys. ++ cache = pubKeyCache{} ++ ++ // Send back a partial success message to the user. ++ failureMsg.PartialSuccess = true ++ } else { ++ // Allow initial attempt of 'none' without penalty. ++ if authFailures > 0 || userAuthReq.Method != "none" || noneAuthCount != 1 { ++ authFailures++ ++ } ++ if config.MaxAuthTries > 0 && authFailures >= config.MaxAuthTries { ++ // If we have hit the max attempts, don't bother sending the ++ // final SSH_MSG_USERAUTH_FAILURE message, since there are ++ // no more authentication methods which can be attempted, ++ // and this message may cause the client to re-attempt ++ // authentication while we send the disconnect message. ++ // Continue, and trigger the disconnect at the start of ++ // the loop. ++ // ++ // The SSH specification is somewhat confusing about this, ++ // RFC 4252 Section 5.1 requires each authentication failure ++ // be responded to with a respective SSH_MSG_USERAUTH_FAILURE ++ // message, but Section 4 says the server should disconnect ++ // after some number of attempts, but it isn't explicit which ++ // message should take precedence (i.e. should there be a failure ++ // message than a disconnect message, or if we are going to ++ // disconnect, should we only send that message.) ++ // ++ // Either way, OpenSSH disconnects immediately after the last ++ // failed authentication attempt, and given they are typically ++ // considered the golden implementation it seems reasonable ++ // to match that behavior. ++ continue ++ } + } + +- var failureMsg userAuthFailureMsg +- if config.PasswordCallback != nil { ++ if authConfig.PasswordCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "password") + } +- if config.PublicKeyCallback != nil { ++ if authConfig.PublicKeyCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "publickey") + } +- if config.KeyboardInteractiveCallback != nil { ++ if authConfig.KeyboardInteractiveCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") + } +- if config.GSSAPIWithMICConfig != nil && config.GSSAPIWithMICConfig.Server != nil && +- config.GSSAPIWithMICConfig.AllowLogin != nil { ++ if authConfig.GSSAPIWithMICConfig != nil && authConfig.GSSAPIWithMICConfig.Server != nil && ++ authConfig.GSSAPIWithMICConfig.AllowLogin != nil { + failureMsg.Methods = append(failureMsg.Methods, "gssapi-with-mic") + } + + if len(failureMsg.Methods) == 0 { +- return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") ++ return nil, errors.New("ssh: no authentication methods available") + } + + if err := s.transport.writePacket(Marshal(&failureMsg)); err != nil { +diff --git a/vendor/golang.org/x/crypto/twofish/twofish.go b/vendor/golang.org/x/crypto/twofish/twofish.go +index e4eeae17f4..6d0a3028d3 100644 +--- a/vendor/golang.org/x/crypto/twofish/twofish.go ++++ b/vendor/golang.org/x/crypto/twofish/twofish.go +@@ -9,7 +9,7 @@ + // implementation. Instead, use AES (from crypto/aes, if necessary in an AEAD + // mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from + // golang.org/x/crypto/chacha20poly1305). +-package twofish // import "golang.org/x/crypto/twofish" ++package twofish + + // Twofish is defined in https://www.schneier.com/paper-twofish-paper.pdf [TWOFISH] + +diff --git a/vendor/golang.org/x/crypto/xts/xts.go b/vendor/golang.org/x/crypto/xts/xts.go +index 8c16a83014..d64f536f9d 100644 +--- a/vendor/golang.org/x/crypto/xts/xts.go ++++ b/vendor/golang.org/x/crypto/xts/xts.go +@@ -21,7 +21,7 @@ + // + // Note that XTS is usually not appropriate for any use besides disk encryption. + // Most users should use an AEAD mode like GCM (from crypto/cipher.NewGCM) instead. +-package xts // import "golang.org/x/crypto/xts" ++package xts + + import ( + "crypto/cipher" +diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go +index 2466ae3d9a..3a7e5ab176 100644 +--- a/vendor/golang.org/x/net/html/doc.go ++++ b/vendor/golang.org/x/net/html/doc.go +@@ -104,7 +104,7 @@ tokenization, and tokenization and tree construction stages of the WHATWG HTML + parsing specification respectively. While the tokenizer parses and normalizes + individual HTML tokens, only the parser constructs the DOM tree from the + tokenized HTML, as described in the tree construction stage of the +-specification, dynamically modifying or extending the docuemnt's DOM tree. ++specification, dynamically modifying or extending the document's DOM tree. + + If your use case requires semantically well-formed HTML documents, as defined by + the WHATWG specification, the parser should be used rather than the tokenizer. +diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go +index de67f938a1..3c57880d69 100644 +--- a/vendor/golang.org/x/net/html/token.go ++++ b/vendor/golang.org/x/net/html/token.go +@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { + return + } + switch c { +- case ' ', '\n', '\r', '\t', '\f', '/': +- z.pendingAttr[0].end = z.raw.end - 1 +- return + case '=': + if z.pendingAttr[0].start+1 == z.raw.end { + // WHATWG 13.2.5.32, if we see an equals sign before the attribute name +@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { + continue + } + fallthrough +- case '>': ++ case ' ', '\n', '\r', '\t', '\f', '/', '>': ++ // WHATWG 13.2.5.33 Attribute name state ++ // We need to reconsume the char in the after attribute name state to support the / character + z.raw.end-- + z.pendingAttr[0].end = z.raw.end + return +@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { + if z.err != nil { + return + } ++ if c == '/' { ++ // WHATWG 13.2.5.34 After attribute name state ++ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. ++ return ++ } + if c != '=' { + z.raw.end-- + return +diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go +index 6e071e8524..9b4de94019 100644 +--- a/vendor/golang.org/x/net/http/httpguts/httplex.go ++++ b/vendor/golang.org/x/net/http/httpguts/httplex.go +@@ -12,7 +12,7 @@ import ( + "golang.org/x/net/idna" + ) + +-var isTokenTable = [127]bool{ ++var isTokenTable = [256]bool{ + '!': true, + '#': true, + '$': true, +@@ -93,12 +93,7 @@ var isTokenTable = [127]bool{ + } + + func IsTokenRune(r rune) bool { +- i := int(r) +- return i < len(isTokenTable) && isTokenTable[i] +-} +- +-func isNotToken(r rune) bool { +- return !IsTokenRune(r) ++ return r < utf8.RuneSelf && isTokenTable[byte(r)] + } + + // HeaderValuesContainsToken reports whether any string in values +@@ -202,8 +197,8 @@ func ValidHeaderFieldName(v string) bool { + if len(v) == 0 { + return false + } +- for _, r := range v { +- if !IsTokenRune(r) { ++ for i := 0; i < len(v); i++ { ++ if !isTokenTable[v[i]] { + return false + } + } +diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go +index c1f6b90dc3..105c3b279c 100644 +--- a/vendor/golang.org/x/net/http2/frame.go ++++ b/vendor/golang.org/x/net/http2/frame.go +@@ -490,6 +490,9 @@ func terminalReadFrameError(err error) bool { + // returned error is ErrFrameTooLarge. Other errors may be of type + // ConnectionError, StreamError, or anything else from the underlying + // reader. ++// ++// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID ++// indicates the stream responsible for the error. + func (fr *Framer) ReadFrame() (Frame, error) { + fr.errDetail = nil + if fr.lastFrame != nil { +@@ -1510,19 +1513,18 @@ func (mh *MetaHeadersFrame) checkPseudos() error { + } + + func (fr *Framer) maxHeaderStringLen() int { +- v := fr.maxHeaderListSize() +- if uint32(int(v)) == v { +- return int(v) ++ v := int(fr.maxHeaderListSize()) ++ if v < 0 { ++ // If maxHeaderListSize overflows an int, use no limit (0). ++ return 0 + } +- // They had a crazy big number for MaxHeaderBytes anyway, +- // so give them unlimited header lengths: +- return 0 ++ return v + } + + // readMetaFrame returns 0 or more CONTINUATION frames from fr and + // merge them into the provided hf and returns a MetaHeadersFrame + // with the decoded hpack values. +-func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { ++func (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) { + if fr.AllowIllegalReads { + return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders") + } +@@ -1565,6 +1567,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { + if size > remainSize { + hdec.SetEmitEnabled(false) + mh.Truncated = true ++ remainSize = 0 + return + } + remainSize -= size +@@ -1577,8 +1580,38 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { + var hc headersOrContinuation = hf + for { + frag := hc.HeaderBlockFragment() ++ ++ // Avoid parsing large amounts of headers that we will then discard. ++ // If the sender exceeds the max header list size by too much, ++ // skip parsing the fragment and close the connection. ++ // ++ // "Too much" is either any CONTINUATION frame after we've already ++ // exceeded the max header list size (in which case remainSize is 0), ++ // or a frame whose encoded size is more than twice the remaining ++ // header list bytes we're willing to accept. ++ if int64(len(frag)) > int64(2*remainSize) { ++ if VerboseLogs { ++ log.Printf("http2: header list too large") ++ } ++ // It would be nice to send a RST_STREAM before sending the GOAWAY, ++ // but the structure of the server's frame writer makes this difficult. ++ return mh, ConnectionError(ErrCodeProtocol) ++ } ++ ++ // Also close the connection after any CONTINUATION frame following an ++ // invalid header, since we stop tracking the size of the headers after ++ // an invalid one. ++ if invalid != nil { ++ if VerboseLogs { ++ log.Printf("http2: invalid header: %v", invalid) ++ } ++ // It would be nice to send a RST_STREAM before sending the GOAWAY, ++ // but the structure of the server's frame writer makes this difficult. ++ return mh, ConnectionError(ErrCodeProtocol) ++ } ++ + if _, err := hdec.Write(frag); err != nil { +- return nil, ConnectionError(ErrCodeCompression) ++ return mh, ConnectionError(ErrCodeCompression) + } + + if hc.HeadersEnded() { +@@ -1595,7 +1628,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { + mh.HeadersFrame.invalidate() + + if err := hdec.Close(); err != nil { +- return nil, ConnectionError(ErrCodeCompression) ++ return mh, ConnectionError(ErrCodeCompression) + } + if invalid != nil { + fr.errDetail = invalid +diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go +index 684d984fd9..3b9f06b962 100644 +--- a/vendor/golang.org/x/net/http2/pipe.go ++++ b/vendor/golang.org/x/net/http2/pipe.go +@@ -77,7 +77,10 @@ func (p *pipe) Read(d []byte) (n int, err error) { + } + } + +-var errClosedPipeWrite = errors.New("write on closed buffer") ++var ( ++ errClosedPipeWrite = errors.New("write on closed buffer") ++ errUninitializedPipeWrite = errors.New("write on uninitialized buffer") ++) + + // Write copies bytes from p into the buffer and wakes a reader. + // It is an error to write more data than the buffer can hold. +@@ -91,6 +94,12 @@ func (p *pipe) Write(d []byte) (n int, err error) { + if p.err != nil || p.breakErr != nil { + return 0, errClosedPipeWrite + } ++ // pipe.setBuffer is never invoked, leaving the buffer uninitialized. ++ // We shouldn't try to write to an uninitialized pipe, ++ // but returning an error is better than panicking. ++ if p.b == nil { ++ return 0, errUninitializedPipeWrite ++ } + return p.b.Write(d) + } + +diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go +index ae94c6408d..c5d0810813 100644 +--- a/vendor/golang.org/x/net/http2/server.go ++++ b/vendor/golang.org/x/net/http2/server.go +@@ -124,6 +124,7 @@ type Server struct { + // IdleTimeout specifies how long until idle clients should be + // closed with a GOAWAY frame. PING frames are not considered + // activity for the purposes of IdleTimeout. ++ // If zero or negative, there is no timeout. + IdleTimeout time.Duration + + // MaxUploadBufferPerConnection is the size of the initial flow +@@ -434,7 +435,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + // passes the connection off to us with the deadline already set. + // Write deadlines are set per stream in serverConn.newStream. + // Disarm the net.Conn write deadline here. +- if sc.hs.WriteTimeout != 0 { ++ if sc.hs.WriteTimeout > 0 { + sc.conn.SetWriteDeadline(time.Time{}) + } + +@@ -731,11 +732,7 @@ func isClosedConnError(err error) bool { + return false + } + +- // TODO: remove this string search and be more like the Windows +- // case below. That might involve modifying the standard library +- // to return better error types. +- str := err.Error() +- if strings.Contains(str, "use of closed network connection") { ++ if errors.Is(err, net.ErrClosed) { + return true + } + +@@ -924,7 +921,7 @@ func (sc *serverConn) serve() { + sc.setConnState(http.StateActive) + sc.setConnState(http.StateIdle) + +- if sc.srv.IdleTimeout != 0 { ++ if sc.srv.IdleTimeout > 0 { + sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + defer sc.idleTimer.Stop() + } +@@ -1481,6 +1478,11 @@ func (sc *serverConn) processFrameFromReader(res readFrameResult) bool { + sc.goAway(ErrCodeFlowControl) + return true + case ConnectionError: ++ if res.f != nil { ++ if id := res.f.Header().StreamID; id > sc.maxClientStreamID { ++ sc.maxClientStreamID = id ++ } ++ } + sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev) + sc.goAway(ErrCode(ev)) + return true // goAway will handle shutdown +@@ -1637,7 +1639,7 @@ func (sc *serverConn) closeStream(st *stream, err error) { + delete(sc.streams, st.id) + if len(sc.streams) == 0 { + sc.setConnState(http.StateIdle) +- if sc.srv.IdleTimeout != 0 { ++ if sc.srv.IdleTimeout > 0 { + sc.idleTimer.Reset(sc.srv.IdleTimeout) + } + if h1ServerKeepAlivesDisabled(sc.hs) { +@@ -2017,7 +2019,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { + // similar to how the http1 server works. Here it's + // technically more like the http1 Server's ReadHeaderTimeout + // (in Go 1.8), though. That's a more sane option anyway. +- if sc.hs.ReadTimeout != 0 { ++ if sc.hs.ReadTimeout > 0 { + sc.conn.SetReadDeadline(time.Time{}) + st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) + } +@@ -2038,7 +2040,7 @@ func (sc *serverConn) upgradeRequest(req *http.Request) { + + // Disable any read deadline set by the net/http package + // prior to the upgrade. +- if sc.hs.ReadTimeout != 0 { ++ if sc.hs.ReadTimeout > 0 { + sc.conn.SetReadDeadline(time.Time{}) + } + +@@ -2116,7 +2118,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream + st.flow.conn = &sc.flow // link to conn-level counter + st.flow.add(sc.initialStreamSendWindowSize) + st.inflow.init(sc.srv.initialStreamRecvWindowSize()) +- if sc.hs.WriteTimeout != 0 { ++ if sc.hs.WriteTimeout > 0 { + st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + } + +diff --git a/vendor/golang.org/x/net/http2/testsync.go b/vendor/golang.org/x/net/http2/testsync.go +new file mode 100644 +index 0000000000..61075bd16d +--- /dev/null ++++ b/vendor/golang.org/x/net/http2/testsync.go +@@ -0,0 +1,331 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++package http2 ++ ++import ( ++ "context" ++ "sync" ++ "time" ++) ++ ++// testSyncHooks coordinates goroutines in tests. ++// ++// For example, a call to ClientConn.RoundTrip involves several goroutines, including: ++// - the goroutine running RoundTrip; ++// - the clientStream.doRequest goroutine, which writes the request; and ++// - the clientStream.readLoop goroutine, which reads the response. ++// ++// Using testSyncHooks, a test can start a RoundTrip and identify when all these goroutines ++// are blocked waiting for some condition such as reading the Request.Body or waiting for ++// flow control to become available. ++// ++// The testSyncHooks also manage timers and synthetic time in tests. ++// This permits us to, for example, start a request and cause it to time out waiting for ++// response headers without resorting to time.Sleep calls. ++type testSyncHooks struct { ++ // active/inactive act as a mutex and condition variable. ++ // ++ // - neither chan contains a value: testSyncHooks is locked. ++ // - active contains a value: unlocked, and at least one goroutine is not blocked ++ // - inactive contains a value: unlocked, and all goroutines are blocked ++ active chan struct{} ++ inactive chan struct{} ++ ++ // goroutine counts ++ total int // total goroutines ++ condwait map[*sync.Cond]int // blocked in sync.Cond.Wait ++ blocked []*testBlockedGoroutine // otherwise blocked ++ ++ // fake time ++ now time.Time ++ timers []*fakeTimer ++ ++ // Transport testing: Report various events. ++ newclientconn func(*ClientConn) ++ newstream func(*clientStream) ++} ++ ++// testBlockedGoroutine is a blocked goroutine. ++type testBlockedGoroutine struct { ++ f func() bool // blocked until f returns true ++ ch chan struct{} // closed when unblocked ++} ++ ++func newTestSyncHooks() *testSyncHooks { ++ h := &testSyncHooks{ ++ active: make(chan struct{}, 1), ++ inactive: make(chan struct{}, 1), ++ condwait: map[*sync.Cond]int{}, ++ } ++ h.inactive <- struct{}{} ++ h.now = time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC) ++ return h ++} ++ ++// lock acquires the testSyncHooks mutex. ++func (h *testSyncHooks) lock() { ++ select { ++ case <-h.active: ++ case <-h.inactive: ++ } ++} ++ ++// waitInactive waits for all goroutines to become inactive. ++func (h *testSyncHooks) waitInactive() { ++ for { ++ <-h.inactive ++ if !h.unlock() { ++ break ++ } ++ } ++} ++ ++// unlock releases the testSyncHooks mutex. ++// It reports whether any goroutines are active. ++func (h *testSyncHooks) unlock() (active bool) { ++ // Look for a blocked goroutine which can be unblocked. ++ blocked := h.blocked[:0] ++ unblocked := false ++ for _, b := range h.blocked { ++ if !unblocked && b.f() { ++ unblocked = true ++ close(b.ch) ++ } else { ++ blocked = append(blocked, b) ++ } ++ } ++ h.blocked = blocked ++ ++ // Count goroutines blocked on condition variables. ++ condwait := 0 ++ for _, count := range h.condwait { ++ condwait += count ++ } ++ ++ if h.total > condwait+len(blocked) { ++ h.active <- struct{}{} ++ return true ++ } else { ++ h.inactive <- struct{}{} ++ return false ++ } ++} ++ ++// goRun starts a new goroutine. ++func (h *testSyncHooks) goRun(f func()) { ++ h.lock() ++ h.total++ ++ h.unlock() ++ go func() { ++ defer func() { ++ h.lock() ++ h.total-- ++ h.unlock() ++ }() ++ f() ++ }() ++} ++ ++// blockUntil indicates that a goroutine is blocked waiting for some condition to become true. ++// It waits until f returns true before proceeding. ++// ++// Example usage: ++// ++// h.blockUntil(func() bool { ++// // Is the context done yet? ++// select { ++// case <-ctx.Done(): ++// default: ++// return false ++// } ++// return true ++// }) ++// // Wait for the context to become done. ++// <-ctx.Done() ++// ++// The function f passed to blockUntil must be non-blocking and idempotent. ++func (h *testSyncHooks) blockUntil(f func() bool) { ++ if f() { ++ return ++ } ++ ch := make(chan struct{}) ++ h.lock() ++ h.blocked = append(h.blocked, &testBlockedGoroutine{ ++ f: f, ++ ch: ch, ++ }) ++ h.unlock() ++ <-ch ++} ++ ++// broadcast is sync.Cond.Broadcast. ++func (h *testSyncHooks) condBroadcast(cond *sync.Cond) { ++ h.lock() ++ delete(h.condwait, cond) ++ h.unlock() ++ cond.Broadcast() ++} ++ ++// broadcast is sync.Cond.Wait. ++func (h *testSyncHooks) condWait(cond *sync.Cond) { ++ h.lock() ++ h.condwait[cond]++ ++ h.unlock() ++} ++ ++// newTimer creates a new fake timer. ++func (h *testSyncHooks) newTimer(d time.Duration) timer { ++ h.lock() ++ defer h.unlock() ++ t := &fakeTimer{ ++ hooks: h, ++ when: h.now.Add(d), ++ c: make(chan time.Time), ++ } ++ h.timers = append(h.timers, t) ++ return t ++} ++ ++// afterFunc creates a new fake AfterFunc timer. ++func (h *testSyncHooks) afterFunc(d time.Duration, f func()) timer { ++ h.lock() ++ defer h.unlock() ++ t := &fakeTimer{ ++ hooks: h, ++ when: h.now.Add(d), ++ f: f, ++ } ++ h.timers = append(h.timers, t) ++ return t ++} ++ ++func (h *testSyncHooks) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { ++ ctx, cancel := context.WithCancel(ctx) ++ t := h.afterFunc(d, cancel) ++ return ctx, func() { ++ t.Stop() ++ cancel() ++ } ++} ++ ++func (h *testSyncHooks) timeUntilEvent() time.Duration { ++ h.lock() ++ defer h.unlock() ++ var next time.Time ++ for _, t := range h.timers { ++ if next.IsZero() || t.when.Before(next) { ++ next = t.when ++ } ++ } ++ if d := next.Sub(h.now); d > 0 { ++ return d ++ } ++ return 0 ++} ++ ++// advance advances time and causes synthetic timers to fire. ++func (h *testSyncHooks) advance(d time.Duration) { ++ h.lock() ++ defer h.unlock() ++ h.now = h.now.Add(d) ++ timers := h.timers[:0] ++ for _, t := range h.timers { ++ t := t // remove after go.mod depends on go1.22 ++ t.mu.Lock() ++ switch { ++ case t.when.After(h.now): ++ timers = append(timers, t) ++ case t.when.IsZero(): ++ // stopped timer ++ default: ++ t.when = time.Time{} ++ if t.c != nil { ++ close(t.c) ++ } ++ if t.f != nil { ++ h.total++ ++ go func() { ++ defer func() { ++ h.lock() ++ h.total-- ++ h.unlock() ++ }() ++ t.f() ++ }() ++ } ++ } ++ t.mu.Unlock() ++ } ++ h.timers = timers ++} ++ ++// A timer wraps a time.Timer, or a synthetic equivalent in tests. ++// Unlike time.Timer, timer is single-use: The timer channel is closed when the timer expires. ++type timer interface { ++ C() <-chan time.Time ++ Stop() bool ++ Reset(d time.Duration) bool ++} ++ ++// timeTimer implements timer using real time. ++type timeTimer struct { ++ t *time.Timer ++ c chan time.Time ++} ++ ++// newTimeTimer creates a new timer using real time. ++func newTimeTimer(d time.Duration) timer { ++ ch := make(chan time.Time) ++ t := time.AfterFunc(d, func() { ++ close(ch) ++ }) ++ return &timeTimer{t, ch} ++} ++ ++// newTimeAfterFunc creates an AfterFunc timer using real time. ++func newTimeAfterFunc(d time.Duration, f func()) timer { ++ return &timeTimer{ ++ t: time.AfterFunc(d, f), ++ } ++} ++ ++func (t timeTimer) C() <-chan time.Time { return t.c } ++func (t timeTimer) Stop() bool { return t.t.Stop() } ++func (t timeTimer) Reset(d time.Duration) bool { return t.t.Reset(d) } ++ ++// fakeTimer implements timer using fake time. ++type fakeTimer struct { ++ hooks *testSyncHooks ++ ++ mu sync.Mutex ++ when time.Time // when the timer will fire ++ c chan time.Time // closed when the timer fires; mutually exclusive with f ++ f func() // called when the timer fires; mutually exclusive with c ++} ++ ++func (t *fakeTimer) C() <-chan time.Time { return t.c } ++ ++func (t *fakeTimer) Stop() bool { ++ t.mu.Lock() ++ defer t.mu.Unlock() ++ stopped := t.when.IsZero() ++ t.when = time.Time{} ++ return stopped ++} ++ ++func (t *fakeTimer) Reset(d time.Duration) bool { ++ if t.c != nil || t.f == nil { ++ panic("fakeTimer only supports Reset on AfterFunc timers") ++ } ++ t.mu.Lock() ++ defer t.mu.Unlock() ++ t.hooks.lock() ++ defer t.hooks.unlock() ++ active := !t.when.IsZero() ++ t.when = t.hooks.now.Add(d) ++ if !active { ++ t.hooks.timers = append(t.hooks.timers, t) ++ } ++ return active ++} +diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go +index df578b86c6..2fa49490c9 100644 +--- a/vendor/golang.org/x/net/http2/transport.go ++++ b/vendor/golang.org/x/net/http2/transport.go +@@ -147,6 +147,12 @@ type Transport struct { + // waiting for their turn. + StrictMaxConcurrentStreams bool + ++ // IdleConnTimeout is the maximum amount of time an idle ++ // (keep-alive) connection will remain idle before closing ++ // itself. ++ // Zero means no limit. ++ IdleConnTimeout time.Duration ++ + // ReadIdleTimeout is the timeout after which a health check using ping + // frame will be carried out if no frame is received on the connection. + // Note that a ping response will is considered a received frame, so if +@@ -178,6 +184,8 @@ type Transport struct { + + connPoolOnce sync.Once + connPoolOrDef ClientConnPool // non-nil version of ConnPool ++ ++ syncHooks *testSyncHooks + } + + func (t *Transport) maxHeaderListSize() uint32 { +@@ -302,7 +310,7 @@ type ClientConn struct { + readerErr error // set before readerDone is closed + + idleTimeout time.Duration // or 0 for never +- idleTimer *time.Timer ++ idleTimer timer + + mu sync.Mutex // guards following + cond *sync.Cond // hold mu; broadcast on flow/closed changes +@@ -344,6 +352,60 @@ type ClientConn struct { + werr error // first write error that has occurred + hbuf bytes.Buffer // HPACK encoder writes into this + henc *hpack.Encoder ++ ++ syncHooks *testSyncHooks // can be nil ++} ++ ++// Hook points used for testing. ++// Outside of tests, cc.syncHooks is nil and these all have minimal implementations. ++// Inside tests, see the testSyncHooks function docs. ++ ++// goRun starts a new goroutine. ++func (cc *ClientConn) goRun(f func()) { ++ if cc.syncHooks != nil { ++ cc.syncHooks.goRun(f) ++ return ++ } ++ go f() ++} ++ ++// condBroadcast is cc.cond.Broadcast. ++func (cc *ClientConn) condBroadcast() { ++ if cc.syncHooks != nil { ++ cc.syncHooks.condBroadcast(cc.cond) ++ } ++ cc.cond.Broadcast() ++} ++ ++// condWait is cc.cond.Wait. ++func (cc *ClientConn) condWait() { ++ if cc.syncHooks != nil { ++ cc.syncHooks.condWait(cc.cond) ++ } ++ cc.cond.Wait() ++} ++ ++// newTimer creates a new time.Timer, or a synthetic timer in tests. ++func (cc *ClientConn) newTimer(d time.Duration) timer { ++ if cc.syncHooks != nil { ++ return cc.syncHooks.newTimer(d) ++ } ++ return newTimeTimer(d) ++} ++ ++// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. ++func (cc *ClientConn) afterFunc(d time.Duration, f func()) timer { ++ if cc.syncHooks != nil { ++ return cc.syncHooks.afterFunc(d, f) ++ } ++ return newTimeAfterFunc(d, f) ++} ++ ++func (cc *ClientConn) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { ++ if cc.syncHooks != nil { ++ return cc.syncHooks.contextWithTimeout(ctx, d) ++ } ++ return context.WithTimeout(ctx, d) + } + + // clientStream is the state for a single HTTP/2 stream. One of these +@@ -425,7 +487,7 @@ func (cs *clientStream) abortStreamLocked(err error) { + // TODO(dneil): Clean up tests where cs.cc.cond is nil. + if cs.cc.cond != nil { + // Wake up writeRequestBody if it is waiting on flow control. +- cs.cc.cond.Broadcast() ++ cs.cc.condBroadcast() + } + } + +@@ -435,7 +497,7 @@ func (cs *clientStream) abortRequestBodyWrite() { + defer cc.mu.Unlock() + if cs.reqBody != nil && cs.reqBodyClosed == nil { + cs.closeReqBodyLocked() +- cc.cond.Broadcast() ++ cc.condBroadcast() + } + } + +@@ -445,10 +507,10 @@ func (cs *clientStream) closeReqBodyLocked() { + } + cs.reqBodyClosed = make(chan struct{}) + reqBodyClosed := cs.reqBodyClosed +- go func() { ++ cs.cc.goRun(func() { + cs.reqBody.Close() + close(reqBodyClosed) +- }() ++ }) + } + + type stickyErrWriter struct { +@@ -537,15 +599,6 @@ func authorityAddr(scheme string, authority string) (addr string) { + return net.JoinHostPort(host, port) + } + +-var retryBackoffHook func(time.Duration) *time.Timer +- +-func backoffNewTimer(d time.Duration) *time.Timer { +- if retryBackoffHook != nil { +- return retryBackoffHook(d) +- } +- return time.NewTimer(d) +-} +- + // RoundTripOpt is like RoundTrip, but takes options. + func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { + if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) { +@@ -573,13 +626,27 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res + backoff := float64(uint(1) << (uint(retry) - 1)) + backoff += backoff * (0.1 * mathrand.Float64()) + d := time.Second * time.Duration(backoff) +- timer := backoffNewTimer(d) ++ var tm timer ++ if t.syncHooks != nil { ++ tm = t.syncHooks.newTimer(d) ++ t.syncHooks.blockUntil(func() bool { ++ select { ++ case <-tm.C(): ++ case <-req.Context().Done(): ++ default: ++ return false ++ } ++ return true ++ }) ++ } else { ++ tm = newTimeTimer(d) ++ } + select { +- case <-timer.C: ++ case <-tm.C(): + t.vlogf("RoundTrip retrying after failure: %v", roundTripErr) + continue + case <-req.Context().Done(): +- timer.Stop() ++ tm.Stop() + err = req.Context().Err() + } + } +@@ -658,6 +725,9 @@ func canRetryError(err error) bool { + } + + func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { ++ if t.syncHooks != nil { ++ return t.newClientConn(nil, singleUse, t.syncHooks) ++ } + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err +@@ -666,7 +736,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b + if err != nil { + return nil, err + } +- return t.newClientConn(tconn, singleUse) ++ return t.newClientConn(tconn, singleUse, nil) + } + + func (t *Transport) newTLSConfig(host string) *tls.Config { +@@ -732,10 +802,10 @@ func (t *Transport) maxEncoderHeaderTableSize() uint32 { + } + + func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { +- return t.newClientConn(c, t.disableKeepAlives()) ++ return t.newClientConn(c, t.disableKeepAlives(), nil) + } + +-func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { ++func (t *Transport) newClientConn(c net.Conn, singleUse bool, hooks *testSyncHooks) (*ClientConn, error) { + cc := &ClientConn{ + t: t, + tconn: c, +@@ -750,10 +820,15 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro + wantSettingsAck: true, + pings: make(map[[8]byte]chan struct{}), + reqHeaderMu: make(chan struct{}, 1), ++ syncHooks: hooks, ++ } ++ if hooks != nil { ++ hooks.newclientconn(cc) ++ c = cc.tconn + } + if d := t.idleConnTimeout(); d != 0 { + cc.idleTimeout = d +- cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout) ++ cc.idleTimer = cc.afterFunc(d, cc.onIdleTimeout) + } + if VerboseLogs { + t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) +@@ -818,7 +893,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro + return nil, cc.werr + } + +- go cc.readLoop() ++ cc.goRun(cc.readLoop) + return cc, nil + } + +@@ -826,7 +901,7 @@ func (cc *ClientConn) healthCheck() { + pingTimeout := cc.t.pingTimeout() + // We don't need to periodically ping in the health check, because the readLoop of ClientConn will + // trigger the healthCheck again if there is no frame received. +- ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) ++ ctx, cancel := cc.contextWithTimeout(context.Background(), pingTimeout) + defer cancel() + cc.vlogf("http2: Transport sending health check") + err := cc.Ping(ctx) +@@ -861,7 +936,20 @@ func (cc *ClientConn) setGoAway(f *GoAwayFrame) { + } + last := f.LastStreamID + for streamID, cs := range cc.streams { +- if streamID > last { ++ if streamID <= last { ++ // The server's GOAWAY indicates that it received this stream. ++ // It will either finish processing it, or close the connection ++ // without doing so. Either way, leave the stream alone for now. ++ continue ++ } ++ if streamID == 1 && cc.goAway.ErrCode != ErrCodeNo { ++ // Don't retry the first stream on a connection if we get a non-NO error. ++ // If the server is sending an error on a new connection, ++ // retrying the request on a new one probably isn't going to work. ++ cs.abortStreamLocked(fmt.Errorf("http2: Transport received GOAWAY from server ErrCode:%v", cc.goAway.ErrCode)) ++ } else { ++ // Aborting the stream with errClentConnGotGoAway indicates that ++ // the request should be retried on a new connection. + cs.abortStreamLocked(errClientConnGotGoAway) + } + } +@@ -1056,7 +1144,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { + // Wait for all in-flight streams to complete or connection to close + done := make(chan struct{}) + cancelled := false // guarded by cc.mu +- go func() { ++ cc.goRun(func() { + cc.mu.Lock() + defer cc.mu.Unlock() + for { +@@ -1068,9 +1156,9 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { + if cancelled { + break + } +- cc.cond.Wait() ++ cc.condWait() + } +- }() ++ }) + shutdownEnterWaitStateHook() + select { + case <-done: +@@ -1080,7 +1168,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { + cc.mu.Lock() + // Free the goroutine above + cancelled = true +- cc.cond.Broadcast() ++ cc.condBroadcast() + cc.mu.Unlock() + return ctx.Err() + } +@@ -1118,7 +1206,7 @@ func (cc *ClientConn) closeForError(err error) { + for _, cs := range cc.streams { + cs.abortStreamLocked(err) + } +- cc.cond.Broadcast() ++ cc.condBroadcast() + cc.mu.Unlock() + cc.closeConn() + } +@@ -1215,6 +1303,10 @@ func (cc *ClientConn) decrStreamReservationsLocked() { + } + + func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { ++ return cc.roundTrip(req, nil) ++} ++ ++func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) (*http.Response, error) { + ctx := req.Context() + cs := &clientStream{ + cc: cc, +@@ -1229,9 +1321,23 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { + respHeaderRecv: make(chan struct{}), + donec: make(chan struct{}), + } +- go cs.doRequest(req) ++ cc.goRun(func() { ++ cs.doRequest(req) ++ }) + + waitDone := func() error { ++ if cc.syncHooks != nil { ++ cc.syncHooks.blockUntil(func() bool { ++ select { ++ case <-cs.donec: ++ case <-ctx.Done(): ++ case <-cs.reqCancel: ++ default: ++ return false ++ } ++ return true ++ }) ++ } + select { + case <-cs.donec: + return nil +@@ -1292,7 +1398,24 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { + return err + } + ++ if streamf != nil { ++ streamf(cs) ++ } ++ + for { ++ if cc.syncHooks != nil { ++ cc.syncHooks.blockUntil(func() bool { ++ select { ++ case <-cs.respHeaderRecv: ++ case <-cs.abort: ++ case <-ctx.Done(): ++ case <-cs.reqCancel: ++ default: ++ return false ++ } ++ return true ++ }) ++ } + select { + case <-cs.respHeaderRecv: + return handleResponseHeaders() +@@ -1348,6 +1471,21 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { + if cc.reqHeaderMu == nil { + panic("RoundTrip on uninitialized ClientConn") // for tests + } ++ var newStreamHook func(*clientStream) ++ if cc.syncHooks != nil { ++ newStreamHook = cc.syncHooks.newstream ++ cc.syncHooks.blockUntil(func() bool { ++ select { ++ case cc.reqHeaderMu <- struct{}{}: ++ <-cc.reqHeaderMu ++ case <-cs.reqCancel: ++ case <-ctx.Done(): ++ default: ++ return false ++ } ++ return true ++ }) ++ } + select { + case cc.reqHeaderMu <- struct{}{}: + case <-cs.reqCancel: +@@ -1372,6 +1510,10 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { + } + cc.mu.Unlock() + ++ if newStreamHook != nil { ++ newStreamHook(cs) ++ } ++ + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + if !cc.t.disableCompression() && + req.Header.Get("Accept-Encoding") == "" && +@@ -1452,15 +1594,30 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { + var respHeaderTimer <-chan time.Time + var respHeaderRecv chan struct{} + if d := cc.responseHeaderTimeout(); d != 0 { +- timer := time.NewTimer(d) ++ timer := cc.newTimer(d) + defer timer.Stop() +- respHeaderTimer = timer.C ++ respHeaderTimer = timer.C() + respHeaderRecv = cs.respHeaderRecv + } + // Wait until the peer half-closes its end of the stream, + // or until the request is aborted (via context, error, or otherwise), + // whichever comes first. + for { ++ if cc.syncHooks != nil { ++ cc.syncHooks.blockUntil(func() bool { ++ select { ++ case <-cs.peerClosed: ++ case <-respHeaderTimer: ++ case <-respHeaderRecv: ++ case <-cs.abort: ++ case <-ctx.Done(): ++ case <-cs.reqCancel: ++ default: ++ return false ++ } ++ return true ++ }) ++ } + select { + case <-cs.peerClosed: + return nil +@@ -1609,7 +1766,7 @@ func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { + return nil + } + cc.pendingRequests++ +- cc.cond.Wait() ++ cc.condWait() + cc.pendingRequests-- + select { + case <-cs.abort: +@@ -1871,10 +2028,26 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) + cs.flow.take(take) + return take, nil + } +- cc.cond.Wait() ++ cc.condWait() + } + } + ++func validateHeaders(hdrs http.Header) string { ++ for k, vv := range hdrs { ++ if !httpguts.ValidHeaderFieldName(k) { ++ return fmt.Sprintf("name %q", k) ++ } ++ for _, v := range vv { ++ if !httpguts.ValidHeaderFieldValue(v) { ++ // Don't include the value in the error, ++ // because it may be sensitive. ++ return fmt.Sprintf("value for header %q", k) ++ } ++ } ++ } ++ return "" ++} ++ + var errNilRequestURL = errors.New("http2: Request.URI is nil") + + // requires cc.wmu be held. +@@ -1912,19 +2085,14 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail + } + } + +- // Check for any invalid headers and return an error before we ++ // Check for any invalid headers+trailers and return an error before we + // potentially pollute our hpack state. (We want to be able to + // continue to reuse the hpack encoder for future requests) +- for k, vv := range req.Header { +- if !httpguts.ValidHeaderFieldName(k) { +- return nil, fmt.Errorf("invalid HTTP header name %q", k) +- } +- for _, v := range vv { +- if !httpguts.ValidHeaderFieldValue(v) { +- // Don't include the value in the error, because it may be sensitive. +- return nil, fmt.Errorf("invalid HTTP header value for header %q", k) +- } +- } ++ if err := validateHeaders(req.Header); err != "" { ++ return nil, fmt.Errorf("invalid HTTP header %s", err) ++ } ++ if err := validateHeaders(req.Trailer); err != "" { ++ return nil, fmt.Errorf("invalid HTTP trailer %s", err) + } + + enumerateHeaders := func(f func(name, value string)) { +@@ -2143,7 +2311,7 @@ func (cc *ClientConn) forgetStreamID(id uint32) { + } + // Wake up writeRequestBody via clientStream.awaitFlowControl and + // wake up RoundTrip if there is a pending request. +- cc.cond.Broadcast() ++ cc.condBroadcast() + + closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil + if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 { +@@ -2231,7 +2399,7 @@ func (rl *clientConnReadLoop) cleanup() { + cs.abortStreamLocked(err) + } + } +- cc.cond.Broadcast() ++ cc.condBroadcast() + cc.mu.Unlock() + } + +@@ -2266,10 +2434,9 @@ func (rl *clientConnReadLoop) run() error { + cc := rl.cc + gotSettings := false + readIdleTimeout := cc.t.ReadIdleTimeout +- var t *time.Timer ++ var t timer + if readIdleTimeout != 0 { +- t = time.AfterFunc(readIdleTimeout, cc.healthCheck) +- defer t.Stop() ++ t = cc.afterFunc(readIdleTimeout, cc.healthCheck) + } + for { + f, err := cc.fr.ReadFrame() +@@ -2684,7 +2851,7 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { + }) + return nil + } +- if !cs.firstByte { ++ if !cs.pastHeaders { + cc.logf("protocol error: received DATA before a HEADERS frame") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, +@@ -2867,7 +3034,7 @@ func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { + for _, cs := range cc.streams { + cs.flow.add(delta) + } +- cc.cond.Broadcast() ++ cc.condBroadcast() + + cc.initialWindowSize = s.Val + case SettingHeaderTableSize: +@@ -2911,9 +3078,18 @@ func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { + fl = &cs.flow + } + if !fl.add(int32(f.Increment)) { ++ // For stream, the sender sends RST_STREAM with an error code of FLOW_CONTROL_ERROR ++ if cs != nil { ++ rl.endStreamError(cs, StreamError{ ++ StreamID: f.StreamID, ++ Code: ErrCodeFlowControl, ++ }) ++ return nil ++ } ++ + return ConnectionError(ErrCodeFlowControl) + } +- cc.cond.Broadcast() ++ cc.condBroadcast() + return nil + } + +@@ -2955,24 +3131,38 @@ func (cc *ClientConn) Ping(ctx context.Context) error { + } + cc.mu.Unlock() + } +- errc := make(chan error, 1) +- go func() { ++ var pingError error ++ errc := make(chan struct{}) ++ cc.goRun(func() { + cc.wmu.Lock() + defer cc.wmu.Unlock() +- if err := cc.fr.WritePing(false, p); err != nil { +- errc <- err ++ if pingError = cc.fr.WritePing(false, p); pingError != nil { ++ close(errc) + return + } +- if err := cc.bw.Flush(); err != nil { +- errc <- err ++ if pingError = cc.bw.Flush(); pingError != nil { ++ close(errc) + return + } +- }() ++ }) ++ if cc.syncHooks != nil { ++ cc.syncHooks.blockUntil(func() bool { ++ select { ++ case <-c: ++ case <-errc: ++ case <-ctx.Done(): ++ case <-cc.readerDone: ++ default: ++ return false ++ } ++ return true ++ }) ++ } + select { + case <-c: + return nil +- case err := <-errc: +- return err ++ case <-errc: ++ return pingError + case <-ctx.Done(): + return ctx.Err() + case <-cc.readerDone: +@@ -3141,9 +3331,17 @@ func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, err + } + + func (t *Transport) idleConnTimeout() time.Duration { ++ // to keep things backwards compatible, we use non-zero values of ++ // IdleConnTimeout, followed by using the IdleConnTimeout on the underlying ++ // http1 transport, followed by 0 ++ if t.IdleConnTimeout != 0 { ++ return t.IdleConnTimeout ++ } ++ + if t.t1 != nil { + return t.t1.IdleConnTimeout + } ++ + return 0 + } + +diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE +index 6a66aea5ea..2a7cf70da6 100644 +--- a/vendor/golang.org/x/sync/LICENSE ++++ b/vendor/golang.org/x/sync/LICENSE +@@ -1,4 +1,4 @@ +-Copyright (c) 2009 The Go Authors. All rights reserved. ++Copyright 2009 The Go Authors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are +@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +- * Neither the name of Google Inc. nor the names of its ++ * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go +index 948a3ee63d..b8322598ae 100644 +--- a/vendor/golang.org/x/sync/errgroup/errgroup.go ++++ b/vendor/golang.org/x/sync/errgroup/errgroup.go +@@ -118,6 +118,7 @@ func (g *Group) TryGo(f func() error) bool { + + // SetLimit limits the number of active goroutines in this group to at most n. + // A negative value indicates no limit. ++// A limit of zero will prevent any new goroutines from being added. + // + // Any subsequent call to the Go method will block until it can add an active + // goroutine without exceeding the configured limit. +diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go +index 30f632c577..b618162aab 100644 +--- a/vendor/golang.org/x/sync/semaphore/semaphore.go ++++ b/vendor/golang.org/x/sync/semaphore/semaphore.go +@@ -35,11 +35,25 @@ type Weighted struct { + // Acquire acquires the semaphore with a weight of n, blocking until resources + // are available or ctx is done. On success, returns nil. On failure, returns + // ctx.Err() and leaves the semaphore unchanged. +-// +-// If ctx is already done, Acquire may still succeed without blocking. + func (s *Weighted) Acquire(ctx context.Context, n int64) error { ++ done := ctx.Done() ++ + s.mu.Lock() ++ select { ++ case <-done: ++ // ctx becoming done has "happened before" acquiring the semaphore, ++ // whether it became done before the call began or while we were ++ // waiting for the mutex. We prefer to fail even if we could acquire ++ // the mutex without blocking. ++ s.mu.Unlock() ++ return ctx.Err() ++ default: ++ } + if s.size-s.cur >= n && s.waiters.Len() == 0 { ++ // Since we hold s.mu and haven't synchronized since checking done, if ++ // ctx becomes done before we return here, it becoming done must have ++ // "happened concurrently" with this call - it cannot "happen before" ++ // we return in this branch. So, we're ok to always acquire here. + s.cur += n + s.mu.Unlock() + return nil +@@ -48,7 +62,7 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { + if n > s.size { + // Don't make other Acquire calls block on one that's doomed to fail. + s.mu.Unlock() +- <-ctx.Done() ++ <-done + return ctx.Err() + } + +@@ -58,14 +72,14 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { + s.mu.Unlock() + + select { +- case <-ctx.Done(): +- err := ctx.Err() ++ case <-done: + s.mu.Lock() + select { + case <-ready: +- // Acquired the semaphore after we were canceled. Rather than trying to +- // fix up the queue, just pretend we didn't notice the cancelation. +- err = nil ++ // Acquired the semaphore after we were canceled. ++ // Pretend we didn't and put the tokens back. ++ s.cur -= n ++ s.notifyWaiters() + default: + isFront := s.waiters.Front() == elem + s.waiters.Remove(elem) +@@ -75,9 +89,19 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { + } + } + s.mu.Unlock() +- return err ++ return ctx.Err() + + case <-ready: ++ // Acquired the semaphore. Check that ctx isn't already done. ++ // We check the done channel instead of calling ctx.Err because we ++ // already have the channel, and ctx.Err is O(n) with the nesting ++ // depth of ctx. ++ select { ++ case <-done: ++ s.Release(n) ++ return ctx.Err() ++ default: ++ } + return nil + } + } +diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE +index 6a66aea5ea..2a7cf70da6 100644 +--- a/vendor/golang.org/x/sys/LICENSE ++++ b/vendor/golang.org/x/sys/LICENSE +@@ -1,4 +1,4 @@ +-Copyright (c) 2009 The Go Authors. All rights reserved. ++Copyright 2009 The Go Authors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are +@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +- * Neither the name of Google Inc. nor the names of its ++ * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +diff --git a/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s b/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s +new file mode 100644 +index 0000000000..ec2acfe540 +--- /dev/null ++++ b/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s +@@ -0,0 +1,17 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build darwin && amd64 && gc ++ ++#include "textflag.h" ++ ++TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_sysctl(SB) ++GLOBL Β·libc_sysctl_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) ++ ++TEXT libc_sysctlbyname_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_sysctlbyname(SB) ++GLOBL Β·libc_sysctlbyname_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_sysctlbyname_trampoline_addr(SB)/8, $libc_sysctlbyname_trampoline<>(SB) +diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go +index 4756ad5f79..9c105f23af 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu.go ++++ b/vendor/golang.org/x/sys/cpu/cpu.go +@@ -72,6 +72,9 @@ var X86 struct { + HasSSSE3 bool // Supplemental streaming SIMD extension 3 + HasSSE41 bool // Streaming SIMD extension 4 and 4.1 + HasSSE42 bool // Streaming SIMD extension 4 and 4.2 ++ HasAVXIFMA bool // Advanced vector extension Integer Fused Multiply Add ++ HasAVXVNNI bool // Advanced vector extension Vector Neural Network Instructions ++ HasAVXVNNIInt8 bool // Advanced vector extension Vector Neural Network Int8 instructions + _ CacheLinePad + } + +@@ -103,7 +106,10 @@ var ARM64 struct { + HasASIMDDP bool // Advanced SIMD double precision instruction set + HasSHA512 bool // SHA512 hardware implementation + HasSVE bool // Scalable Vector Extensions ++ HasSVE2 bool // Scalable Vector Extensions 2 + HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 ++ HasDIT bool // Data Independent Timing support ++ HasI8MM bool // Advanced SIMD Int8 matrix multiplication instructions + _ CacheLinePad + } + +@@ -198,6 +204,25 @@ var S390X struct { + _ CacheLinePad + } + ++// RISCV64 contains the supported CPU features and performance characteristics for riscv64 ++// platforms. The booleans in RISCV64, with the exception of HasFastMisaligned, indicate ++// the presence of RISC-V extensions. ++// ++// It is safe to assume that all the RV64G extensions are supported and so they are omitted from ++// this structure. As riscv64 Go programs require at least RV64G, the code that populates ++// this structure cannot run successfully if some of the RV64G extensions are missing. ++// The struct is padded to avoid false sharing. ++var RISCV64 struct { ++ _ CacheLinePad ++ HasFastMisaligned bool // Fast misaligned accesses ++ HasC bool // Compressed instruction-set extension ++ HasV bool // Vector extension compatible with RVV 1.0 ++ HasZba bool // Address generation instructions extension ++ HasZbb bool // Basic bit-manipulation extension ++ HasZbs bool // Single-bit instructions extension ++ _ CacheLinePad ++} ++ + func init() { + archInit() + initOptions() +diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go +index f3eb993bf2..af2aa99f9f 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go +@@ -28,6 +28,7 @@ func initOptions() { + {Name: "sm3", Feature: &ARM64.HasSM3}, + {Name: "sm4", Feature: &ARM64.HasSM4}, + {Name: "sve", Feature: &ARM64.HasSVE}, ++ {Name: "sve2", Feature: &ARM64.HasSVE2}, + {Name: "crc32", Feature: &ARM64.HasCRC32}, + {Name: "atomics", Feature: &ARM64.HasATOMICS}, + {Name: "asimdhp", Feature: &ARM64.HasASIMDHP}, +@@ -37,6 +38,8 @@ func initOptions() { + {Name: "dcpop", Feature: &ARM64.HasDCPOP}, + {Name: "asimddp", Feature: &ARM64.HasASIMDDP}, + {Name: "asimdfhm", Feature: &ARM64.HasASIMDFHM}, ++ {Name: "dit", Feature: &ARM64.HasDIT}, ++ {Name: "i8mm", Feature: &ARM64.HasI8MM}, + } + } + +@@ -144,6 +147,11 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { + ARM64.HasLRCPC = true + } + ++ switch extractBits(isar1, 52, 55) { ++ case 1: ++ ARM64.HasI8MM = true ++ } ++ + // ID_AA64PFR0_EL1 + switch extractBits(pfr0, 16, 19) { + case 0: +@@ -164,6 +172,20 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { + switch extractBits(pfr0, 32, 35) { + case 1: + ARM64.HasSVE = true ++ ++ parseARM64SVERegister(getzfr0()) ++ } ++ ++ switch extractBits(pfr0, 48, 51) { ++ case 1: ++ ARM64.HasDIT = true ++ } ++} ++ ++func parseARM64SVERegister(zfr0 uint64) { ++ switch extractBits(zfr0, 0, 3) { ++ case 1: ++ ARM64.HasSVE2 = true + } + } + +diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s +index fcb9a38882..22cc99844a 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s ++++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.s +@@ -29,3 +29,11 @@ TEXT Β·getpfr0(SB),NOSPLIT,$0-8 + WORD $0xd5380400 + MOVD R0, ret+0(FP) + RET ++ ++// func getzfr0() uint64 ++TEXT Β·getzfr0(SB),NOSPLIT,$0-8 ++ // get SVE Feature Register 0 into x0 ++ // mrs x0, ID_AA64ZFR0_EL1 = d5380480 ++ WORD $0xd5380480 ++ MOVD R0, ret+0(FP) ++ RET +diff --git a/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go b/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go +new file mode 100644 +index 0000000000..b838cb9e95 +--- /dev/null ++++ b/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go +@@ -0,0 +1,61 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build darwin && amd64 && gc ++ ++package cpu ++ ++// darwinSupportsAVX512 checks Darwin kernel for AVX512 support via sysctl ++// call (see issue 43089). It also restricts AVX512 support for Darwin to ++// kernel version 21.3.0 (MacOS 12.2.0) or later (see issue 49233). ++// ++// Background: ++// Darwin implements a special mechanism to economize on thread state when ++// AVX512 specific registers are not in use. This scheme minimizes state when ++// preempting threads that haven't yet used any AVX512 instructions, but adds ++// special requirements to check for AVX512 hardware support at runtime (e.g. ++// via sysctl call or commpage inspection). See issue 43089 and link below for ++// full background: ++// https://github.com/apple-oss-distributions/xnu/blob/xnu-11215.1.10/osfmk/i386/fpu.c#L214-L240 ++// ++// Additionally, all versions of the Darwin kernel from 19.6.0 through 21.2.0 ++// (corresponding to MacOS 10.15.6 - 12.1) have a bug that can cause corruption ++// of the AVX512 mask registers (K0-K7) upon signal return. For this reason ++// AVX512 is considered unsafe to use on Darwin for kernel versions prior to ++// 21.3.0, where a fix has been confirmed. See issue 49233 for full background. ++func darwinSupportsAVX512() bool { ++ return darwinSysctlEnabled([]byte("hw.optional.avx512f\x00")) && darwinKernelVersionCheck(21, 3, 0) ++} ++ ++// Ensure Darwin kernel version is at least major.minor.patch, avoiding dependencies ++func darwinKernelVersionCheck(major, minor, patch int) bool { ++ var release [256]byte ++ err := darwinOSRelease(&release) ++ if err != nil { ++ return false ++ } ++ ++ var mmp [3]int ++ c := 0 ++Loop: ++ for _, b := range release[:] { ++ switch { ++ case b >= '0' && b <= '9': ++ mmp[c] = 10*mmp[c] + int(b-'0') ++ case b == '.': ++ c++ ++ if c > 2 { ++ return false ++ } ++ case b == 0: ++ break Loop ++ default: ++ return false ++ } ++ } ++ if c != 2 { ++ return false ++ } ++ return mmp[0] > major || mmp[0] == major && (mmp[1] > minor || mmp[1] == minor && mmp[2] >= patch) ++} +diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +index a8acd3e328..6ac6e1efb2 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +@@ -9,3 +9,4 @@ package cpu + func getisar0() uint64 + func getisar1() uint64 + func getpfr0() uint64 ++func getzfr0() uint64 +diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +index 910728fb16..32a44514e2 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +@@ -6,10 +6,10 @@ + + package cpu + +-// cpuid is implemented in cpu_x86.s for gc compiler ++// cpuid is implemented in cpu_gc_x86.s for gc compiler + // and in cpu_gccgo.c for gccgo. + func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) + +-// xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler ++// xgetbv with ecx = 0 is implemented in cpu_gc_x86.s for gc compiler + // and in cpu_gccgo.c for gccgo. + func xgetbv() (eax, edx uint32) +diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.s b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s +similarity index 94% +rename from vendor/golang.org/x/sys/cpu/cpu_x86.s +rename to vendor/golang.org/x/sys/cpu/cpu_gc_x86.s +index 7d7ba33efb..ce208ce6d6 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_x86.s ++++ b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s +@@ -18,7 +18,7 @@ TEXT Β·cpuid(SB), NOSPLIT, $0-24 + RET + + // func xgetbv() (eax, edx uint32) +-TEXT Β·xgetbv(SB),NOSPLIT,$0-8 ++TEXT Β·xgetbv(SB), NOSPLIT, $0-8 + MOVL $0, CX + XGETBV + MOVL AX, eax+0(FP) +diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +index 99c60fe9f9..170d21ddfd 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +@@ -23,9 +23,3 @@ func xgetbv() (eax, edx uint32) { + gccgoXgetbv(&a, &d) + return a, d + } +- +-// gccgo doesn't build on Darwin, per: +-// https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb#L76 +-func darwinSupportsAVX512() bool { +- return false +-} +diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +index a968b80fa6..f1caf0f78e 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +@@ -35,6 +35,10 @@ const ( + hwcap_SHA512 = 1 << 21 + hwcap_SVE = 1 << 22 + hwcap_ASIMDFHM = 1 << 23 ++ hwcap_DIT = 1 << 24 ++ ++ hwcap2_SVE2 = 1 << 1 ++ hwcap2_I8MM = 1 << 13 + ) + + // linuxKernelCanEmulateCPUID reports whether we're running +@@ -104,6 +108,11 @@ func doinit() { + ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512) + ARM64.HasSVE = isSet(hwCap, hwcap_SVE) + ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM) ++ ARM64.HasDIT = isSet(hwCap, hwcap_DIT) ++ ++ // HWCAP2 feature bits ++ ARM64.HasSVE2 = isSet(hwCap2, hwcap2_SVE2) ++ ARM64.HasI8MM = isSet(hwCap2, hwcap2_I8MM) + } + + func isSet(hwc uint, value uint) bool { +diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +index cd63e73355..7d902b6847 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x ++//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x && !riscv64 + + package cpu + +diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +new file mode 100644 +index 0000000000..cb4a0c5728 +--- /dev/null ++++ b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +@@ -0,0 +1,137 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package cpu ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++// RISC-V extension discovery code for Linux. The approach here is to first try the riscv_hwprobe ++// syscall falling back to HWCAP to check for the C extension if riscv_hwprobe is not available. ++// ++// A note on detection of the Vector extension using HWCAP. ++// ++// Support for the Vector extension version 1.0 was added to the Linux kernel in release 6.5. ++// Support for the riscv_hwprobe syscall was added in 6.4. It follows that if the riscv_hwprobe ++// syscall is not available then neither is the Vector extension (which needs kernel support). ++// The riscv_hwprobe syscall should then be all we need to detect the Vector extension. ++// However, some RISC-V board manufacturers ship boards with an older kernel on top of which ++// they have back-ported various versions of the Vector extension patches but not the riscv_hwprobe ++// patches. These kernels advertise support for the Vector extension using HWCAP. Falling ++// back to HWCAP to detect the Vector extension, if riscv_hwprobe is not available, or simply not ++// bothering with riscv_hwprobe at all and just using HWCAP may then seem like an attractive option. ++// ++// Unfortunately, simply checking the 'V' bit in AT_HWCAP will not work as this bit is used by ++// RISC-V board and cloud instance providers to mean different things. The Lichee Pi 4A board ++// and the Scaleway RV1 cloud instances use the 'V' bit to advertise their support for the unratified ++// 0.7.1 version of the Vector Specification. The Banana Pi BPI-F3 and the CanMV-K230 board use ++// it to advertise support for 1.0 of the Vector extension. Versions 0.7.1 and 1.0 of the Vector ++// extension are binary incompatible. HWCAP can then not be used in isolation to populate the ++// HasV field as this field indicates that the underlying CPU is compatible with RVV 1.0. ++// ++// There is a way at runtime to distinguish between versions 0.7.1 and 1.0 of the Vector ++// specification by issuing a RVV 1.0 vsetvli instruction and checking the vill bit of the vtype ++// register. This check would allow us to safely detect version 1.0 of the Vector extension ++// with HWCAP, if riscv_hwprobe were not available. However, the check cannot ++// be added until the assembler supports the Vector instructions. ++// ++// Note the riscv_hwprobe syscall does not suffer from these ambiguities by design as all of the ++// extensions it advertises support for are explicitly versioned. It's also worth noting that ++// the riscv_hwprobe syscall is the only way to detect multi-letter RISC-V extensions, e.g., Zba. ++// These cannot be detected using HWCAP and so riscv_hwprobe must be used to detect the majority ++// of RISC-V extensions. ++// ++// Please see https://docs.kernel.org/arch/riscv/hwprobe.html for more information. ++ ++// golang.org/x/sys/cpu is not allowed to depend on golang.org/x/sys/unix so we must ++// reproduce the constants, types and functions needed to make the riscv_hwprobe syscall ++// here. ++ ++const ( ++ // Copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. ++ riscv_HWPROBE_KEY_IMA_EXT_0 = 0x4 ++ riscv_HWPROBE_IMA_C = 0x2 ++ riscv_HWPROBE_IMA_V = 0x4 ++ riscv_HWPROBE_EXT_ZBA = 0x8 ++ riscv_HWPROBE_EXT_ZBB = 0x10 ++ riscv_HWPROBE_EXT_ZBS = 0x20 ++ riscv_HWPROBE_KEY_CPUPERF_0 = 0x5 ++ riscv_HWPROBE_MISALIGNED_FAST = 0x3 ++ riscv_HWPROBE_MISALIGNED_MASK = 0x7 ++) ++ ++const ( ++ // sys_RISCV_HWPROBE is copied from golang.org/x/sys/unix/zsysnum_linux_riscv64.go. ++ sys_RISCV_HWPROBE = 258 ++) ++ ++// riscvHWProbePairs is copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. ++type riscvHWProbePairs struct { ++ key int64 ++ value uint64 ++} ++ ++const ( ++ // CPU features ++ hwcap_RISCV_ISA_C = 1 << ('C' - 'A') ++) ++ ++func doinit() { ++ // A slice of key/value pair structures is passed to the RISCVHWProbe syscall. The key ++ // field should be initialised with one of the key constants defined above, e.g., ++ // RISCV_HWPROBE_KEY_IMA_EXT_0. The syscall will set the value field to the appropriate value. ++ // If the kernel does not recognise a key it will set the key field to -1 and the value field to 0. ++ ++ pairs := []riscvHWProbePairs{ ++ {riscv_HWPROBE_KEY_IMA_EXT_0, 0}, ++ {riscv_HWPROBE_KEY_CPUPERF_0, 0}, ++ } ++ ++ // This call only indicates that extensions are supported if they are implemented on all cores. ++ if riscvHWProbe(pairs, 0) { ++ if pairs[0].key != -1 { ++ v := uint(pairs[0].value) ++ RISCV64.HasC = isSet(v, riscv_HWPROBE_IMA_C) ++ RISCV64.HasV = isSet(v, riscv_HWPROBE_IMA_V) ++ RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA) ++ RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB) ++ RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS) ++ } ++ if pairs[1].key != -1 { ++ v := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK ++ RISCV64.HasFastMisaligned = v == riscv_HWPROBE_MISALIGNED_FAST ++ } ++ } ++ ++ // Let's double check with HWCAP if the C extension does not appear to be supported. ++ // This may happen if we're running on a kernel older than 6.4. ++ ++ if !RISCV64.HasC { ++ RISCV64.HasC = isSet(hwCap, hwcap_RISCV_ISA_C) ++ } ++} ++ ++func isSet(hwc uint, value uint) bool { ++ return hwc&value != 0 ++} ++ ++// riscvHWProbe is a simplified version of the generated wrapper function found in ++// golang.org/x/sys/unix/zsyscall_linux_riscv64.go. We simplify it by removing the ++// cpuCount and cpus parameters which we do not need. We always want to pass 0 for ++// these parameters here so the kernel only reports the extensions that are present ++// on all cores. ++func riscvHWProbe(pairs []riscvHWProbePairs, flags uint) bool { ++ var _zero uintptr ++ var p0 unsafe.Pointer ++ if len(pairs) > 0 { ++ p0 = unsafe.Pointer(&pairs[0]) ++ } else { ++ p0 = unsafe.Pointer(&_zero) ++ } ++ ++ _, _, e1 := syscall.Syscall6(sys_RISCV_HWPROBE, uintptr(p0), uintptr(len(pairs)), uintptr(0), uintptr(0), uintptr(flags), 0) ++ return e1 == 0 ++} +diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_x86.go b/vendor/golang.org/x/sys/cpu/cpu_other_x86.go +new file mode 100644 +index 0000000000..a0fd7e2f75 +--- /dev/null ++++ b/vendor/golang.org/x/sys/cpu/cpu_other_x86.go +@@ -0,0 +1,11 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build 386 || amd64p32 || (amd64 && (!darwin || !gc)) ++ ++package cpu ++ ++func darwinSupportsAVX512() bool { ++ panic("only implemented for gc && amd64 && darwin") ++} +diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +index 7f0c79c004..aca3199c91 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +@@ -8,4 +8,13 @@ package cpu + + const cacheLineSize = 64 + +-func initOptions() {} ++func initOptions() { ++ options = []option{ ++ {Name: "fastmisaligned", Feature: &RISCV64.HasFastMisaligned}, ++ {Name: "c", Feature: &RISCV64.HasC}, ++ {Name: "v", Feature: &RISCV64.HasV}, ++ {Name: "zba", Feature: &RISCV64.HasZba}, ++ {Name: "zbb", Feature: &RISCV64.HasZbb}, ++ {Name: "zbs", Feature: &RISCV64.HasZbs}, ++ } ++} +diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go +index c29f5e4c5a..1e642f3304 100644 +--- a/vendor/golang.org/x/sys/cpu/cpu_x86.go ++++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go +@@ -53,6 +53,9 @@ func initOptions() { + {Name: "sse41", Feature: &X86.HasSSE41}, + {Name: "sse42", Feature: &X86.HasSSE42}, + {Name: "ssse3", Feature: &X86.HasSSSE3}, ++ {Name: "avxifma", Feature: &X86.HasAVXIFMA}, ++ {Name: "avxvnni", Feature: &X86.HasAVXVNNI}, ++ {Name: "avxvnniint8", Feature: &X86.HasAVXVNNIInt8}, + + // These capabilities should always be enabled on amd64: + {Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, +@@ -92,10 +95,8 @@ func archInit() { + osSupportsAVX = isSet(1, eax) && isSet(2, eax) + + if runtime.GOOS == "darwin" { +- // Darwin doesn't save/restore AVX-512 mask registers correctly across signal handlers. +- // Since users can't rely on mask register contents, let's not advertise AVX-512 support. +- // See issue 49233. +- osSupportsAVX512 = false ++ // Darwin requires special AVX512 checks, see cpu_darwin_x86.go ++ osSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512() + } else { + // Check if OPMASK and ZMM registers have OS support. + osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax) +@@ -108,7 +109,7 @@ func archInit() { + return + } + +- _, ebx7, ecx7, edx7 := cpuid(7, 0) ++ eax7, ebx7, ecx7, edx7 := cpuid(7, 0) + X86.HasBMI1 = isSet(3, ebx7) + X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX + X86.HasBMI2 = isSet(8, ebx7) +@@ -136,14 +137,24 @@ func archInit() { + X86.HasAVX512VAES = isSet(9, ecx7) + X86.HasAVX512VBMI2 = isSet(6, ecx7) + X86.HasAVX512BITALG = isSet(12, ecx7) +- +- eax71, _, _, _ := cpuid(7, 1) +- X86.HasAVX512BF16 = isSet(5, eax71) + } + + X86.HasAMXTile = isSet(24, edx7) + X86.HasAMXInt8 = isSet(25, edx7) + X86.HasAMXBF16 = isSet(22, edx7) ++ ++ // These features depend on the second level of extended features. ++ if eax7 >= 1 { ++ eax71, _, _, edx71 := cpuid(7, 1) ++ if X86.HasAVX512 { ++ X86.HasAVX512BF16 = isSet(5, eax71) ++ } ++ if X86.HasAVX { ++ X86.HasAVXIFMA = isSet(23, eax71) ++ X86.HasAVXVNNI = isSet(4, eax71) ++ X86.HasAVXVNNIInt8 = isSet(4, edx71) ++ } ++ } + } + + func isSet(bitpos uint, value uint32) bool { +diff --git a/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go b/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go +new file mode 100644 +index 0000000000..4d0888b0c0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go +@@ -0,0 +1,98 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Minimal copy of x/sys/unix so the cpu package can make a ++// system call on Darwin without depending on x/sys/unix. ++ ++//go:build darwin && amd64 && gc ++ ++package cpu ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++type _C_int int32 ++ ++// adapted from unix.Uname() at x/sys/unix/syscall_darwin.go L419 ++func darwinOSRelease(release *[256]byte) error { ++ // from x/sys/unix/zerrors_openbsd_amd64.go ++ const ( ++ CTL_KERN = 0x1 ++ KERN_OSRELEASE = 0x2 ++ ) ++ ++ mib := []_C_int{CTL_KERN, KERN_OSRELEASE} ++ n := unsafe.Sizeof(*release) ++ ++ return sysctl(mib, &release[0], &n, nil, 0) ++} ++ ++type Errno = syscall.Errno ++ ++var _zero uintptr // Single-word zero for use when we need a valid pointer to 0 bytes. ++ ++// from x/sys/unix/zsyscall_darwin_amd64.go L791-807 ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ if _, _, err := syscall_syscall6( ++ libc_sysctl_trampoline_addr, ++ uintptr(_p0), ++ uintptr(len(mib)), ++ uintptr(unsafe.Pointer(old)), ++ uintptr(unsafe.Pointer(oldlen)), ++ uintptr(unsafe.Pointer(new)), ++ uintptr(newlen), ++ ); err != 0 { ++ return err ++ } ++ ++ return nil ++} ++ ++var libc_sysctl_trampoline_addr uintptr ++ ++// adapted from internal/cpu/cpu_arm64_darwin.go ++func darwinSysctlEnabled(name []byte) bool { ++ out := int32(0) ++ nout := unsafe.Sizeof(out) ++ if ret := sysctlbyname(&name[0], (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); ret != nil { ++ return false ++ } ++ return out > 0 ++} ++ ++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" ++ ++var libc_sysctlbyname_trampoline_addr uintptr ++ ++// adapted from runtime/sys_darwin.go in the pattern of sysctl() above, as defined in x/sys/unix ++func sysctlbyname(name *byte, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { ++ if _, _, err := syscall_syscall6( ++ libc_sysctlbyname_trampoline_addr, ++ uintptr(unsafe.Pointer(name)), ++ uintptr(unsafe.Pointer(old)), ++ uintptr(unsafe.Pointer(oldlen)), ++ uintptr(unsafe.Pointer(new)), ++ uintptr(newlen), ++ 0, ++ ); err != 0 { ++ return err ++ } ++ ++ return nil ++} ++ ++//go:cgo_import_dynamic libc_sysctlbyname sysctlbyname "/usr/lib/libSystem.B.dylib" ++ ++// Implemented in the runtime package (runtime/sys_darwin.go) ++func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) ++ ++//go:linkname syscall_syscall6 syscall.syscall6 +diff --git a/vendor/golang.org/x/sys/execabs/execabs.go b/vendor/golang.org/x/sys/execabs/execabs.go +deleted file mode 100644 +index 3bf40fdfec..0000000000 +--- a/vendor/golang.org/x/sys/execabs/execabs.go ++++ /dev/null +@@ -1,102 +0,0 @@ +-// Copyright 2020 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Package execabs is a drop-in replacement for os/exec +-// that requires PATH lookups to find absolute paths. +-// That is, execabs.Command("cmd") runs the same PATH lookup +-// as exec.Command("cmd"), but if the result is a path +-// which is relative, the Run and Start methods will report +-// an error instead of running the executable. +-// +-// See https://blog.golang.org/path-security for more information +-// about when it may be necessary or appropriate to use this package. +-package execabs +- +-import ( +- "context" +- "fmt" +- "os/exec" +- "path/filepath" +- "reflect" +- "unsafe" +-) +- +-// ErrNotFound is the error resulting if a path search failed to find an executable file. +-// It is an alias for exec.ErrNotFound. +-var ErrNotFound = exec.ErrNotFound +- +-// Cmd represents an external command being prepared or run. +-// It is an alias for exec.Cmd. +-type Cmd = exec.Cmd +- +-// Error is returned by LookPath when it fails to classify a file as an executable. +-// It is an alias for exec.Error. +-type Error = exec.Error +- +-// An ExitError reports an unsuccessful exit by a command. +-// It is an alias for exec.ExitError. +-type ExitError = exec.ExitError +- +-func relError(file, path string) error { +- return fmt.Errorf("%s resolves to executable in current directory (.%c%s)", file, filepath.Separator, path) +-} +- +-// LookPath searches for an executable named file in the directories +-// named by the PATH environment variable. If file contains a slash, +-// it is tried directly and the PATH is not consulted. The result will be +-// an absolute path. +-// +-// LookPath differs from exec.LookPath in its handling of PATH lookups, +-// which are used for file names without slashes. If exec.LookPath's +-// PATH lookup would have returned an executable from the current directory, +-// LookPath instead returns an error. +-func LookPath(file string) (string, error) { +- path, err := exec.LookPath(file) +- if err != nil && !isGo119ErrDot(err) { +- return "", err +- } +- if filepath.Base(file) == file && !filepath.IsAbs(path) { +- return "", relError(file, path) +- } +- return path, nil +-} +- +-func fixCmd(name string, cmd *exec.Cmd) { +- if filepath.Base(name) == name && !filepath.IsAbs(cmd.Path) && !isGo119ErrFieldSet(cmd) { +- // exec.Command was called with a bare binary name and +- // exec.LookPath returned a path which is not absolute. +- // Set cmd.lookPathErr and clear cmd.Path so that it +- // cannot be run. +- lookPathErr := (*error)(unsafe.Pointer(reflect.ValueOf(cmd).Elem().FieldByName("lookPathErr").Addr().Pointer())) +- if *lookPathErr == nil { +- *lookPathErr = relError(name, cmd.Path) +- } +- cmd.Path = "" +- } +-} +- +-// CommandContext is like Command but includes a context. +-// +-// The provided context is used to kill the process (by calling os.Process.Kill) +-// if the context becomes done before the command completes on its own. +-func CommandContext(ctx context.Context, name string, arg ...string) *exec.Cmd { +- cmd := exec.CommandContext(ctx, name, arg...) +- fixCmd(name, cmd) +- return cmd +- +-} +- +-// Command returns the Cmd struct to execute the named program with the given arguments. +-// See exec.Command for most details. +-// +-// Command differs from exec.Command in its handling of PATH lookups, +-// which are used when the program name contains no slashes. +-// If exec.Command would have returned an exec.Cmd configured to run an +-// executable from the current directory, Command instead +-// returns an exec.Cmd that will return an error from Start or Run. +-func Command(name string, arg ...string) *exec.Cmd { +- cmd := exec.Command(name, arg...) +- fixCmd(name, cmd) +- return cmd +-} +diff --git a/vendor/golang.org/x/sys/execabs/execabs_go118.go b/vendor/golang.org/x/sys/execabs/execabs_go118.go +deleted file mode 100644 +index 5627d70e39..0000000000 +--- a/vendor/golang.org/x/sys/execabs/execabs_go118.go ++++ /dev/null +@@ -1,17 +0,0 @@ +-// Copyright 2022 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.19 +- +-package execabs +- +-import "os/exec" +- +-func isGo119ErrDot(err error) bool { +- return false +-} +- +-func isGo119ErrFieldSet(cmd *exec.Cmd) bool { +- return false +-} +diff --git a/vendor/golang.org/x/sys/execabs/execabs_go119.go b/vendor/golang.org/x/sys/execabs/execabs_go119.go +deleted file mode 100644 +index d60ab1b419..0000000000 +--- a/vendor/golang.org/x/sys/execabs/execabs_go119.go ++++ /dev/null +@@ -1,20 +0,0 @@ +-// Copyright 2022 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.19 +- +-package execabs +- +-import ( +- "errors" +- "os/exec" +-) +- +-func isGo119ErrDot(err error) bool { +- return errors.Is(err, exec.ErrDot) +-} +- +-func isGo119ErrFieldSet(cmd *exec.Cmd) bool { +- return cmd.Err != nil +-} +diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md +index 7d3c060e12..6e08a76a71 100644 +--- a/vendor/golang.org/x/sys/unix/README.md ++++ b/vendor/golang.org/x/sys/unix/README.md +@@ -156,7 +156,7 @@ from the generated architecture-specific files listed below, and merge these + into a common file for each OS. + + The merge is performed in the following steps: +-1. Construct the set of common code that is idential in all architecture-specific files. ++1. Construct the set of common code that is identical in all architecture-specific files. + 2. Write this common code to the merged file. + 3. Remove the common code from all architecture-specific files. + +diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go +index e7d3df4bd3..b0e4198575 100644 +--- a/vendor/golang.org/x/sys/unix/aliases.go ++++ b/vendor/golang.org/x/sys/unix/aliases.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 ++//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +index 2f67ba86d5..813dfad7d2 100644 +--- a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s ++++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +@@ -9,9 +9,11 @@ + #define PSALAA 1208(R0) + #define GTAB64(x) 80(x) + #define LCA64(x) 88(x) ++#define SAVSTACK_ASYNC(x) 336(x) // in the LCA + #define CAA(x) 8(x) +-#define EDCHPXV(x) 1016(x) // in the CAA +-#define SAVSTACK_ASYNC(x) 336(x) // in the LCA ++#define CEECAATHDID(x) 976(x) // in the CAA ++#define EDCHPXV(x) 1016(x) // in the CAA ++#define GOCB(x) 1104(x) // in the CAA + + // SS_*, where x=SAVSTACK_ASYNC + #define SS_LE(x) 0(x) +@@ -19,405 +21,362 @@ + #define SS_ERRNO(x) 16(x) + #define SS_ERRNOJR(x) 20(x) + +-#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 ++// Function Descriptor Offsets ++#define __errno 0x156*16 ++#define __err2ad 0x16C*16 + +-TEXT Β·clearErrno(SB),NOSPLIT,$0-0 +- BL addrerrno<>(SB) +- MOVD $0, 0(R3) ++// Call Instructions ++#define LE_CALL BYTE $0x0D; BYTE $0x76 // BL R7, R6 ++#define SVC_LOAD BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD ++#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE ++ ++DATA zosLibVec<>(SB)/8, $0 ++GLOBL zosLibVec<>(SB), NOPTR, $8 ++ ++TEXT Β·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 ++ MOVD CAA(R8), R8 ++ MOVD EDCHPXV(R8), R8 ++ MOVD R8, zosLibVec<>(SB) ++ RET ++ ++TEXT Β·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 ++ MOVD zosLibVec<>(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·clearErrno(SB), NOSPLIT, $0-0 ++ BL addrerrno<>(SB) ++ MOVD $0, 0(R3) + RET + + // Returns the address of errno in R3. +-TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 ++TEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0 + // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 + + // Get __errno FuncDesc. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- ADD $(0x156*16), R9 +- LMG 0(R9), R5, R6 ++ MOVD CAA(R8), R9 ++ MOVD EDCHPXV(R9), R9 ++ ADD $(__errno), R9 ++ LMG 0(R9), R5, R6 + + // Switch to saved LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) ++ MOVD SAVSTACK_ASYNC(R8), R9 ++ MOVD 0(R9), R4 ++ MOVD $0, 0(R9) + + // Call __errno function. + LE_CALL + NOPH + + // Switch back to Go stack. +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. ++ XOR R0, R0 // Restore R0 to $0. ++ MOVD R4, 0(R9) // Save stack pointer. + RET + +-TEXT Β·syscall_syscall(SB),NOSPLIT,$0-56 +- BL runtimeΒ·entersyscall(SB) +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 ++// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) ++TEXT Β·svcCall(SB), NOSPLIT, $0 ++ BL runtimeΒ·save_g(SB) // Save g and stack pointer ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 ++ MOVD SAVSTACK_ASYNC(R8), R9 ++ MOVD R15, 0(R9) + +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 ++ MOVD argv+8(FP), R1 // Move function arguments into registers ++ MOVD dsa+16(FP), g ++ MOVD fnptr+0(FP), R15 + +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 ++ BYTE $0x0D // Branch to function ++ BYTE $0xEF + +- // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) ++ BL runtimeΒ·load_g(SB) // Restore g and stack pointer ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 ++ MOVD SAVSTACK_ASYNC(R8), R9 ++ MOVD 0(R9), R15 + +- // Call function. +- LE_CALL +- NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+32(FP) +- MOVD R0, r2+40(FP) +- MOVD R0, err+48(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL addrerrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+48(FP) +-done: +- BL runtimeΒ·exitsyscall(SB) + RET + +-TEXT Β·syscall_rawsyscall(SB),NOSPLIT,$0-56 +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 +- +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 ++// func svcLoad(name *byte) unsafe.Pointer ++TEXT Β·svcLoad(SB), NOSPLIT, $0 ++ MOVD R15, R2 // Save go stack pointer ++ MOVD name+0(FP), R0 // Move SVC args into registers ++ MOVD $0x80000000, R1 ++ MOVD $0, R15 ++ SVC_LOAD ++ MOVW R15, R3 // Save return code from SVC ++ MOVD R2, R15 // Restore go stack pointer ++ CMP R3, $0 // Check SVC return code ++ BNE error ++ ++ MOVD $-2, R3 // Reset last bit of entry point to zero ++ AND R0, R3 ++ MOVD R3, ret+8(FP) // Return entry point returned by SVC ++ CMP R0, R3 // Check if last bit of entry point was set ++ BNE done ++ ++ MOVD R15, R2 // Save go stack pointer ++ MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) ++ SVC_DELETE ++ MOVD R2, R15 // Restore go stack pointer + +- // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) ++error: ++ MOVD $0, ret+8(FP) // Return 0 on failure + +- // Call function. +- LE_CALL +- NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+32(FP) +- MOVD R0, r2+40(FP) +- MOVD R0, err+48(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL addrerrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+48(FP) + done: ++ XOR R0, R0 // Reset r0 to 0 + RET + +-TEXT Β·syscall_syscall6(SB),NOSPLIT,$0-80 +- BL runtimeΒ·entersyscall(SB) +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 ++// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 ++TEXT Β·svcUnload(SB), NOSPLIT, $0 ++ MOVD R15, R2 // Save go stack pointer ++ MOVD name+0(FP), R0 // Move SVC args into registers ++ MOVD fnptr+8(FP), R15 ++ SVC_DELETE ++ XOR R0, R0 // Reset r0 to 0 ++ MOVD R15, R1 // Save SVC return code ++ MOVD R2, R15 // Restore go stack pointer ++ MOVD R1, ret+16(FP) // Return SVC return code ++ RET + ++// func gettid() uint64 ++TEXT Β·gettid(SB), NOSPLIT, $0 + // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 + +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 ++ // Get CEECAATHDID ++ MOVD CAA(R8), R9 ++ MOVD CEECAATHDID(R9), R9 ++ MOVD R9, ret+0(FP) + +- // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) +- +- // Fill in parameter list. +- MOVD a4+32(FP), R12 +- MOVD R12, (2176+24)(R4) +- MOVD a5+40(FP), R12 +- MOVD R12, (2176+32)(R4) +- MOVD a6+48(FP), R12 +- MOVD R12, (2176+40)(R4) +- +- // Call function. +- LE_CALL +- NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+56(FP) +- MOVD R0, r2+64(FP) +- MOVD R0, err+72(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL addrerrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+72(FP) +-done: +- BL runtimeΒ·exitsyscall(SB) + RET + +-TEXT Β·syscall_rawsyscall6(SB),NOSPLIT,$0-80 +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 +- +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 ++// ++// Call LE function, if the return is -1 ++// errno and errno2 is retrieved ++// ++TEXT Β·CallLeFuncWithErr(SB), NOSPLIT, $0 ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 ++ MOVD CAA(R8), R9 ++ MOVD g, GOCB(R9) + + // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) +- +- // Fill in parameter list. +- MOVD a4+32(FP), R12 +- MOVD R12, (2176+24)(R4) +- MOVD a5+40(FP), R12 +- MOVD R12, (2176+32)(R4) +- MOVD a6+48(FP), R12 +- MOVD R12, (2176+40)(R4) +- +- // Call function. +- LE_CALL ++ MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address ++ MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer ++ ++ MOVD parms_base+8(FP), R7 // R7 -> argument array ++ MOVD parms_len+16(FP), R8 // R8 number of arguments ++ ++ // arg 1 ---> R1 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ MOVD 0(R7), R1 ++ ++ // arg 2 ---> R2 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ ADD $8, R7 ++ MOVD 0(R7), R2 ++ ++ // arg 3 --> R3 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ ADD $8, R7 ++ MOVD 0(R7), R3 ++ ++ CMP R8, $0 ++ BEQ docall ++ MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument ++ ++repeat: ++ ADD $8, R7 ++ MOVD 0(R7), R0 // advance arg pointer by 8 byte ++ ADD $8, R6 // advance LE argument address by 8 byte ++ MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame ++ SUB $1, R8 ++ CMP R8, $0 ++ BNE repeat ++ ++docall: ++ MOVD funcdesc+0(FP), R8 // R8-> function descriptor ++ LMG 0(R8), R5, R6 ++ MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC ++ LE_CALL // balr R7, R6 (return #1) ++ NOPH ++ MOVD R3, ret+32(FP) ++ CMP R3, $-1 // compare result to -1 ++ BNE done ++ ++ // retrieve errno and errno2 ++ MOVD zosLibVec<>(SB), R8 ++ ADD $(__errno), R8 ++ LMG 0(R8), R5, R6 ++ LE_CALL // balr R7, R6 __errno (return #3) + NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+56(FP) +- MOVD R0, r2+64(FP) +- MOVD R0, err+72(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL Β·rrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+72(FP) ++ MOVWZ 0(R3), R3 ++ MOVD R3, err+48(FP) ++ MOVD zosLibVec<>(SB), R8 ++ ADD $(__err2ad), R8 ++ LMG 0(R8), R5, R6 ++ LE_CALL // balr R7, R6 __err2ad (return #2) ++ NOPH ++ MOVW (R3), R2 // retrieve errno2 ++ MOVD R2, errno2+40(FP) // store in return area ++ + done: ++ MOVD R4, 0(R9) // Save stack pointer. + RET + +-TEXT Β·syscall_syscall9(SB),NOSPLIT,$0 +- BL runtimeΒ·entersyscall(SB) +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 +- +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 ++// ++// Call LE function, if the return is 0 ++// errno and errno2 is retrieved ++// ++TEXT Β·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0 ++ MOVW PSALAA, R8 ++ MOVD LCA64(R8), R8 ++ MOVD CAA(R8), R9 ++ MOVD g, GOCB(R9) + + // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) +- +- // Fill in parameter list. +- MOVD a4+32(FP), R12 +- MOVD R12, (2176+24)(R4) +- MOVD a5+40(FP), R12 +- MOVD R12, (2176+32)(R4) +- MOVD a6+48(FP), R12 +- MOVD R12, (2176+40)(R4) +- MOVD a7+56(FP), R12 +- MOVD R12, (2176+48)(R4) +- MOVD a8+64(FP), R12 +- MOVD R12, (2176+56)(R4) +- MOVD a9+72(FP), R12 +- MOVD R12, (2176+64)(R4) +- +- // Call function. +- LE_CALL ++ MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address ++ MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer ++ ++ MOVD parms_base+8(FP), R7 // R7 -> argument array ++ MOVD parms_len+16(FP), R8 // R8 number of arguments ++ ++ // arg 1 ---> R1 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ MOVD 0(R7), R1 ++ ++ // arg 2 ---> R2 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ ADD $8, R7 ++ MOVD 0(R7), R2 ++ ++ // arg 3 --> R3 ++ CMP R8, $0 ++ BEQ docall ++ SUB $1, R8 ++ ADD $8, R7 ++ MOVD 0(R7), R3 ++ ++ CMP R8, $0 ++ BEQ docall ++ MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument ++ ++repeat: ++ ADD $8, R7 ++ MOVD 0(R7), R0 // advance arg pointer by 8 byte ++ ADD $8, R6 // advance LE argument address by 8 byte ++ MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame ++ SUB $1, R8 ++ CMP R8, $0 ++ BNE repeat ++ ++docall: ++ MOVD funcdesc+0(FP), R8 // R8-> function descriptor ++ LMG 0(R8), R5, R6 ++ MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC ++ LE_CALL // balr R7, R6 (return #1) + NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+80(FP) +- MOVD R0, r2+88(FP) +- MOVD R0, err+96(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL addrerrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+96(FP) +-done: +- BL runtimeΒ·exitsyscall(SB) +- RET +- +-TEXT Β·syscall_rawsyscall9(SB),NOSPLIT,$0 +- MOVD a1+8(FP), R1 +- MOVD a2+16(FP), R2 +- MOVD a3+24(FP), R3 +- +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- +- // Get function. +- MOVD CAA(R8), R9 +- MOVD EDCHPXV(R9), R9 +- MOVD trap+0(FP), R5 +- SLD $4, R5 +- ADD R5, R9 +- LMG 0(R9), R5, R6 +- +- // Restore LE stack. +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R4 +- MOVD $0, 0(R9) +- +- // Fill in parameter list. +- MOVD a4+32(FP), R12 +- MOVD R12, (2176+24)(R4) +- MOVD a5+40(FP), R12 +- MOVD R12, (2176+32)(R4) +- MOVD a6+48(FP), R12 +- MOVD R12, (2176+40)(R4) +- MOVD a7+56(FP), R12 +- MOVD R12, (2176+48)(R4) +- MOVD a8+64(FP), R12 +- MOVD R12, (2176+56)(R4) +- MOVD a9+72(FP), R12 +- MOVD R12, (2176+64)(R4) +- +- // Call function. +- LE_CALL ++ MOVD R3, ret+32(FP) ++ CMP R3, $0 // compare result to 0 ++ BNE done ++ ++ // retrieve errno and errno2 ++ MOVD zosLibVec<>(SB), R8 ++ ADD $(__errno), R8 ++ LMG 0(R8), R5, R6 ++ LE_CALL // balr R7, R6 __errno (return #3) + NOPH +- XOR R0, R0 // Restore R0 to $0. +- MOVD R4, 0(R9) // Save stack pointer. +- +- MOVD R3, r1+80(FP) +- MOVD R0, r2+88(FP) +- MOVD R0, err+96(FP) +- MOVW R3, R4 +- CMP R4, $-1 +- BNE done +- BL addrerrno<>(SB) +- MOVWZ 0(R3), R3 +- MOVD R3, err+96(FP) +-done: +- RET +- +-// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +-TEXT Β·svcCall(SB),NOSPLIT,$0 +- BL runtimeΒ·save_g(SB) // Save g and stack pointer +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD R15, 0(R9) +- +- MOVD argv+8(FP), R1 // Move function arguments into registers +- MOVD dsa+16(FP), g +- MOVD fnptr+0(FP), R15 +- +- BYTE $0x0D // Branch to function +- BYTE $0xEF +- +- BL runtimeΒ·load_g(SB) // Restore g and stack pointer +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- MOVD SAVSTACK_ASYNC(R8), R9 +- MOVD 0(R9), R15 +- +- RET +- +-// func svcLoad(name *byte) unsafe.Pointer +-TEXT Β·svcLoad(SB),NOSPLIT,$0 +- MOVD R15, R2 // Save go stack pointer +- MOVD name+0(FP), R0 // Move SVC args into registers +- MOVD $0x80000000, R1 +- MOVD $0, R15 +- BYTE $0x0A // SVC 08 LOAD +- BYTE $0x08 +- MOVW R15, R3 // Save return code from SVC +- MOVD R2, R15 // Restore go stack pointer +- CMP R3, $0 // Check SVC return code +- BNE error +- +- MOVD $-2, R3 // Reset last bit of entry point to zero +- AND R0, R3 +- MOVD R3, addr+8(FP) // Return entry point returned by SVC +- CMP R0, R3 // Check if last bit of entry point was set +- BNE done +- +- MOVD R15, R2 // Save go stack pointer +- MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) +- BYTE $0x0A // SVC 09 DELETE +- BYTE $0x09 +- MOVD R2, R15 // Restore go stack pointer ++ MOVWZ 0(R3), R3 ++ MOVD R3, err+48(FP) ++ MOVD zosLibVec<>(SB), R8 ++ ADD $(__err2ad), R8 ++ LMG 0(R8), R5, R6 ++ LE_CALL // balr R7, R6 __err2ad (return #2) ++ NOPH ++ MOVW (R3), R2 // retrieve errno2 ++ MOVD R2, errno2+40(FP) // store in return area ++ XOR R2, R2 ++ MOVWZ R2, (R3) // clear errno2 + +-error: +- MOVD $0, addr+8(FP) // Return 0 on failure + done: +- XOR R0, R0 // Reset r0 to 0 ++ MOVD R4, 0(R9) // Save stack pointer. + RET + +-// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 +-TEXT Β·svcUnload(SB),NOSPLIT,$0 +- MOVD R15, R2 // Save go stack pointer +- MOVD name+0(FP), R0 // Move SVC args into registers +- MOVD addr+8(FP), R15 +- BYTE $0x0A // SVC 09 +- BYTE $0x09 +- XOR R0, R0 // Reset r0 to 0 +- MOVD R15, R1 // Save SVC return code +- MOVD R2, R15 // Restore go stack pointer +- MOVD R1, rc+0(FP) // Return SVC return code ++// ++// function to test if a pointer can be safely dereferenced (content read) ++// return 0 for succces ++// ++TEXT Β·ptrtest(SB), NOSPLIT, $0-16 ++ MOVD arg+0(FP), R10 // test pointer in R10 ++ ++ // set up R2 to point to CEECAADMC ++ BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 ++ BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 ++ BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 ++ BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) ++ BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) ++ BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) ++ ++ // set up R5 to point to the "shunt" path which set 1 to R3 (failure) ++ BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 ++ BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 ++ BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 ++ ++ // if r3 is not zero (failed) then branch to finish ++ BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 ++ BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 ++ ++ // stomic store shunt address in R5 into CEECAADMC ++ BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) ++ ++ // now try reading from the test pointer in R10, if it fails it branches to the "lghi" instruction above ++ BYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 9,0(10) ++ ++ // finish here, restore 0 into CEECAADMC ++ BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 ++ BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) ++ MOVD R3, ret+8(FP) // result in R3 + RET + +-// func gettid() uint64 +-TEXT Β·gettid(SB), NOSPLIT, $0 +- // Get library control area (LCA). +- MOVW PSALAA, R8 +- MOVD LCA64(R8), R8 +- +- // Get CEECAATHDID +- MOVD CAA(R8), R9 +- MOVD 0x3D0(R9), R9 +- MOVD R9, ret+0(FP) +- ++// ++// function to test if a untptr can be loaded from a pointer ++// return 1: the 8-byte content ++// 2: 0 for success, 1 for failure ++// ++// func safeload(ptr uintptr) ( value uintptr, error uintptr) ++TEXT Β·safeload(SB), NOSPLIT, $0-24 ++ MOVD ptr+0(FP), R10 // test pointer in R10 ++ MOVD $0x0, R6 ++ BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 ++ BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 ++ BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 ++ BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) ++ BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) ++ BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) ++ BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 ++ BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 ++ BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 ++ BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 ++ BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 ++ BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) ++ BYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 6,0(10) ++ BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 ++ BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) ++ MOVD R6, value+8(FP) // result in R6 ++ MOVD R3, error+16(FP) // error in R3 + RET +diff --git a/vendor/golang.org/x/sys/unix/auxv.go b/vendor/golang.org/x/sys/unix/auxv.go +new file mode 100644 +index 0000000000..37a82528f5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/auxv.go +@@ -0,0 +1,36 @@ ++// Copyright 2025 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++//go:linkname runtime_getAuxv runtime.getAuxv ++func runtime_getAuxv() []uintptr ++ ++// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. ++// The returned slice is always a fresh copy, owned by the caller. ++// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, ++// which happens in some locked-down environments and build modes. ++func Auxv() ([][2]uintptr, error) { ++ vec := runtime_getAuxv() ++ vecLen := len(vec) ++ ++ if vecLen == 0 { ++ return nil, syscall.ENOENT ++ } ++ ++ if vecLen%2 != 0 { ++ return nil, syscall.EINVAL ++ } ++ ++ result := make([]uintptr, vecLen) ++ copy(result, vec) ++ return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil ++} +diff --git a/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/vendor/golang.org/x/sys/unix/auxv_unsupported.go +new file mode 100644 +index 0000000000..1200487f2e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/auxv_unsupported.go +@@ -0,0 +1,13 @@ ++// Copyright 2025 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) ++ ++package unix ++ ++import "syscall" ++ ++func Auxv() ([][2]uintptr, error) { ++ return nil, syscall.ENOTSUP ++} +diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +new file mode 100644 +index 0000000000..39d647d863 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +@@ -0,0 +1,657 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build zos ++ ++package unix ++ ++import ( ++ "bytes" ++ "fmt" ++ "unsafe" ++) ++ ++//go:noescape ++func bpxcall(plist []unsafe.Pointer, bpx_offset int64) ++ ++//go:noescape ++func A2e([]byte) ++ ++//go:noescape ++func E2a([]byte) ++ ++const ( ++ BPX4STA = 192 // stat ++ BPX4FST = 104 // fstat ++ BPX4LST = 132 // lstat ++ BPX4OPN = 156 // open ++ BPX4CLO = 72 // close ++ BPX4CHR = 500 // chattr ++ BPX4FCR = 504 // fchattr ++ BPX4LCR = 1180 // lchattr ++ BPX4CTW = 492 // cond_timed_wait ++ BPX4GTH = 1056 // __getthent ++ BPX4PTQ = 412 // pthread_quiesc ++ BPX4PTR = 320 // ptrace ++) ++ ++const ( ++ //options ++ //byte1 ++ BPX_OPNFHIGH = 0x80 ++ //byte2 ++ BPX_OPNFEXEC = 0x80 ++ //byte3 ++ BPX_O_NOLARGEFILE = 0x08 ++ BPX_O_LARGEFILE = 0x04 ++ BPX_O_ASYNCSIG = 0x02 ++ BPX_O_SYNC = 0x01 ++ //byte4 ++ BPX_O_CREXCL = 0xc0 ++ BPX_O_CREAT = 0x80 ++ BPX_O_EXCL = 0x40 ++ BPX_O_NOCTTY = 0x20 ++ BPX_O_TRUNC = 0x10 ++ BPX_O_APPEND = 0x08 ++ BPX_O_NONBLOCK = 0x04 ++ BPX_FNDELAY = 0x04 ++ BPX_O_RDWR = 0x03 ++ BPX_O_RDONLY = 0x02 ++ BPX_O_WRONLY = 0x01 ++ BPX_O_ACCMODE = 0x03 ++ BPX_O_GETFL = 0x0f ++ ++ //mode ++ // byte1 (file type) ++ BPX_FT_DIR = 1 ++ BPX_FT_CHARSPEC = 2 ++ BPX_FT_REGFILE = 3 ++ BPX_FT_FIFO = 4 ++ BPX_FT_SYMLINK = 5 ++ BPX_FT_SOCKET = 6 ++ //byte3 ++ BPX_S_ISUID = 0x08 ++ BPX_S_ISGID = 0x04 ++ BPX_S_ISVTX = 0x02 ++ BPX_S_IRWXU1 = 0x01 ++ BPX_S_IRUSR = 0x01 ++ //byte4 ++ BPX_S_IRWXU2 = 0xc0 ++ BPX_S_IWUSR = 0x80 ++ BPX_S_IXUSR = 0x40 ++ BPX_S_IRWXG = 0x38 ++ BPX_S_IRGRP = 0x20 ++ BPX_S_IWGRP = 0x10 ++ BPX_S_IXGRP = 0x08 ++ BPX_S_IRWXOX = 0x07 ++ BPX_S_IROTH = 0x04 ++ BPX_S_IWOTH = 0x02 ++ BPX_S_IXOTH = 0x01 ++ ++ CW_INTRPT = 1 ++ CW_CONDVAR = 32 ++ CW_TIMEOUT = 64 ++ ++ PGTHA_NEXT = 2 ++ PGTHA_CURRENT = 1 ++ PGTHA_FIRST = 0 ++ PGTHA_LAST = 3 ++ PGTHA_PROCESS = 0x80 ++ PGTHA_CONTTY = 0x40 ++ PGTHA_PATH = 0x20 ++ PGTHA_COMMAND = 0x10 ++ PGTHA_FILEDATA = 0x08 ++ PGTHA_THREAD = 0x04 ++ PGTHA_PTAG = 0x02 ++ PGTHA_COMMANDLONG = 0x01 ++ PGTHA_THREADFAST = 0x80 ++ PGTHA_FILEPATH = 0x40 ++ PGTHA_THDSIGMASK = 0x20 ++ // thread quiece mode ++ QUIESCE_TERM int32 = 1 ++ QUIESCE_FORCE int32 = 2 ++ QUIESCE_QUERY int32 = 3 ++ QUIESCE_FREEZE int32 = 4 ++ QUIESCE_UNFREEZE int32 = 5 ++ FREEZE_THIS_THREAD int32 = 6 ++ FREEZE_EXIT int32 = 8 ++ QUIESCE_SRB int32 = 9 ++) ++ ++type Pgtha struct { ++ Pid uint32 // 0 ++ Tid0 uint32 // 4 ++ Tid1 uint32 ++ Accesspid byte // C ++ Accesstid byte // D ++ Accessasid uint16 // E ++ Loginname [8]byte // 10 ++ Flag1 byte // 18 ++ Flag1b2 byte // 19 ++} ++ ++type Bpxystat_t struct { // DSECT BPXYSTAT ++ St_id [4]uint8 // 0 ++ St_length uint16 // 0x4 ++ St_version uint16 // 0x6 ++ St_mode uint32 // 0x8 ++ St_ino uint32 // 0xc ++ St_dev uint32 // 0x10 ++ St_nlink uint32 // 0x14 ++ St_uid uint32 // 0x18 ++ St_gid uint32 // 0x1c ++ St_size uint64 // 0x20 ++ St_atime uint32 // 0x28 ++ St_mtime uint32 // 0x2c ++ St_ctime uint32 // 0x30 ++ St_rdev uint32 // 0x34 ++ St_auditoraudit uint32 // 0x38 ++ St_useraudit uint32 // 0x3c ++ St_blksize uint32 // 0x40 ++ St_createtime uint32 // 0x44 ++ St_auditid [4]uint32 // 0x48 ++ St_res01 uint32 // 0x58 ++ Ft_ccsid uint16 // 0x5c ++ Ft_flags uint16 // 0x5e ++ St_res01a [2]uint32 // 0x60 ++ St_res02 uint32 // 0x68 ++ St_blocks uint32 // 0x6c ++ St_opaque [3]uint8 // 0x70 ++ St_visible uint8 // 0x73 ++ St_reftime uint32 // 0x74 ++ St_fid uint64 // 0x78 ++ St_filefmt uint8 // 0x80 ++ St_fspflag2 uint8 // 0x81 ++ St_res03 [2]uint8 // 0x82 ++ St_ctimemsec uint32 // 0x84 ++ St_seclabel [8]uint8 // 0x88 ++ St_res04 [4]uint8 // 0x90 ++ // end of version 1 ++ _ uint32 // 0x94 ++ St_atime64 uint64 // 0x98 ++ St_mtime64 uint64 // 0xa0 ++ St_ctime64 uint64 // 0xa8 ++ St_createtime64 uint64 // 0xb0 ++ St_reftime64 uint64 // 0xb8 ++ _ uint64 // 0xc0 ++ St_res05 [16]uint8 // 0xc8 ++ // end of version 2 ++} ++ ++type BpxFilestatus struct { ++ Oflag1 byte ++ Oflag2 byte ++ Oflag3 byte ++ Oflag4 byte ++} ++ ++type BpxMode struct { ++ Ftype byte ++ Mode1 byte ++ Mode2 byte ++ Mode3 byte ++} ++ ++// Thr attribute structure for extended attributes ++type Bpxyatt_t struct { // DSECT BPXYATT ++ Att_id [4]uint8 ++ Att_version uint16 ++ Att_res01 [2]uint8 ++ Att_setflags1 uint8 ++ Att_setflags2 uint8 ++ Att_setflags3 uint8 ++ Att_setflags4 uint8 ++ Att_mode uint32 ++ Att_uid uint32 ++ Att_gid uint32 ++ Att_opaquemask [3]uint8 ++ Att_visblmaskres uint8 ++ Att_opaque [3]uint8 ++ Att_visibleres uint8 ++ Att_size_h uint32 ++ Att_size_l uint32 ++ Att_atime uint32 ++ Att_mtime uint32 ++ Att_auditoraudit uint32 ++ Att_useraudit uint32 ++ Att_ctime uint32 ++ Att_reftime uint32 ++ // end of version 1 ++ Att_filefmt uint8 ++ Att_res02 [3]uint8 ++ Att_filetag uint32 ++ Att_res03 [8]uint8 ++ // end of version 2 ++ Att_atime64 uint64 ++ Att_mtime64 uint64 ++ Att_ctime64 uint64 ++ Att_reftime64 uint64 ++ Att_seclabel [8]uint8 ++ Att_ver3res02 [8]uint8 ++ // end of version 3 ++} ++ ++func BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) { ++ if len(name) < 1024 { ++ var namebuf [1024]byte ++ sz := int32(copy(namebuf[:], name)) ++ A2e(namebuf[:sz]) ++ var parms [7]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sz) ++ parms[1] = unsafe.Pointer(&namebuf[0]) ++ parms[2] = unsafe.Pointer(options) ++ parms[3] = unsafe.Pointer(mode) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4OPN) ++ return rv, rc, rn ++ } ++ return -1, -1, -1 ++} ++ ++func BpxClose(fd int32) (rv int32, rc int32, rn int32) { ++ var parms [4]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&fd) ++ parms[1] = unsafe.Pointer(&rv) ++ parms[2] = unsafe.Pointer(&rc) ++ parms[3] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4CLO) ++ return rv, rc, rn ++} ++ ++func BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) { ++ st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} ++ st.St_version = 2 ++ stat_sz := uint32(unsafe.Sizeof(*st)) ++ var parms [6]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&fd) ++ parms[1] = unsafe.Pointer(&stat_sz) ++ parms[2] = unsafe.Pointer(st) ++ parms[3] = unsafe.Pointer(&rv) ++ parms[4] = unsafe.Pointer(&rc) ++ parms[5] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4FST) ++ return rv, rc, rn ++} ++ ++func BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { ++ if len(name) < 1024 { ++ var namebuf [1024]byte ++ sz := int32(copy(namebuf[:], name)) ++ A2e(namebuf[:sz]) ++ st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} ++ st.St_version = 2 ++ stat_sz := uint32(unsafe.Sizeof(*st)) ++ var parms [7]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sz) ++ parms[1] = unsafe.Pointer(&namebuf[0]) ++ parms[2] = unsafe.Pointer(&stat_sz) ++ parms[3] = unsafe.Pointer(st) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4STA) ++ return rv, rc, rn ++ } ++ return -1, -1, -1 ++} ++ ++func BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { ++ if len(name) < 1024 { ++ var namebuf [1024]byte ++ sz := int32(copy(namebuf[:], name)) ++ A2e(namebuf[:sz]) ++ st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} ++ st.St_version = 2 ++ stat_sz := uint32(unsafe.Sizeof(*st)) ++ var parms [7]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sz) ++ parms[1] = unsafe.Pointer(&namebuf[0]) ++ parms[2] = unsafe.Pointer(&stat_sz) ++ parms[3] = unsafe.Pointer(st) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4LST) ++ return rv, rc, rn ++ } ++ return -1, -1, -1 ++} ++ ++func BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { ++ if len(path) >= 1024 { ++ return -1, -1, -1 ++ } ++ var namebuf [1024]byte ++ sz := int32(copy(namebuf[:], path)) ++ A2e(namebuf[:sz]) ++ attr_sz := uint32(unsafe.Sizeof(*attr)) ++ var parms [7]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sz) ++ parms[1] = unsafe.Pointer(&namebuf[0]) ++ parms[2] = unsafe.Pointer(&attr_sz) ++ parms[3] = unsafe.Pointer(attr) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4CHR) ++ return rv, rc, rn ++} ++ ++func BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { ++ if len(path) >= 1024 { ++ return -1, -1, -1 ++ } ++ var namebuf [1024]byte ++ sz := int32(copy(namebuf[:], path)) ++ A2e(namebuf[:sz]) ++ attr_sz := uint32(unsafe.Sizeof(*attr)) ++ var parms [7]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sz) ++ parms[1] = unsafe.Pointer(&namebuf[0]) ++ parms[2] = unsafe.Pointer(&attr_sz) ++ parms[3] = unsafe.Pointer(attr) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4LCR) ++ return rv, rc, rn ++} ++ ++func BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { ++ attr_sz := uint32(unsafe.Sizeof(*attr)) ++ var parms [6]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&fd) ++ parms[1] = unsafe.Pointer(&attr_sz) ++ parms[2] = unsafe.Pointer(attr) ++ parms[3] = unsafe.Pointer(&rv) ++ parms[4] = unsafe.Pointer(&rc) ++ parms[5] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4FCR) ++ return rv, rc, rn ++} ++ ++func BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) { ++ var parms [8]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&sec) ++ parms[1] = unsafe.Pointer(&nsec) ++ parms[2] = unsafe.Pointer(&events) ++ parms[3] = unsafe.Pointer(secrem) ++ parms[4] = unsafe.Pointer(nsecrem) ++ parms[5] = unsafe.Pointer(&rv) ++ parms[6] = unsafe.Pointer(&rc) ++ parms[7] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4CTW) ++ return rv, rc, rn ++} ++func BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) { ++ var parms [7]unsafe.Pointer ++ inlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is "packed" and must be 26-byte ++ parms[0] = unsafe.Pointer(&inlen) ++ parms[1] = unsafe.Pointer(&in) ++ parms[2] = unsafe.Pointer(outlen) ++ parms[3] = unsafe.Pointer(&out) ++ parms[4] = unsafe.Pointer(&rv) ++ parms[5] = unsafe.Pointer(&rc) ++ parms[6] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4GTH) ++ return rv, rc, rn ++} ++func ZosJobname() (jobname string, err error) { ++ var pgtha Pgtha ++ pgtha.Pid = uint32(Getpid()) ++ pgtha.Accesspid = PGTHA_CURRENT ++ pgtha.Flag1 = PGTHA_PROCESS ++ var out [256]byte ++ var outlen uint32 ++ outlen = 256 ++ rv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0])) ++ if rv == 0 { ++ gthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic ++ ix := bytes.Index(out[:], gthc) ++ if ix == -1 { ++ err = fmt.Errorf("BPX4GTH: gthc return data not found") ++ return ++ } ++ jn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80 ++ E2a(jn) ++ jobname = string(bytes.TrimRight(jn, " ")) ++ ++ } else { ++ err = fmt.Errorf("BPX4GTH: rc=%d errno=%d reason=code=0x%x", rv, rc, rn) ++ } ++ return ++} ++func Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) { ++ var userdata [8]byte ++ var parms [5]unsafe.Pointer ++ copy(userdata[:], data+" ") ++ A2e(userdata[:]) ++ parms[0] = unsafe.Pointer(&code) ++ parms[1] = unsafe.Pointer(&userdata[0]) ++ parms[2] = unsafe.Pointer(&rv) ++ parms[3] = unsafe.Pointer(&rc) ++ parms[4] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4PTQ) ++ return rv, rc, rn ++} ++ ++const ( ++ PT_TRACE_ME = 0 // Debug this process ++ PT_READ_I = 1 // Read a full word ++ PT_READ_D = 2 // Read a full word ++ PT_READ_U = 3 // Read control info ++ PT_WRITE_I = 4 //Write a full word ++ PT_WRITE_D = 5 //Write a full word ++ PT_CONTINUE = 7 //Continue the process ++ PT_KILL = 8 //Terminate the process ++ PT_READ_GPR = 11 // Read GPR, CR, PSW ++ PT_READ_FPR = 12 // Read FPR ++ PT_READ_VR = 13 // Read VR ++ PT_WRITE_GPR = 14 // Write GPR, CR, PSW ++ PT_WRITE_FPR = 15 // Write FPR ++ PT_WRITE_VR = 16 // Write VR ++ PT_READ_BLOCK = 17 // Read storage ++ PT_WRITE_BLOCK = 19 // Write storage ++ PT_READ_GPRH = 20 // Read GPRH ++ PT_WRITE_GPRH = 21 // Write GPRH ++ PT_REGHSET = 22 // Read all GPRHs ++ PT_ATTACH = 30 // Attach to a process ++ PT_DETACH = 31 // Detach from a process ++ PT_REGSET = 32 // Read all GPRs ++ PT_REATTACH = 33 // Reattach to a process ++ PT_LDINFO = 34 // Read loader info ++ PT_MULTI = 35 // Multi process mode ++ PT_LD64INFO = 36 // RMODE64 Info Area ++ PT_BLOCKREQ = 40 // Block request ++ PT_THREAD_INFO = 60 // Read thread info ++ PT_THREAD_MODIFY = 61 ++ PT_THREAD_READ_FOCUS = 62 ++ PT_THREAD_WRITE_FOCUS = 63 ++ PT_THREAD_HOLD = 64 ++ PT_THREAD_SIGNAL = 65 ++ PT_EXPLAIN = 66 ++ PT_EVENTS = 67 ++ PT_THREAD_INFO_EXTENDED = 68 ++ PT_REATTACH2 = 71 ++ PT_CAPTURE = 72 ++ PT_UNCAPTURE = 73 ++ PT_GET_THREAD_TCB = 74 ++ PT_GET_ALET = 75 ++ PT_SWAPIN = 76 ++ PT_EXTENDED_EVENT = 98 ++ PT_RECOVER = 99 // Debug a program check ++ PT_GPR0 = 0 // General purpose register 0 ++ PT_GPR1 = 1 // General purpose register 1 ++ PT_GPR2 = 2 // General purpose register 2 ++ PT_GPR3 = 3 // General purpose register 3 ++ PT_GPR4 = 4 // General purpose register 4 ++ PT_GPR5 = 5 // General purpose register 5 ++ PT_GPR6 = 6 // General purpose register 6 ++ PT_GPR7 = 7 // General purpose register 7 ++ PT_GPR8 = 8 // General purpose register 8 ++ PT_GPR9 = 9 // General purpose register 9 ++ PT_GPR10 = 10 // General purpose register 10 ++ PT_GPR11 = 11 // General purpose register 11 ++ PT_GPR12 = 12 // General purpose register 12 ++ PT_GPR13 = 13 // General purpose register 13 ++ PT_GPR14 = 14 // General purpose register 14 ++ PT_GPR15 = 15 // General purpose register 15 ++ PT_FPR0 = 16 // Floating point register 0 ++ PT_FPR1 = 17 // Floating point register 1 ++ PT_FPR2 = 18 // Floating point register 2 ++ PT_FPR3 = 19 // Floating point register 3 ++ PT_FPR4 = 20 // Floating point register 4 ++ PT_FPR5 = 21 // Floating point register 5 ++ PT_FPR6 = 22 // Floating point register 6 ++ PT_FPR7 = 23 // Floating point register 7 ++ PT_FPR8 = 24 // Floating point register 8 ++ PT_FPR9 = 25 // Floating point register 9 ++ PT_FPR10 = 26 // Floating point register 10 ++ PT_FPR11 = 27 // Floating point register 11 ++ PT_FPR12 = 28 // Floating point register 12 ++ PT_FPR13 = 29 // Floating point register 13 ++ PT_FPR14 = 30 // Floating point register 14 ++ PT_FPR15 = 31 // Floating point register 15 ++ PT_FPC = 32 // Floating point control register ++ PT_PSW = 40 // PSW ++ PT_PSW0 = 40 // Left half of the PSW ++ PT_PSW1 = 41 // Right half of the PSW ++ PT_CR0 = 42 // Control register 0 ++ PT_CR1 = 43 // Control register 1 ++ PT_CR2 = 44 // Control register 2 ++ PT_CR3 = 45 // Control register 3 ++ PT_CR4 = 46 // Control register 4 ++ PT_CR5 = 47 // Control register 5 ++ PT_CR6 = 48 // Control register 6 ++ PT_CR7 = 49 // Control register 7 ++ PT_CR8 = 50 // Control register 8 ++ PT_CR9 = 51 // Control register 9 ++ PT_CR10 = 52 // Control register 10 ++ PT_CR11 = 53 // Control register 11 ++ PT_CR12 = 54 // Control register 12 ++ PT_CR13 = 55 // Control register 13 ++ PT_CR14 = 56 // Control register 14 ++ PT_CR15 = 57 // Control register 15 ++ PT_GPRH0 = 58 // GP High register 0 ++ PT_GPRH1 = 59 // GP High register 1 ++ PT_GPRH2 = 60 // GP High register 2 ++ PT_GPRH3 = 61 // GP High register 3 ++ PT_GPRH4 = 62 // GP High register 4 ++ PT_GPRH5 = 63 // GP High register 5 ++ PT_GPRH6 = 64 // GP High register 6 ++ PT_GPRH7 = 65 // GP High register 7 ++ PT_GPRH8 = 66 // GP High register 8 ++ PT_GPRH9 = 67 // GP High register 9 ++ PT_GPRH10 = 68 // GP High register 10 ++ PT_GPRH11 = 69 // GP High register 11 ++ PT_GPRH12 = 70 // GP High register 12 ++ PT_GPRH13 = 71 // GP High register 13 ++ PT_GPRH14 = 72 // GP High register 14 ++ PT_GPRH15 = 73 // GP High register 15 ++ PT_VR0 = 74 // Vector register 0 ++ PT_VR1 = 75 // Vector register 1 ++ PT_VR2 = 76 // Vector register 2 ++ PT_VR3 = 77 // Vector register 3 ++ PT_VR4 = 78 // Vector register 4 ++ PT_VR5 = 79 // Vector register 5 ++ PT_VR6 = 80 // Vector register 6 ++ PT_VR7 = 81 // Vector register 7 ++ PT_VR8 = 82 // Vector register 8 ++ PT_VR9 = 83 // Vector register 9 ++ PT_VR10 = 84 // Vector register 10 ++ PT_VR11 = 85 // Vector register 11 ++ PT_VR12 = 86 // Vector register 12 ++ PT_VR13 = 87 // Vector register 13 ++ PT_VR14 = 88 // Vector register 14 ++ PT_VR15 = 89 // Vector register 15 ++ PT_VR16 = 90 // Vector register 16 ++ PT_VR17 = 91 // Vector register 17 ++ PT_VR18 = 92 // Vector register 18 ++ PT_VR19 = 93 // Vector register 19 ++ PT_VR20 = 94 // Vector register 20 ++ PT_VR21 = 95 // Vector register 21 ++ PT_VR22 = 96 // Vector register 22 ++ PT_VR23 = 97 // Vector register 23 ++ PT_VR24 = 98 // Vector register 24 ++ PT_VR25 = 99 // Vector register 25 ++ PT_VR26 = 100 // Vector register 26 ++ PT_VR27 = 101 // Vector register 27 ++ PT_VR28 = 102 // Vector register 28 ++ PT_VR29 = 103 // Vector register 29 ++ PT_VR30 = 104 // Vector register 30 ++ PT_VR31 = 105 // Vector register 31 ++ PT_PSWG = 106 // PSWG ++ PT_PSWG0 = 106 // Bytes 0-3 ++ PT_PSWG1 = 107 // Bytes 4-7 ++ PT_PSWG2 = 108 // Bytes 8-11 (IA high word) ++ PT_PSWG3 = 109 // Bytes 12-15 (IA low word) ++) ++ ++func Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) { ++ var parms [8]unsafe.Pointer ++ parms[0] = unsafe.Pointer(&request) ++ parms[1] = unsafe.Pointer(&pid) ++ parms[2] = unsafe.Pointer(&addr) ++ parms[3] = unsafe.Pointer(&data) ++ parms[4] = unsafe.Pointer(&buffer) ++ parms[5] = unsafe.Pointer(&rv) ++ parms[6] = unsafe.Pointer(&rc) ++ parms[7] = unsafe.Pointer(&rn) ++ bpxcall(parms[:], BPX4PTR) ++ return rv, rc, rn ++} ++ ++func copyU8(val uint8, dest []uint8) int { ++ if len(dest) < 1 { ++ return 0 ++ } ++ dest[0] = val ++ return 1 ++} ++ ++func copyU8Arr(src, dest []uint8) int { ++ if len(dest) < len(src) { ++ return 0 ++ } ++ for i, v := range src { ++ dest[i] = v ++ } ++ return len(src) ++} ++ ++func copyU16(val uint16, dest []uint16) int { ++ if len(dest) < 1 { ++ return 0 ++ } ++ dest[0] = val ++ return 1 ++} ++ ++func copyU32(val uint32, dest []uint32) int { ++ if len(dest) < 1 { ++ return 0 ++ } ++ dest[0] = val ++ return 1 ++} ++ ++func copyU32Arr(src, dest []uint32) int { ++ if len(dest) < len(src) { ++ return 0 ++ } ++ for i, v := range src { ++ dest[i] = v ++ } ++ return len(src) ++} ++ ++func copyU64(val uint64, dest []uint64) int { ++ if len(dest) < 1 { ++ return 0 ++ } ++ dest[0] = val ++ return 1 ++} +diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +new file mode 100644 +index 0000000000..4bd4a17982 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +@@ -0,0 +1,192 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++#include "go_asm.h" ++#include "textflag.h" ++ ++// function to call USS assembly language services ++// ++// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm ++// ++// arg1 unsafe.Pointer array that ressembles an OS PLIST ++// ++// arg2 function offset as in ++// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm ++// ++// func bpxcall(plist []unsafe.Pointer, bpx_offset int64) ++ ++TEXT Β·bpxcall(SB), NOSPLIT|NOFRAME, $0 ++ MOVD plist_base+0(FP), R1 // r1 points to plist ++ MOVD bpx_offset+24(FP), R2 // r2 offset to BPX vector table ++ MOVD R14, R7 // save r14 ++ MOVD R15, R8 // save r15 ++ MOVWZ 16(R0), R9 ++ MOVWZ 544(R9), R9 ++ MOVWZ 24(R9), R9 // call vector in r9 ++ ADD R2, R9 // add offset to vector table ++ MOVWZ (R9), R9 // r9 points to entry point ++ BYTE $0x0D // BL R14,R9 --> basr r14,r9 ++ BYTE $0xE9 // clobbers 0,1,14,15 ++ MOVD R8, R15 // restore 15 ++ JMP R7 // return via saved return address ++ ++// func A2e(arr [] byte) ++// code page conversion from 819 to 1047 ++TEXT Β·A2e(SB), NOSPLIT|NOFRAME, $0 ++ MOVD arg_base+0(FP), R2 // pointer to arry of characters ++ MOVD arg_len+8(FP), R3 // count ++ XOR R0, R0 ++ XOR R1, R1 ++ BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) ++ ++ // ASCII -> EBCDIC conversion table: ++ BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 ++ BYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f ++ BYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b ++ BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f ++ BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 ++ BYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26 ++ BYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27 ++ BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f ++ BYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b ++ BYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d ++ BYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e ++ BYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61 ++ BYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3 ++ BYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7 ++ BYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e ++ BYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f ++ BYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3 ++ BYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7 ++ BYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2 ++ BYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6 ++ BYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2 ++ BYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6 ++ BYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad ++ BYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d ++ BYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83 ++ BYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87 ++ BYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92 ++ BYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96 ++ BYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2 ++ BYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6 ++ BYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0 ++ BYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07 ++ BYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23 ++ BYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17 ++ BYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b ++ BYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b ++ BYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33 ++ BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08 ++ BYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b ++ BYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff ++ BYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1 ++ BYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5 ++ BYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a ++ BYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc ++ BYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa ++ BYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3 ++ BYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b ++ BYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab ++ BYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66 ++ BYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68 ++ BYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73 ++ BYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77 ++ BYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee ++ BYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf ++ BYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb ++ BYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59 ++ BYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46 ++ BYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48 ++ BYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53 ++ BYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57 ++ BYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce ++ BYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1 ++ BYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb ++ BYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf ++ ++retry: ++ WORD $0xB9931022 // TROO 2,2,b'0001' ++ BVS retry ++ RET ++ ++// func e2a(arr [] byte) ++// code page conversion from 1047 to 819 ++TEXT Β·E2a(SB), NOSPLIT|NOFRAME, $0 ++ MOVD arg_base+0(FP), R2 // pointer to arry of characters ++ MOVD arg_len+8(FP), R3 // count ++ XOR R0, R0 ++ XOR R1, R1 ++ BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) ++ ++ // EBCDIC -> ASCII conversion table: ++ BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 ++ BYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f ++ BYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b ++ BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f ++ BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 ++ BYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87 ++ BYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f ++ BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f ++ BYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83 ++ BYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b ++ BYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b ++ BYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07 ++ BYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93 ++ BYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04 ++ BYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b ++ BYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a ++ BYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4 ++ BYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5 ++ BYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e ++ BYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c ++ BYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb ++ BYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef ++ BYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24 ++ BYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e ++ BYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4 ++ BYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5 ++ BYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c ++ BYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f ++ BYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb ++ BYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf ++ BYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23 ++ BYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22 ++ BYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63 ++ BYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67 ++ BYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb ++ BYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1 ++ BYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c ++ BYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70 ++ BYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba ++ BYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4 ++ BYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74 ++ BYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78 ++ BYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf ++ BYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae ++ BYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7 ++ BYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc ++ BYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8 ++ BYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7 ++ BYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43 ++ BYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47 ++ BYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4 ++ BYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5 ++ BYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c ++ BYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50 ++ BYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb ++ BYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff ++ BYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54 ++ BYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58 ++ BYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4 ++ BYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5 ++ BYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33 ++ BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37 ++ BYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb ++ BYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f ++ ++retry: ++ WORD $0xB9931022 // TROO 2,2,b'0001' ++ BVS retry ++ RET +diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go +index dbe680eab8..7ca4fa12aa 100644 +--- a/vendor/golang.org/x/sys/unix/ioctl_linux.go ++++ b/vendor/golang.org/x/sys/unix/ioctl_linux.go +@@ -58,6 +58,102 @@ func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { + return &value, err + } + ++// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC ++// association for the network device specified by ifname. ++func IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) { ++ ifr, err := NewIfreq(ifname) ++ if err != nil { ++ return nil, err ++ } ++ ++ value := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO} ++ ifrd := ifr.withData(unsafe.Pointer(&value)) ++ ++ err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) ++ return &value, err ++} ++ ++// IoctlGetHwTstamp retrieves the hardware timestamping configuration ++// for the network device specified by ifname. ++func IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) { ++ ifr, err := NewIfreq(ifname) ++ if err != nil { ++ return nil, err ++ } ++ ++ value := HwTstampConfig{} ++ ifrd := ifr.withData(unsafe.Pointer(&value)) ++ ++ err = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd) ++ return &value, err ++} ++ ++// IoctlSetHwTstamp updates the hardware timestamping configuration for ++// the network device specified by ifname. ++func IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error { ++ ifr, err := NewIfreq(ifname) ++ if err != nil { ++ return err ++ } ++ ifrd := ifr.withData(unsafe.Pointer(cfg)) ++ return ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd) ++} ++ ++// FdToClockID derives the clock ID from the file descriptor number ++// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is ++// suitable for system calls like ClockGettime. ++func FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) } ++ ++// IoctlPtpClockGetcaps returns the description of a given PTP device. ++func IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) { ++ var value PtpClockCaps ++ err := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value)) ++ return &value, err ++} ++ ++// IoctlPtpSysOffsetPrecise returns a description of the clock ++// offset compared to the system clock. ++func IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) { ++ var value PtpSysOffsetPrecise ++ err := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value)) ++ return &value, err ++} ++ ++// IoctlPtpSysOffsetExtended returns an extended description of the ++// clock offset compared to the system clock. The samples parameter ++// specifies the desired number of measurements. ++func IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) { ++ value := PtpSysOffsetExtended{Samples: uint32(samples)} ++ err := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value)) ++ return &value, err ++} ++ ++// IoctlPtpPinGetfunc returns the configuration of the specified ++// I/O pin on given PTP device. ++func IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) { ++ value := PtpPinDesc{Index: uint32(index)} ++ err := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value)) ++ return &value, err ++} ++ ++// IoctlPtpPinSetfunc updates configuration of the specified PTP ++// I/O pin. ++func IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error { ++ return ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd)) ++} ++ ++// IoctlPtpPeroutRequest configures the periodic output mode of the ++// PTP I/O pins. ++func IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error { ++ return ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r)) ++} ++ ++// IoctlPtpExttsRequest configures the external timestamping mode ++// of the PTP I/O pins. ++func IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error { ++ return ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r)) ++} ++ + // IoctlGetWatchdogInfo fetches information about a watchdog device from the + // Linux watchdog API. For more information, see: + // https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh +index fdcaa974d2..6ab02b6c31 100644 +--- a/vendor/golang.org/x/sys/unix/mkerrors.sh ++++ b/vendor/golang.org/x/sys/unix/mkerrors.sh +@@ -58,6 +58,7 @@ includes_Darwin=' + #define _DARWIN_USE_64_BIT_INODE + #define __APPLE_USE_RFC_3542 + #include ++#include + #include + #include + #include +@@ -157,6 +158,16 @@ includes_Linux=' + #endif + #define _GNU_SOURCE + ++// See the description in unix/linux/types.go ++#if defined(__ARM_EABI__) || \ ++ (defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \ ++ (defined(__powerpc__) && (!defined(__powerpc64__))) ++# ifdef _TIME_BITS ++# undef _TIME_BITS ++# endif ++# define _TIME_BITS 32 ++#endif ++ + // is broken on powerpc64, as it fails to include definitions of + // these structures. We just include them copied from . + #if defined(__powerpc__) +@@ -255,6 +266,7 @@ struct ltchars { + #include + #include + #include ++#include + #include + #include + #include +@@ -263,6 +275,7 @@ struct ltchars { + #include + #include + #include ++#include + #include + #include + #include +@@ -525,6 +538,7 @@ ccflags="$@" + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || + $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || + $2 ~ /^NFC_.*_(MAX)?SIZE$/ || ++ $2 ~ /^PTP_/ || + $2 ~ /^RAW_PAYLOAD_/ || + $2 ~ /^[US]F_/ || + $2 ~ /^TP_STATUS_/ || +@@ -549,6 +563,8 @@ ccflags="$@" + $2 !~ "NLA_TYPE_MASK" && + $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && + $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || ++ $2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || ++ $2 ~ /^(CONNECT|SAE)_/ || + $2 ~ /^FIORDCHK$/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || +@@ -652,7 +668,7 @@ errors=$( + signals=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | +- grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | ++ grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort + ) + +@@ -662,7 +678,7 @@ echo '#include ' | $CC -x c - -E -dM $ccflags | + sort >_error.grep + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | +- grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | ++ grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort >_signal.grep + + echo '// mkerrors.sh' "$@" +diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go +index 4b68e59780..7f602ffd26 100644 +--- a/vendor/golang.org/x/sys/unix/mmap_nomremap.go ++++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris ++//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go +index fd45fe529d..3a5e776f89 100644 +--- a/vendor/golang.org/x/sys/unix/mremap.go ++++ b/vendor/golang.org/x/sys/unix/mremap.go +@@ -50,3 +50,8 @@ func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data [ + func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { + return mapper.Mremap(oldData, newLength, flags) + } ++ ++func MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) { ++ xaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr)) ++ return unsafe.Pointer(xaddr), err ++} +diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go +index 4d0a3430ed..0482408d7c 100644 +--- a/vendor/golang.org/x/sys/unix/pagesize_unix.go ++++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris ++//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + + // For Unix, get the pagesize from the runtime. + +diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +index 130398b6b7..b903c00604 100644 +--- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go ++++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build darwin ++//go:build darwin || zos + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +new file mode 100644 +index 0000000000..3e53dbc028 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +@@ -0,0 +1,58 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Socket control messages ++ ++package unix ++ ++import "unsafe" ++ ++// UnixCredentials encodes credentials into a socket control message ++// for sending to another process. This can be used for ++// authentication. ++func UnixCredentials(ucred *Ucred) []byte { ++ b := make([]byte, CmsgSpace(SizeofUcred)) ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ h.Level = SOL_SOCKET ++ h.Type = SCM_CREDENTIALS ++ h.SetLen(CmsgLen(SizeofUcred)) ++ *(*Ucred)(h.data(0)) = *ucred ++ return b ++} ++ ++// ParseUnixCredentials decodes a socket control message that contains ++// credentials in a Ucred structure. To receive such a message, the ++// SO_PASSCRED option must be enabled on the socket. ++func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { ++ if m.Header.Level != SOL_SOCKET { ++ return nil, EINVAL ++ } ++ if m.Header.Type != SCM_CREDENTIALS { ++ return nil, EINVAL ++ } ++ ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) ++ return &ucred, nil ++} ++ ++// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. ++func PktInfo4(info *Inet4Pktinfo) []byte { ++ b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ h.Level = SOL_IP ++ h.Type = IP_PKTINFO ++ h.SetLen(CmsgLen(SizeofInet4Pktinfo)) ++ *(*Inet4Pktinfo)(h.data(0)) = *info ++ return b ++} ++ ++// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. ++func PktInfo6(info *Inet6Pktinfo) []byte { ++ b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ h.Level = SOL_IPV6 ++ h.Type = IPV6_PKTINFO ++ h.SetLen(CmsgLen(SizeofInet6Pktinfo)) ++ *(*Inet6Pktinfo)(h.data(0)) = *info ++ return b ++} +diff --git a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +new file mode 100644 +index 0000000000..3c4f33cb6a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +@@ -0,0 +1,75 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build zos && s390x && gc ++ ++#include "textflag.h" ++ ++// provide the address of function variable to be fixed up. ++ ++TEXT Β·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Pipe2(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Flock(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Getxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Nanosleep(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Setxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Wait4(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Mount(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Unmount(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·UtimesNanoAt(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·UtimesNano(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Mkfifoat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Chtag(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++TEXT Β·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Readlinkat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ +diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go +index 67ce6cef2d..6f15ba1eaf 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_aix.go ++++ b/vendor/golang.org/x/sys/unix/syscall_aix.go +@@ -360,7 +360,7 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, + var status _C_int + var r Pid_t + err = ERESTART +- // AIX wait4 may return with ERESTART errno, while the processus is still ++ // AIX wait4 may return with ERESTART errno, while the process is still + // active. + for err == ERESTART { + r, err = wait4(Pid_t(pid), &status, options, rusage) +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go +index 59542a897d..099867deed 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go +@@ -402,6 +402,18 @@ func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { + return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) + } + ++//sys renamexNp(from string, to string, flag uint32) (err error) ++ ++func RenamexNp(from string, to string, flag uint32) (err error) { ++ return renamexNp(from, to, flag) ++} ++ ++//sys renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) ++ ++func RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { ++ return renameatxNp(fromfd, from, tofd, to, flag) ++} ++ + //sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL + + func Uname(uname *Utsname) error { +@@ -542,6 +554,55 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { + } + } + ++//sys pthread_chdir_np(path string) (err error) ++ ++func PthreadChdir(path string) (err error) { ++ return pthread_chdir_np(path) ++} ++ ++//sys pthread_fchdir_np(fd int) (err error) ++ ++func PthreadFchdir(fd int) (err error) { ++ return pthread_fchdir_np(fd) ++} ++ ++// Connectx calls connectx(2) to initiate a connection on a socket. ++// ++// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument. ++// ++// - srcIf is the optional source interface index. 0 means unspecified. ++// - srcAddr is the optional source address. nil means unspecified. ++// - dstAddr is the destination address. ++// ++// On success, Connectx returns the number of bytes enqueued for transmission. ++func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) { ++ endpoints := SaEndpoints{ ++ Srcif: srcIf, ++ } ++ ++ if srcAddr != nil { ++ addrp, addrlen, err := srcAddr.sockaddr() ++ if err != nil { ++ return 0, err ++ } ++ endpoints.Srcaddr = (*RawSockaddr)(addrp) ++ endpoints.Srcaddrlen = uint32(addrlen) ++ } ++ ++ if dstAddr != nil { ++ addrp, addrlen, err := dstAddr.sockaddr() ++ if err != nil { ++ return 0, err ++ } ++ endpoints.Dstaddr = (*RawSockaddr)(addrp) ++ endpoints.Dstaddrlen = uint32(addrlen) ++ } ++ ++ err = connectx(fd, &endpoints, associd, flags, iov, &n, connid) ++ return ++} ++ ++//sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) + //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) + + //sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +index 16dc699379..2f0fa76e4f 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build darwin && go1.12 ++//go:build darwin + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +index 97cb916f2c..be8c002070 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go ++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +@@ -246,6 +246,18 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e + return sendfile(outfd, infd, offset, count) + } + ++func Dup3(oldfd, newfd, flags int) error { ++ if oldfd == newfd || flags&^O_CLOEXEC != 0 { ++ return EINVAL ++ } ++ how := F_DUP2FD ++ if flags&O_CLOEXEC != 0 { ++ how = F_DUP2FD_CLOEXEC ++ } ++ _, err := fcntl(oldfd, how, newfd) ++ return err ++} ++ + /* + * Exposed directly + */ +diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go +index 64d1bb4dba..2b57e0f73b 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go ++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go +@@ -13,6 +13,7 @@ + package unix + + import ( ++ "errors" + "sync" + "unsafe" + ) +@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) +- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { ++ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. ++ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) +- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { ++ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) +- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { ++ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) +- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { ++ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + +@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) +- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { ++ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + +diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go +index ba46651f8e..a6a2d2fc2b 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_hurd.go ++++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go +@@ -11,6 +11,7 @@ package unix + int ioctl(int, unsigned long int, uintptr_t); + */ + import "C" ++import "unsafe" + + func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go +index 0f85e29e62..230a94549a 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_linux.go ++++ b/vendor/golang.org/x/sys/unix/syscall_linux.go +@@ -1295,6 +1295,48 @@ func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + return &value, err + } + ++// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the "vegas" ++// algorithm. ++// ++// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: ++// ++// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) ++func GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) { ++ var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment ++ vallen := _Socklen(SizeofTCPCCInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) ++ out := (*TCPVegasInfo)(unsafe.Pointer(&value[0])) ++ return out, err ++} ++ ++// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the "dctp" ++// algorithm. ++// ++// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: ++// ++// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) ++func GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) { ++ var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment ++ vallen := _Socklen(SizeofTCPCCInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) ++ out := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0])) ++ return out, err ++} ++ ++// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the "bbr" ++// algorithm. ++// ++// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: ++// ++// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) ++func GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) { ++ var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment ++ vallen := _Socklen(SizeofTCPCCInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) ++ out := (*TCPBBRInfo)(unsafe.Pointer(&value[0])) ++ return out, err ++} ++ + // GetsockoptString returns the string value of the socket option opt for the + // socket associated with fd at the given socket level. + func GetsockoptString(fd, level, opt int) (string, error) { +@@ -1818,6 +1860,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e + //sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) + //sys ClockGetres(clockid int32, res *Timespec) (err error) + //sys ClockGettime(clockid int32, time *Timespec) (err error) ++//sys ClockSettime(clockid int32, time *Timespec) (err error) + //sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) + //sys Close(fd int) (err error) + //sys CloseRange(first uint, last uint, flags uint) (err error) +@@ -1849,6 +1892,105 @@ func Dup2(oldfd, newfd int) error { + //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) + //sys Fsopen(fsName string, flags int) (fd int, err error) + //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) ++ ++//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) ++ ++func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { ++ var keyp *byte ++ if keyp, err = BytePtrFromString(key); err != nil { ++ return ++ } ++ return fsconfig(fd, cmd, keyp, value, aux) ++} ++ ++// FsconfigSetFlag is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_FLAG. ++// ++// fd is the filesystem context to act upon. ++// key the parameter key to set. ++func FsconfigSetFlag(fd int, key string) (err error) { ++ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) ++} ++ ++// FsconfigSetString is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_STRING. ++// ++// fd is the filesystem context to act upon. ++// key the parameter key to set. ++// value is the parameter value to set. ++func FsconfigSetString(fd int, key string, value string) (err error) { ++ var valuep *byte ++ if valuep, err = BytePtrFromString(value); err != nil { ++ return ++ } ++ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) ++} ++ ++// FsconfigSetBinary is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_BINARY. ++// ++// fd is the filesystem context to act upon. ++// key the parameter key to set. ++// value is the parameter value to set. ++func FsconfigSetBinary(fd int, key string, value []byte) (err error) { ++ if len(value) == 0 { ++ return EINVAL ++ } ++ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) ++} ++ ++// FsconfigSetPath is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_PATH. ++// ++// fd is the filesystem context to act upon. ++// key the parameter key to set. ++// path is a non-empty path for specified key. ++// atfd is a file descriptor at which to start lookup from or AT_FDCWD. ++func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { ++ var valuep *byte ++ if valuep, err = BytePtrFromString(path); err != nil { ++ return ++ } ++ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) ++} ++ ++// FsconfigSetPathEmpty is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as ++// FconfigSetPath but with AT_PATH_EMPTY implied. ++func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { ++ var valuep *byte ++ if valuep, err = BytePtrFromString(path); err != nil { ++ return ++ } ++ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) ++} ++ ++// FsconfigSetFd is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_SET_FD. ++// ++// fd is the filesystem context to act upon. ++// key the parameter key to set. ++// value is a file descriptor to be assigned to specified key. ++func FsconfigSetFd(fd int, key string, value int) (err error) { ++ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) ++} ++ ++// FsconfigCreate is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_CMD_CREATE. ++// ++// fd is the filesystem context to act upon. ++func FsconfigCreate(fd int) (err error) { ++ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) ++} ++ ++// FsconfigReconfigure is equivalent to fsconfig(2) called ++// with cmd == FSCONFIG_CMD_RECONFIGURE. ++// ++// fd is the filesystem context to act upon. ++func FsconfigReconfigure(fd int) (err error) { ++ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) ++} ++ + //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 + //sysnb Getpgid(pid int) (pgid int, err error) + +@@ -1860,7 +2002,26 @@ func Getpgrp() (pid int) { + //sysnb Getpid() (pid int) + //sysnb Getppid() (ppid int) + //sys Getpriority(which int, who int) (prio int, err error) +-//sys Getrandom(buf []byte, flags int) (n int, err error) ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ vdsoRet, supported := vgetrandom(buf, uint32(flags)) ++ if supported { ++ if vdsoRet < 0 { ++ return 0, errnoErr(syscall.Errno(-vdsoRet)) ++ } ++ return vdsoRet, nil ++ } ++ var p *byte ++ if len(buf) > 0 { ++ p = &buf[0] ++ } ++ r, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags)) ++ if e != 0 { ++ return 0, errnoErr(e) ++ } ++ return int(r), nil ++} ++ + //sysnb Getrusage(who int, rusage *Rusage) (err error) + //sysnb Getsid(pid int) (sid int, err error) + //sysnb Gettid() (tid int) +@@ -2493,3 +2654,4 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { + } + + //sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) ++//sys Mseal(b []byte, flags uint) (err error) +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +index cf2ee6c75e..745e5c7e6c 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +@@ -182,3 +182,5 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) + } ++ ++const SYS_FSTATAT = SYS_NEWFSTATAT +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +index 3d0e98451f..dd2262a407 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +@@ -214,3 +214,5 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) + } ++ ++const SYS_FSTATAT = SYS_NEWFSTATAT +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +index 6f5a288944..8cf3670bda 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +@@ -187,3 +187,5 @@ func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error + } + return riscvHWProbe(pairs, setSize, set, flags) + } ++ ++const SYS_FSTATAT = SYS_NEWFSTATAT +diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go +index b25343c71a..b86ded549c 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go ++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go +@@ -293,6 +293,7 @@ func Uname(uname *Utsname) error { + //sys Mkfifoat(dirfd int, path string, mode uint32) (err error) + //sys Mknod(path string, mode uint32, dev int) (err error) + //sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) ++//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) + //sys Nanosleep(time *Timespec, leftover *Timespec) (err error) + //sys Open(path string, mode int, perm uint32) (fd int, err error) + //sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go +index 21974af064..abc3955477 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_solaris.go ++++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go +@@ -1102,3 +1102,90 @@ func (s *Strioctl) SetInt(i int) { + func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { + return ioctlPtrRet(fd, req, unsafe.Pointer(s)) + } ++ ++// Ucred Helpers ++// See ucred(3c) and getpeerucred(3c) ++ ++//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) ++//sys ucredFree(ucred uintptr) = ucred_free ++//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get ++//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid ++//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid ++//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid ++//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid ++//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid ++//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid ++//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid ++ ++// Ucred is an opaque struct that holds user credentials. ++type Ucred struct { ++ ucred uintptr ++} ++ ++// We need to ensure that ucredFree is called on the underlying ucred ++// when the Ucred is garbage collected. ++func ucredFinalizer(u *Ucred) { ++ ucredFree(u.ucred) ++} ++ ++func GetPeerUcred(fd uintptr) (*Ucred, error) { ++ var ucred uintptr ++ err := getpeerucred(fd, &ucred) ++ if err != nil { ++ return nil, err ++ } ++ result := &Ucred{ ++ ucred: ucred, ++ } ++ // set the finalizer on the result so that the ucred will be freed ++ runtime.SetFinalizer(result, ucredFinalizer) ++ return result, nil ++} ++ ++func UcredGet(pid int) (*Ucred, error) { ++ ucred, err := ucredGet(pid) ++ if err != nil { ++ return nil, err ++ } ++ result := &Ucred{ ++ ucred: ucred, ++ } ++ // set the finalizer on the result so that the ucred will be freed ++ runtime.SetFinalizer(result, ucredFinalizer) ++ return result, nil ++} ++ ++func (u *Ucred) Geteuid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGeteuid(u.ucred) ++} ++ ++func (u *Ucred) Getruid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetruid(u.ucred) ++} ++ ++func (u *Ucred) Getsuid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetsuid(u.ucred) ++} ++ ++func (u *Ucred) Getegid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetegid(u.ucred) ++} ++ ++func (u *Ucred) Getrgid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetrgid(u.ucred) ++} ++ ++func (u *Ucred) Getsgid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetsgid(u.ucred) ++} ++ ++func (u *Ucred) Getpid() int { ++ defer runtime.KeepAlive(u) ++ return ucredGetpid(u.ucred) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go +index 77081de8c7..4e92e5aa40 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_unix.go ++++ b/vendor/golang.org/x/sys/unix/syscall_unix.go +@@ -154,6 +154,15 @@ func Munmap(b []byte) (err error) { + return mapper.Munmap(b) + } + ++func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { ++ xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) ++ return unsafe.Pointer(xaddr), err ++} ++ ++func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { ++ return mapper.munmap(uintptr(addr), length) ++} ++ + func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { +diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +index b473038c61..7bf5c04bb0 100644 +--- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go ++++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +@@ -4,11 +4,21 @@ + + //go:build zos && s390x + ++// Many of the following syscalls are not available on all versions of z/OS. ++// Some missing calls have legacy implementations/simulations but others ++// will be missing completely. To achieve consistent failing behaviour on ++// legacy systems, we first test the function pointer via a safeloading ++// mechanism to see if the function exists on a given system. Then execution ++// is branched to either continue the function call, or return an error. ++ + package unix + + import ( + "bytes" + "fmt" ++ "os" ++ "reflect" ++ "regexp" + "runtime" + "sort" + "strings" +@@ -17,17 +27,205 @@ import ( + "unsafe" + ) + ++//go:noescape ++func initZosLibVec() ++ ++//go:noescape ++func GetZosLibVec() uintptr ++ ++func init() { ++ initZosLibVec() ++ r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACE\x00"))[0]))) ++ if r0 != 0 { ++ n, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) ++ ZosTraceLevel = int(n) ++ r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACEFD\x00"))[0]))) ++ if r0 != 0 { ++ fd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) ++ f := os.NewFile(fd, "zostracefile") ++ if f != nil { ++ ZosTracefile = f ++ } ++ } ++ ++ } ++} ++ ++//go:noescape ++func CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) ++ ++//go:noescape ++func CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) ++ ++// ------------------------------- ++// pointer validity test ++// good pointer returns 0 ++// bad pointer returns 1 ++// ++//go:nosplit ++func ptrtest(uintptr) uint64 ++ ++// Load memory at ptr location with error handling if the location is invalid ++// ++//go:noescape ++func safeload(ptr uintptr) (value uintptr, error uintptr) ++ + const ( +- O_CLOEXEC = 0 // Dummy value (not supported). +- AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX ++ entrypointLocationOffset = 8 // From function descriptor ++ ++ xplinkEyecatcher = 0x00c300c500c500f1 // ".C.E.E.1" ++ eyecatcherOffset = 16 // From function entrypoint (negative) ++ ppa1LocationOffset = 8 // From function entrypoint (negative) ++ ++ nameLenOffset = 0x14 // From PPA1 start ++ nameOffset = 0x16 // From PPA1 start + ) + +-func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +-func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +-func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +-func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +-func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +-func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) ++func getPpaOffset(funcptr uintptr) int64 { ++ entrypoint, err := safeload(funcptr + entrypointLocationOffset) ++ if err != 0 { ++ return -1 ++ } ++ ++ // XPLink functions have ".C.E.E.1" as the first 8 bytes (EBCDIC) ++ val, err := safeload(entrypoint - eyecatcherOffset) ++ if err != 0 { ++ return -1 ++ } ++ if val != xplinkEyecatcher { ++ return -1 ++ } ++ ++ ppaoff, err := safeload(entrypoint - ppa1LocationOffset) ++ if err != 0 { ++ return -1 ++ } ++ ++ ppaoff >>= 32 ++ return int64(ppaoff) ++} ++ ++//------------------------------- ++// function descriptor pointer validity test ++// good pointer returns 0 ++// bad pointer returns 1 ++ ++// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName ++// have correct funcName pass to the funcptrtest function ++func funcptrtest(funcptr uintptr, funcName string) uint64 { ++ entrypoint, err := safeload(funcptr + entrypointLocationOffset) ++ if err != 0 { ++ return 1 ++ } ++ ++ ppaoff := getPpaOffset(funcptr) ++ if ppaoff == -1 { ++ return 1 ++ } ++ ++ // PPA1 offset value is from the start of the entire function block, not the entrypoint ++ ppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff) ++ ++ nameLen, err := safeload(ppa1 + nameLenOffset) ++ if err != 0 { ++ return 1 ++ } ++ ++ nameLen >>= 48 ++ if nameLen > 128 { ++ return 1 ++ } ++ ++ // no function name input to argument end here ++ if funcName == "" { ++ return 0 ++ } ++ ++ var funcname [128]byte ++ for i := 0; i < int(nameLen); i += 8 { ++ v, err := safeload(ppa1 + nameOffset + uintptr(i)) ++ if err != 0 { ++ return 1 ++ } ++ funcname[i] = byte(v >> 56) ++ funcname[i+1] = byte(v >> 48) ++ funcname[i+2] = byte(v >> 40) ++ funcname[i+3] = byte(v >> 32) ++ funcname[i+4] = byte(v >> 24) ++ funcname[i+5] = byte(v >> 16) ++ funcname[i+6] = byte(v >> 8) ++ funcname[i+7] = byte(v) ++ } ++ ++ runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l ++ []uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen}) ++ ++ name := string(funcname[:nameLen]) ++ if name != funcName { ++ return 1 ++ } ++ ++ return 0 ++} ++ ++// For detection of capabilities on a system. ++// Is function descriptor f a valid function? ++func isValidLeFunc(f uintptr) error { ++ ret := funcptrtest(f, "") ++ if ret != 0 { ++ return fmt.Errorf("Bad pointer, not an LE function ") ++ } ++ return nil ++} ++ ++// Retrieve function name from descriptor ++func getLeFuncName(f uintptr) (string, error) { ++ // assume it has been checked, only check ppa1 validity here ++ entry := ((*[2]uintptr)(unsafe.Pointer(f)))[1] ++ preamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset))) ++ ++ offsetPpa1 := preamp[2] ++ if offsetPpa1 > 0x0ffff { ++ return "", fmt.Errorf("PPA1 offset seems too big 0x%x\n", offsetPpa1) ++ } ++ ++ ppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1) ++ res := ptrtest(ppa1) ++ if res != 0 { ++ return "", fmt.Errorf("PPA1 address not valid") ++ } ++ ++ size := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset)) ++ if size > 128 { ++ return "", fmt.Errorf("Function name seems too long, length=%d\n", size) ++ } ++ ++ var name [128]byte ++ funcname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset)) ++ copy(name[0:size], funcname[0:size]) ++ ++ runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l ++ []uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)}) ++ ++ return string(name[:size]), nil ++} ++ ++// Check z/OS version ++func zosLeVersion() (version, release uint32) { ++ p1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32 ++ p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88))) ++ p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8))) ++ p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984))) ++ vrm := *(*uint32)(unsafe.Pointer(p1 + 80)) ++ version = (vrm & 0x00ff0000) >> 16 ++ release = (vrm & 0x0000ff00) >> 8 ++ return ++} ++ ++// returns a zos C FILE * for stdio fd 0, 1, 2 ++func ZosStdioFilep(fd int32) uintptr { ++ return uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3)))))))) ++} + + func copyStat(stat *Stat_t, statLE *Stat_LE_t) { + stat.Dev = uint64(statLE.Dev) +@@ -65,6 +263,21 @@ func (d *Dirent) NameString() string { + } + } + ++func DecodeData(dest []byte, sz int, val uint64) { ++ for i := 0; i < sz; i++ { ++ dest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff) ++ } ++} ++ ++func EncodeData(data []byte) uint64 { ++ var value uint64 ++ sz := len(data) ++ for i := 0; i < sz; i++ { ++ value |= uint64(data[i]) << uint64(((sz - i - 1) * 8)) ++ } ++ return value ++} ++ + func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL +@@ -74,7 +287,9 @@ func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) +- sa.raw.Addr = sa.Addr ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil + } + +@@ -88,7 +303,9 @@ func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId +- sa.raw.Addr = sa.Addr ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil + } + +@@ -146,7 +363,9 @@ func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) +- sa.Addr = pp.Addr ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } + return sa, nil + + case AF_INET6: +@@ -155,7 +374,9 @@ func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id +- sa.Addr = pp.Addr ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } + return sa, nil + } + return nil, EAFNOSUPPORT +@@ -177,6 +398,43 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { + return + } + ++func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept4(fd, &rsa, &len, flags) ++ if err != nil { ++ return ++ } ++ if len > SizeofSockaddrAny { ++ panic("RawSockaddrAny too small") ++ } ++ // TODO(neeilan): Remove 0 in call ++ sa, err = anyToSockaddr(0, &rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++func Ctermid() (tty string, err error) { ++ var termdev [1025]byte ++ runtime.EnterSyscall() ++ r0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0]))) ++ runtime.ExitSyscall() ++ if r0 == 0 { ++ return "", fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) ++ } ++ s := string(termdev[:]) ++ idx := strings.Index(s, string(rune(0))) ++ if idx == -1 { ++ tty = s ++ } else { ++ tty = s[:idx] ++ } ++ return ++} ++ + func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) + } +@@ -190,10 +448,16 @@ func (cmsg *Cmsghdr) SetLen(length int) { + } + + //sys fcntl(fd int, cmd int, arg int) (val int, err error) ++//sys Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A ++//sys Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A + //sys read(fd int, p []byte) (n int, err error) + //sys write(fd int, p []byte) (n int, err error) + ++//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A ++//sys Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A ++ + //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A + //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A + //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A + //sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +@@ -204,6 +468,7 @@ func (cmsg *Cmsghdr) SetLen(length int) { + //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) + //sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A + //sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A ++//sys Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A + //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A + //sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A + //sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A +@@ -212,6 +477,10 @@ func (cmsg *Cmsghdr) SetLen(length int) { + //sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP + //sys ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL + //sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL ++//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT ++//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64 ++//sys shmdt(addr uintptr) (err error) = SYS_SHMDT ++//sys shmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET + + //sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A + //sys Chdir(path string) (err error) = SYS___CHDIR_A +@@ -220,14 +489,31 @@ func (cmsg *Cmsghdr) SetLen(length int) { + //sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A + //sys Dup(oldfd int) (fd int, err error) + //sys Dup2(oldfd int, newfd int) (err error) ++//sys Dup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3 ++//sys Dirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD ++//sys EpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE ++//sys EpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1 ++//sys EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL ++//sys EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT + //sys Errno2() (er2 int) = SYS___ERRNO2 +-//sys Err2ad() (eadd *int) = SYS___ERR2AD ++//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD + //sys Exit(code int) ++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A ++ ++func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { ++ return Faccessat(dirfd, path, mode, flags) ++} ++ + //sys Fchdir(fd int) (err error) + //sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A + //sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A + //sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL ++//sys Fdatasync(fd int) (err error) = SYS_FDATASYNC + //sys fstat(fd int, stat *Stat_LE_t) (err error) ++//sys fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A + + func Fstat(fd int, stat *Stat_t) (err error) { + var statLE Stat_LE_t +@@ -236,28 +522,208 @@ func Fstat(fd int, stat *Stat_t) (err error) { + return + } + ++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { ++ var statLE Stat_LE_t ++ err = fstatat(dirfd, path, &statLE, flags) ++ copyStat(stat, &statLE) ++ return ++} ++ ++func impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error)) ++ ++var Getxattr = enter_Getxattr ++ ++func enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ funcref := get_GetxattrAddr() ++ if validGetxattr() { ++ *funcref = impl_Getxattr ++ } else { ++ *funcref = error_Getxattr ++ } ++ return (*funcref)(path, attr, dest) ++} ++ ++func error_Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ return -1, ENOSYS ++} ++ ++func validGetxattr() bool { ++ if funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, "") == 0 { ++ if name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil { ++ return name == "__getxattr_a" ++ } ++ } ++ return false ++} ++ ++//sys Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A ++//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A ++ ++func impl_Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) ++ ++var Setxattr = enter_Setxattr ++ ++func enter_Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ funcref := get_SetxattrAddr() ++ if validSetxattr() { ++ *funcref = impl_Setxattr ++ } else { ++ *funcref = error_Setxattr ++ } ++ return (*funcref)(path, attr, data, flags) ++} ++ ++func error_Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ return ENOSYS ++} ++ ++func validSetxattr() bool { ++ if funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, "") == 0 { ++ if name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil { ++ return name == "__setxattr_a" ++ } ++ } ++ return false ++} ++ ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS + //sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS + //sys Fsync(fd int) (err error) ++//sys Futimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES ++//sys Futimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A + //sys Ftruncate(fd int, length int64) (err error) +-//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE ++//sys Getrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM ++//sys InotifyInit() (fd int, err error) = SYS_INOTIFY_INIT ++//sys InotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1 ++//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A ++//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH ++//sys Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A ++//sys Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A ++//sys Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A ++//sys Lutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A + //sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT + //sys Msync(b []byte, flags int) (err error) = SYS_MSYNC ++//sys Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2 ++ ++// Pipe2 begin ++ ++//go:nosplit ++func getPipe2Addr() *(func([]int, int) error) ++ ++var Pipe2 = pipe2Enter ++ ++func pipe2Enter(p []int, flags int) (err error) { ++ if funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, "") == 0 { ++ *getPipe2Addr() = pipe2Impl ++ } else { ++ *getPipe2Addr() = pipe2Error ++ } ++ return (*getPipe2Addr())(p, flags) ++} ++ ++func pipe2Impl(p []int, flags int) (err error) { ++ var pp [2]_C_int ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } else { ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ } ++ return ++} ++func pipe2Error(p []int, flags int) (err error) { ++ return fmt.Errorf("Pipe2 is not available on this system") ++} ++ ++// Pipe2 end ++ + //sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL ++ ++func Readdir(dir uintptr) (dirent *Dirent, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir)) ++ runtime.ExitSyscall() ++ dirent = (*Dirent)(unsafe.Pointer(r0)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//sys Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A ++//sys Statfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A ++//sys Syncfs(fd int) (err error) = SYS_SYNCFS + //sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES + //sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT + //sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A + + //sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A +-//sys unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A ++//sys unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A + //sys Chroot(path string) (err error) = SYS___CHROOT_A + //sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT +-//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A ++//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A ++//sys Unshare(flags int) (err error) = SYS_UNSHARE + + func Ptsname(fd int) (name string, err error) { +- r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) +- name = u2s(unsafe.Pointer(r0)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd)) ++ runtime.ExitSyscall() ++ if r0 == 0 { ++ err = errnoErr2(e1, e2) ++ } else { ++ name = u2s(unsafe.Pointer(r0)) + } + return + } +@@ -272,13 +738,19 @@ func u2s(cstr unsafe.Pointer) string { + } + + func Close(fd int) (err error) { +- _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) ++ runtime.ExitSyscall() + for i := 0; e1 == EAGAIN && i < 10; i++ { +- _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) +- _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ runtime.EnterSyscall() ++ CallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10)) ++ runtime.ExitSyscall() ++ runtime.EnterSyscall() ++ r0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) ++ runtime.ExitSyscall() + } +- if e1 != 0 { +- err = errnoErr(e1) ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -288,9 +760,24 @@ func Madvise(b []byte, advice int) (err error) { + return + } + ++func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { ++ return mapper.Mmap(fd, offset, length, prot, flags) ++} ++ ++func Munmap(b []byte) (err error) { ++ return mapper.Munmap(b) ++} ++ ++func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { ++ xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) ++ return unsafe.Pointer(xaddr), err ++} ++ ++func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { ++ return mapper.munmap(uintptr(addr), length) ++} ++ + //sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A +-//sysnb Getegid() (egid int) +-//sysnb Geteuid() (uid int) + //sysnb Getgid() (gid int) + //sysnb Getpid() (pid int) + //sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID +@@ -317,11 +804,14 @@ func Getrusage(who int, rusage *Rusage) (err error) { + return + } + ++//sys Getegid() (egid int) = SYS_GETEGID ++//sys Geteuid() (euid int) = SYS_GETEUID + //sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID + //sysnb Getuid() (uid int) + //sysnb Kill(pid int, sig Signal) (err error) + //sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A + //sys Link(path string, link string) (err error) = SYS___LINK_A ++//sys Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A + //sys Listen(s int, n int) (err error) + //sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A + +@@ -332,15 +822,150 @@ func Lstat(path string, stat *Stat_t) (err error) { + return + } + ++// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/ ++func isSpecialPath(path []byte) (v bool) { ++ var special = [4][8]byte{ ++ {'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'}, ++ {'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'}, ++ {'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'}, ++ {'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}} ++ ++ var i, j int ++ for i = 0; i < len(special); i++ { ++ for j = 0; j < len(special[i]); j++ { ++ if path[j] != special[i][j] { ++ break ++ } ++ } ++ if j == len(special[i]) { ++ return true ++ } ++ } ++ return false ++} ++ ++func realpath(srcpath string, abspath []byte) (pathlen int, errno int) { ++ var source [1024]byte ++ copy(source[:], srcpath) ++ source[len(srcpath)] = 0 ++ ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a() ++ []uintptr{uintptr(unsafe.Pointer(&source[0])), ++ uintptr(unsafe.Pointer(&abspath[0]))}) ++ if ret != 0 { ++ index := bytes.IndexByte(abspath[:], byte(0)) ++ if index != -1 { ++ return index, 0 ++ } ++ } else { ++ errptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno() ++ return 0, *errptr ++ } ++ return 0, 245 // EBADDATA 245 ++} ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ n = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4, ++ []uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))})) ++ runtime.KeepAlive(unsafe.Pointer(_p0)) ++ if n == -1 { ++ value := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) ++ err = errnoErr(Errno(value)) ++ } else { ++ if buf[0] == '$' { ++ if isSpecialPath(buf[1:9]) { ++ cnt, err1 := realpath(path, buf) ++ if err1 == 0 { ++ n = cnt ++ } ++ } ++ } ++ } ++ return ++} ++ ++func impl_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ return n, err ++ } else { ++ if buf[0] == '$' { ++ if isSpecialPath(buf[1:9]) { ++ cnt, err1 := realpath(path, buf) ++ if err1 == 0 { ++ n = cnt ++ } ++ } ++ } ++ } ++ return ++} ++ ++//go:nosplit ++func get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error)) ++ ++var Readlinkat = enter_Readlinkat ++ ++func enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ funcref := get_ReadlinkatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, "") == 0 { ++ *funcref = impl_Readlinkat ++ } else { ++ *funcref = error_Readlinkat ++ } ++ return (*funcref)(dirfd, path, buf) ++} ++ ++func error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ n = -1 ++ err = ENOSYS ++ return ++} ++ + //sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A ++//sys Mkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A + //sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A + //sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A ++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A ++//sys PivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A + //sys Pread(fd int, p []byte, offset int64) (n int, err error) + //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +-//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A ++//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A ++//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT + //sys Rename(from string, to string) (err error) = SYS___RENAME_A ++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A ++//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A + //sys Rmdir(path string) (err error) = SYS___RMDIR_A + //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Setegid(egid int) (err error) = SYS_SETEGID ++//sys Seteuid(euid int) (err error) = SYS_SETEUID ++//sys Sethostname(p []byte) (err error) = SYS___SETHOSTNAME_A ++//sys Setns(fd int, nstype int) (err error) = SYS_SETNS + //sys Setpriority(which int, who int, prio int) (err error) + //sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID + //sysnb Setrlimit(resource int, lim *Rlimit) (err error) +@@ -360,32 +985,57 @@ func Stat(path string, sta *Stat_t) (err error) { + } + + //sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A ++//sys Symlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A + //sys Sync() = SYS_SYNC + //sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A + //sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR + //sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR + //sys Umask(mask int) (oldmask int) + //sys Unlink(path string) (err error) = SYS___UNLINK_A ++//sys Unlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A + //sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A + + //sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A + + func Open(path string, mode int, perm uint32) (fd int, err error) { ++ if mode&O_ACCMODE == 0 { ++ mode |= O_RDONLY ++ } + return open(path, mode, perm) + } + +-func Mkfifoat(dirfd int, path string, mode uint32) (err error) { +- wd, err := Getwd() +- if err != nil { +- return err ++//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A ++ ++func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ if flags&O_ACCMODE == 0 { ++ flags |= O_RDONLY + } ++ return openat(dirfd, path, flags, mode) ++} + +- if err := Fchdir(dirfd); err != nil { +- return err ++//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A ++ ++func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { ++ if how.Flags&O_ACCMODE == 0 { ++ how.Flags |= O_RDONLY + } +- defer Chdir(wd) ++ return openat2(dirfd, path, how, SizeofOpenHow) ++} + +- return Mkfifo(path, mode) ++func ZosFdToPath(dirfd int) (path string, err error) { ++ var buffer [1024]byte ++ runtime.EnterSyscall() ++ ret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))) ++ runtime.ExitSyscall() ++ if ret == 0 { ++ zb := bytes.IndexByte(buffer[:], 0) ++ if zb == -1 { ++ zb = len(buffer) ++ } ++ CallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)) ++ return string(buffer[:zb]), nil ++ } ++ return "", errnoErr2(e1, e2) + } + + //sys remove(path string) (err error) +@@ -403,10 +1053,12 @@ func Getcwd(buf []byte) (n int, err error) { + } else { + p = unsafe.Pointer(&_zero) + } +- _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf))) ++ runtime.ExitSyscall() + n = clen(buf) + 1 +- if e != 0 { +- err = errnoErr(e) ++ if r0 == 0 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -520,9 +1172,41 @@ func (w WaitStatus) StopSignal() Signal { + + func (w WaitStatus) TrapCause() int { return -1 } + ++//sys waitid(idType int, id int, info *Siginfo, options int) (err error) ++ ++func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { ++ return waitid(idType, id, info, options) ++} ++ + //sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) + +-func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { ++func impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage))) ++ runtime.ExitSyscall() ++ wpid = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)) ++ ++var Wait4 = enter_Wait4 ++ ++func enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { ++ funcref := get_Wait4Addr() ++ if funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, "") == 0 { ++ *funcref = impl_Wait4 ++ } else { ++ *funcref = legacyWait4 ++ } ++ return (*funcref)(pid, wstatus, options, rusage) ++} ++ ++func legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. + // At the moment rusage will not be touched. + var status _C_int +@@ -571,23 +1255,62 @@ func Pipe(p []int) (err error) { + } + var pp [2]_C_int + err = pipe(&pp) +- if err == nil { +- p[0] = int(pp[0]) +- p[1] = int(pp[1]) +- } ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) + return + } + + //sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A + + func Utimes(path string, tv []Timeval) (err error) { ++ if tv == nil { ++ return utimes(path, nil) ++ } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) + } + +-func UtimesNano(path string, ts []Timespec) error { ++//sys utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A ++ ++func validUtimensat() bool { ++ if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { ++ if name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil { ++ return name == "__utimensat_a" ++ } ++ } ++ return false ++} ++ ++// Begin UtimesNano ++ ++//go:nosplit ++func get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error)) ++ ++var UtimesNano = enter_UtimesNano ++ ++func enter_UtimesNano(path string, ts []Timespec) (err error) { ++ funcref := get_UtimesNanoAddr() ++ if validUtimensat() { ++ *funcref = utimesNanoImpl ++ } else { ++ *funcref = legacyUtimesNano ++ } ++ return (*funcref)(path, ts) ++} ++ ++func utimesNanoImpl(path string, ts []Timespec) (err error) { ++ if ts == nil { ++ return utimensat(AT_FDCWD, path, nil, 0) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) ++} ++ ++func legacyUtimesNano(path string, ts []Timespec) (err error) { + if len(ts) != 2 { + return EINVAL + } +@@ -600,6 +1323,70 @@ func UtimesNano(path string, ts []Timespec) error { + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) + } + ++// End UtimesNano ++ ++// Begin UtimesNanoAt ++ ++//go:nosplit ++func get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error)) ++ ++var UtimesNanoAt = enter_UtimesNanoAt ++ ++func enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { ++ funcref := get_UtimesNanoAtAddr() ++ if validUtimensat() { ++ *funcref = utimesNanoAtImpl ++ } else { ++ *funcref = legacyUtimesNanoAt ++ } ++ return (*funcref)(dirfd, path, ts, flags) ++} ++ ++func utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) { ++ if ts == nil { ++ return utimensat(dirfd, path, nil, flags) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) ++} ++ ++func legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { ++ if path[0] != '/' { ++ dirPath, err := ZosFdToPath(dirfd) ++ if err != nil { ++ return err ++ } ++ path = dirPath + "/" + path ++ } ++ if flags == AT_SYMLINK_NOFOLLOW { ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ ++ if ts[0].Nsec >= 5e8 { ++ ts[0].Sec++ ++ } ++ ts[0].Nsec = 0 ++ if ts[1].Nsec >= 5e8 { ++ ts[1].Sec++ ++ } ++ ts[1].Nsec = 0 ++ ++ // Not as efficient as it could be because Timespec and ++ // Timeval have different types in the different OSes ++ tv := []Timeval{ ++ NsecToTimeval(TimespecToNsec(ts[0])), ++ NsecToTimeval(TimespecToNsec(ts[1])), ++ } ++ return Lutimes(path, tv) ++ } ++ return UtimesNano(path, ts) ++} ++ ++// End UtimesNanoAt ++ + func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny +@@ -1191,10 +1978,13 @@ func Opendir(name string) (uintptr, error) { + if err != nil { + return 0, err + } +- dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) ++ err = nil ++ runtime.EnterSyscall() ++ dir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p))) ++ runtime.ExitSyscall() + runtime.KeepAlive(unsafe.Pointer(p)) +- if e != 0 { +- err = errnoErr(e) ++ if dir == 0 { ++ err = errnoErr2(e1, e2) + } + return dir, err + } +@@ -1202,51 +1992,27 @@ func Opendir(name string) (uintptr, error) { + // clearsyscall.Errno resets the errno value to 0. + func clearErrno() + +-func Readdir(dir uintptr) (*Dirent, error) { +- var ent Dirent +- var res uintptr +- // __readdir_r_a returns errno at the end of the directory stream, rather than 0. +- // Therefore to avoid false positives we clear errno before calling it. +- +- // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" +- //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. +- +- e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) +- var err error +- if e != 0 { +- err = errnoErr(Errno(e)) +- } +- if res == 0 { +- return nil, err +- } +- return &ent, err +-} +- +-func readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { +- r0, _, e1 := syscall_syscall(SYS___READDIR_R_A, dirp, uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) +- if int64(r0) == -1 { +- err = errnoErr(Errno(e1)) +- } +- return +-} +- + func Closedir(dir uintptr) error { +- _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) +- if e != 0 { +- return errnoErr(e) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ return errnoErr2(e1, e2) + } + return nil + } + + func Seekdir(dir uintptr, pos int) { +- _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) ++ runtime.EnterSyscall() ++ CallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos)) ++ runtime.ExitSyscall() + } + + func Telldir(dir uintptr) (int, error) { +- p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) ++ p, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir) + pos := int(p) +- if pos == -1 { +- return pos, errnoErr(e) ++ if int64(p) == -1 { ++ return pos, errnoErr2(e1, e2) + } + return pos, nil + } +@@ -1261,19 +2027,55 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start + *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len + *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid +- _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) ++ runtime.ExitSyscall() + lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) + lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) + lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) + lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) + lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) +- if errno == 0 { ++ if r0 == 0 { + return nil + } +- return errno ++ return errnoErr2(e1, e2) ++} ++ ++func impl_Flock(fd int, how int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return + } + +-func Flock(fd int, how int) error { ++//go:nosplit ++func get_FlockAddr() *(func(fd int, how int) (err error)) ++ ++var Flock = enter_Flock ++ ++func validFlock(fp uintptr) bool { ++ if funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, "") == 0 { ++ if name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil { ++ return name == "flock" ++ } ++ } ++ return false ++} ++ ++func enter_Flock(fd int, how int) (err error) { ++ funcref := get_FlockAddr() ++ if validFlock(GetZosLibVec() + SYS_FLOCK<<4) { ++ *funcref = impl_Flock ++ } else { ++ *funcref = legacyFlock ++ } ++ return (*funcref)(fd, how) ++} ++ ++func legacyFlock(fd int, how int) error { + + var flock_type int16 + var fcntl_cmd int +@@ -1307,41 +2109,51 @@ func Flock(fd int, how int) error { + } + + func Mlock(b []byte) (err error) { +- _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } + + func Mlock2(b []byte, flags int) (err error) { +- _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } + + func Mlockall(flags int) (err error) { +- _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } + + func Munlock(b []byte) (err error) { +- _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } + + func Munlockall() (err error) { +- _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) ++ runtime.ExitSyscall() ++ if r0 != 0 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1367,20 +2179,109 @@ func ClockGettime(clockid int32, ts *Timespec) error { + ts.Sec = int64(tm.Utime / ticks_per_sec) + ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) + } else { +- return EINVAL ++ return EINVAL ++ } ++ return nil ++} ++ ++// Chtag ++ ++//go:nosplit ++func get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error) ++ ++var Chtag = enter_Chtag ++ ++func enter_Chtag(path string, ccsid uint64, textbit uint64) error { ++ funcref := get_ChtagAddr() ++ if validSetxattr() { ++ *funcref = impl_Chtag ++ } else { ++ *funcref = legacy_Chtag ++ } ++ return (*funcref)(path, ccsid, textbit) ++} ++ ++func legacy_Chtag(path string, ccsid uint64, textbit uint64) error { ++ tag := ccsid<<16 | textbit<<15 ++ var tag_buff [8]byte ++ DecodeData(tag_buff[:], 8, tag) ++ return Setxattr(path, "filetag", tag_buff[:], XATTR_REPLACE) ++} ++ ++func impl_Chtag(path string, ccsid uint64, textbit uint64) error { ++ tag := ccsid<<16 | textbit<<15 ++ var tag_buff [4]byte ++ DecodeData(tag_buff[:], 4, tag) ++ return Setxattr(path, "system.filetag", tag_buff[:], XATTR_REPLACE) ++} ++ ++// End of Chtag ++ ++// Nanosleep ++ ++//go:nosplit ++func get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error) ++ ++var Nanosleep = enter_Nanosleep ++ ++func enter_Nanosleep(time *Timespec, leftover *Timespec) error { ++ funcref := get_NanosleepAddr() ++ if funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, "") == 0 { ++ *funcref = impl_Nanosleep ++ } else { ++ *funcref = legacyNanosleep ++ } ++ return (*funcref)(time, leftover) ++} ++ ++func impl_Nanosleep(time *Timespec, leftover *Timespec) error { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ return errnoErr2(e1, e2) + } + return nil + } + +-func Statfs(path string, stat *Statfs_t) (err error) { +- fd, err := open(path, O_RDONLY, 0) +- defer Close(fd) +- if err != nil { +- return err ++func legacyNanosleep(time *Timespec, leftover *Timespec) error { ++ t0 := runtime.Nanotime1() ++ var secrem uint32 ++ var nsecrem uint32 ++ total := time.Sec*1000000000 + time.Nsec ++ elapsed := runtime.Nanotime1() - t0 ++ var rv int32 ++ var rc int32 ++ var err error ++ // repeatedly sleep for 1 second until less than 1 second left ++ for total-elapsed > 1000000000 { ++ rv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem) ++ if rv != 0 && rc != 112 { // 112 is EAGAIN ++ if leftover != nil && rc == 120 { // 120 is EINTR ++ leftover.Sec = int64(secrem) ++ leftover.Nsec = int64(nsecrem) ++ } ++ err = Errno(rc) ++ return err ++ } ++ elapsed = runtime.Nanotime1() - t0 ++ } ++ // sleep the remainder ++ if total > elapsed { ++ rv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem) + } +- return Fstatfs(fd, stat) ++ if leftover != nil && rc == 120 { ++ leftover.Sec = int64(secrem) ++ leftover.Nsec = int64(nsecrem) ++ } ++ if rv != 0 && rc != 112 { ++ err = Errno(rc) ++ } ++ return err + } + ++// End of Nanosleep ++ + var ( + Stdin = 0 + Stdout = 1 +@@ -1395,6 +2296,9 @@ var ( + errENOENT error = syscall.ENOENT + ) + ++var ZosTraceLevel int ++var ZosTracefile *os.File ++ + var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +@@ -1416,6 +2320,56 @@ func errnoErr(e Errno) error { + return e + } + ++var reg *regexp.Regexp ++ ++// enhanced with zos specific errno2 ++func errnoErr2(e Errno, e2 uintptr) error { ++ switch e { ++ case 0: ++ return nil ++ case EAGAIN: ++ return errEAGAIN ++ /* ++ Allow the retrieval of errno2 for EINVAL and ENOENT on zos ++ case EINVAL: ++ return errEINVAL ++ case ENOENT: ++ return errENOENT ++ */ ++ } ++ if ZosTraceLevel > 0 { ++ var name string ++ if reg == nil { ++ reg = regexp.MustCompile("(^unix\\.[^/]+$|.*\\/unix\\.[^/]+$)") ++ } ++ i := 1 ++ pc, file, line, ok := runtime.Caller(i) ++ if ok { ++ name = runtime.FuncForPC(pc).Name() ++ } ++ for ok && reg.MatchString(runtime.FuncForPC(pc).Name()) { ++ i += 1 ++ pc, file, line, ok = runtime.Caller(i) ++ } ++ if ok { ++ if ZosTracefile == nil { ++ ZosConsolePrintf("From %s:%d\n", file, line) ++ ZosConsolePrintf("%s: %s (errno2=0x%x)\n", name, e.Error(), e2) ++ } else { ++ fmt.Fprintf(ZosTracefile, "From %s:%d\n", file, line) ++ fmt.Fprintf(ZosTracefile, "%s: %s (errno2=0x%x)\n", name, e.Error(), e2) ++ } ++ } else { ++ if ZosTracefile == nil { ++ ZosConsolePrintf("%s (errno2=0x%x)\n", e.Error(), e2) ++ } else { ++ fmt.Fprintf(ZosTracefile, "%s (errno2=0x%x)\n", e.Error(), e2) ++ } ++ } ++ } ++ return e ++} ++ + // ErrnoName returns the error name for error number e. + func ErrnoName(e Errno) string { + i := sort.Search(len(errorList), func(i int) bool { +@@ -1474,6 +2428,9 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d + return nil, EINVAL + } + ++ // Set __MAP_64 by default ++ flags |= __MAP_64 ++ + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { +@@ -1778,83 +2735,170 @@ func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) + } + +-func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { ++func Getag(path string) (ccsid uint16, flag uint16, err error) { ++ var val [8]byte ++ sz, err := Getxattr(path, "ccsid", val[:]) ++ if err != nil { ++ return ++ } ++ ccsid = uint16(EncodeData(val[0:sz])) ++ sz, err = Getxattr(path, "flags", val[:]) ++ if err != nil { ++ return ++ } ++ flag = uint16(EncodeData(val[0:sz]) >> 15) ++ return ++} ++ ++// Mount begin ++func impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ var _p3 *byte ++ _p3, err = BytePtrFromString(data) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error)) ++ ++var Mount = enter_Mount ++ ++func enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { ++ funcref := get_MountAddr() ++ if validMount() { ++ *funcref = impl_Mount ++ } else { ++ *funcref = legacyMount ++ } ++ return (*funcref)(source, target, fstype, flags, data) ++} ++ ++func legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) { + if needspace := 8 - len(fstype); needspace <= 0 { +- fstype = fstype[:8] ++ fstype = fstype[0:8] + } else { +- fstype += " "[:needspace] ++ fstype += " "[0:needspace] + } + return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) + } + +-func Unmount(name string, mtm int) (err error) { ++func validMount() bool { ++ if funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, "") == 0 { ++ if name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil { ++ return name == "__mount1_a" ++ } ++ } ++ return false ++} ++ ++// Mount end ++ ++// Unmount begin ++func impl_Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_UnmountAddr() *(func(target string, flags int) (err error)) ++ ++var Unmount = enter_Unmount ++ ++func enter_Unmount(target string, flags int) (err error) { ++ funcref := get_UnmountAddr() ++ if funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, "") == 0 { ++ *funcref = impl_Unmount ++ } else { ++ *funcref = legacyUnmount ++ } ++ return (*funcref)(target, flags) ++} ++ ++func legacyUnmount(name string, mtm int) (err error) { + // mountpoint is always a full path and starts with a '/' + // check if input string is not a mountpoint but a filesystem name + if name[0] != '/' { +- return unmount(name, mtm) ++ return unmount_LE(name, mtm) + } + // treat name as mountpoint + b2s := func(arr []byte) string { +- nulli := bytes.IndexByte(arr, 0) +- if nulli == -1 { +- return string(arr) +- } else { +- return string(arr[:nulli]) ++ var str string ++ for i := 0; i < len(arr); i++ { ++ if arr[i] == 0 { ++ str = string(arr[:i]) ++ break ++ } + } ++ return str + } + var buffer struct { + header W_Mnth + fsinfo [64]W_Mntent + } +- fsCount, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) +- if err != nil { +- return err +- } +- if fsCount == 0 { +- return EINVAL +- } +- for i := 0; i < fsCount; i++ { +- if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { +- err = unmount(b2s(buffer.fsinfo[i].Fsname[:]), mtm) +- break ++ fs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) ++ if err == nil { ++ err = EINVAL ++ for i := 0; i < fs_count; i++ { ++ if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { ++ err = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm) ++ break ++ } + } ++ } else if fs_count == 0 { ++ err = EINVAL + } + return err + } + +-func fdToPath(dirfd int) (path string, err error) { +- var buffer [1024]byte +- // w_ctrl() +- ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, +- []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) +- if ret == 0 { +- zb := bytes.IndexByte(buffer[:], 0) +- if zb == -1 { +- zb = len(buffer) +- } +- // __e2a_l() +- runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, +- []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) +- return string(buffer[:zb]), nil +- } +- // __errno() +- errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, +- []uintptr{})))) +- // __errno2() +- errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, +- []uintptr{})) +- // strerror_r() +- ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, +- []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) +- if ret == 0 { +- zb := bytes.IndexByte(buffer[:], 0) +- if zb == -1 { +- zb = len(buffer) +- } +- return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) +- } else { +- return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) ++// Unmount end ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ reclen, ok := direntReclen(buf) ++ if !ok { ++ return 0, false + } ++ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true + } + + func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { +@@ -1896,7 +2940,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + } + + // Get path from fd to avoid unavailable call (fdopendir) +- path, err := fdToPath(fd) ++ path, err := ZosFdToPath(fd) + if err != nil { + return 0, err + } +@@ -1910,7 +2954,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + for { + var entryLE direntLE + var entrypLE *direntLE +- e := readdir_r(d, &entryLE, &entrypLE) ++ e := Readdir_r(d, &entryLE, &entrypLE) + if e != nil { + return n, e + } +@@ -1956,23 +3000,214 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + return n, nil + } + +-func ReadDirent(fd int, buf []byte) (n int, err error) { +- var base = (*uintptr)(unsafe.Pointer(new(uint64))) +- return Getdirentries(fd, buf, base) ++func Err2ad() (eadd *int) { ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4) ++ eadd = (*int)(unsafe.Pointer(r0)) ++ return + } + +-func direntIno(buf []byte) (uint64, bool) { +- return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++func ZosConsolePrintf(format string, v ...interface{}) (int, error) { ++ type __cmsg struct { ++ _ uint16 ++ _ [2]uint8 ++ __msg_length uint32 ++ __msg uintptr ++ _ [4]uint8 ++ } ++ msg := fmt.Sprintf(format, v...) ++ strptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data) ++ len := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len ++ cmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)} ++ cmd := uint32(0) ++ runtime.EnterSyscall() ++ rc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd))) ++ runtime.ExitSyscall() ++ if rc != 0 { ++ return 0, fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) ++ } ++ return 0, nil ++} ++func ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) { ++ if nullterm { ++ ebcdicBytes = []byte(str + "\x00") ++ } else { ++ ebcdicBytes = []byte(str) ++ } ++ A2e(ebcdicBytes) ++ return ++} ++func ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) { ++ res := make([]byte, len(b)) ++ copy(res, b) ++ E2a(res) ++ if trimRight { ++ str = string(bytes.TrimRight(res, " \x00")) ++ } else { ++ str = string(res) ++ } ++ return + } + +-func direntReclen(buf []byte) (uint64, bool) { +- return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++func fdToPath(dirfd int) (path string, err error) { ++ var buffer [1024]byte ++ // w_ctrl() ++ ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, ++ []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) ++ if ret == 0 { ++ zb := bytes.IndexByte(buffer[:], 0) ++ if zb == -1 { ++ zb = len(buffer) ++ } ++ // __e2a_l() ++ runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, ++ []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) ++ return string(buffer[:zb]), nil ++ } ++ // __errno() ++ errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, ++ []uintptr{})))) ++ // __errno2() ++ errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, ++ []uintptr{})) ++ // strerror_r() ++ ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, ++ []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) ++ if ret == 0 { ++ zb := bytes.IndexByte(buffer[:], 0) ++ if zb == -1 { ++ zb = len(buffer) ++ } ++ return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) ++ } else { ++ return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) ++ } + } + +-func direntNamlen(buf []byte) (uint64, bool) { +- reclen, ok := direntReclen(buf) +- if !ok { +- return 0, false ++func impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return + } +- return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error)) ++ ++var Mkfifoat = enter_Mkfifoat ++ ++func enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) { ++ funcref := get_MkfifoatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, "") == 0 { ++ *funcref = impl_Mkfifoat ++ } else { ++ *funcref = legacy_Mkfifoat ++ } ++ return (*funcref)(dirfd, path, mode) ++} ++ ++func legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) { ++ dirname, err := ZosFdToPath(dirfd) ++ if err != nil { ++ return err ++ } ++ return Mkfifo(dirname+"/"+path, mode) ++} ++ ++//sys Posix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT ++//sys Grantpt(fildes int) (rc int, err error) = SYS_GRANTPT ++//sys Unlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT ++ ++func fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg) ++ runtime.ExitSyscall() ++ val = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++func Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) { ++ switch op.(type) { ++ case *Flock_t: ++ err = FcntlFlock(fd, cmd, op.(*Flock_t)) ++ if err != nil { ++ ret = -1 ++ } ++ return ++ case int: ++ return FcntlInt(fd, cmd, op.(int)) ++ case *F_cnvrt: ++ return fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt)))) ++ case unsafe.Pointer: ++ return fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer))) ++ default: ++ return -1, EINVAL ++ } ++ return ++} ++ ++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ if raceenabled { ++ raceReleaseMerge(unsafe.Pointer(&ioSync)) ++ } ++ return sendfile(outfd, infd, offset, count) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ // TODO: use LE call instead if the call is implemented ++ originalOffset, err := Seek(infd, 0, SEEK_CUR) ++ if err != nil { ++ return -1, err ++ } ++ //start reading data from in_fd ++ if offset != nil { ++ _, err := Seek(infd, *offset, SEEK_SET) ++ if err != nil { ++ return -1, err ++ } ++ } ++ ++ buf := make([]byte, count) ++ readBuf := make([]byte, 0) ++ var n int = 0 ++ for i := 0; i < count; i += n { ++ n, err := Read(infd, buf) ++ if n == 0 { ++ if err != nil { ++ return -1, err ++ } else { // EOF ++ break ++ } ++ } ++ readBuf = append(readBuf, buf...) ++ buf = buf[0:0] ++ } ++ ++ n2, err := Write(outfd, readBuf) ++ if err != nil { ++ return -1, err ++ } ++ ++ //When sendfile() returns, this variable will be set to the ++ // offset of the byte following the last byte that was read. ++ if offset != nil { ++ *offset = *offset + int64(n) ++ // If offset is not NULL, then sendfile() does not modify the file ++ // offset of in_fd ++ _, err := Seek(infd, originalOffset, SEEK_SET) ++ if err != nil { ++ return -1, err ++ } ++ } ++ return n2, nil + } +diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go +index 79a84f18b4..672d6b0a88 100644 +--- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go ++++ b/vendor/golang.org/x/sys/unix/sysvshm_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build (darwin && !ios) || linux ++//go:build (darwin && !ios) || linux || zos + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +index 9eb0db664c..8b7977a28c 100644 +--- a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go ++++ b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build darwin && !ios ++//go:build (darwin && !ios) || zos + + package unix + +diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +new file mode 100644 +index 0000000000..07ac8e09d1 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +@@ -0,0 +1,13 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build linux && go1.24 ++ ++package unix ++ ++import _ "unsafe" ++ ++//go:linkname vgetrandom runtime.vgetrandom ++//go:noescape ++func vgetrandom(p []byte, flags uint32) (ret int, supported bool) +diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +new file mode 100644 +index 0000000000..297e97bce9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +@@ -0,0 +1,11 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !linux || !go1.24 ++ ++package unix ++ ++func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { ++ return -1, false ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +index e40fa85245..d73c4652e6 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +@@ -237,6 +237,9 @@ const ( + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 ++ CONNECT_DATA_AUTHENTICATED = 0x4 ++ CONNECT_DATA_IDEMPOTENT = 0x2 ++ CONNECT_RESUME_ON_READ_WRITE = 0x1 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 +@@ -1169,6 +1172,11 @@ const ( + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 ++ RENAME_EXCL = 0x4 ++ RENAME_NOFOLLOW_ANY = 0x10 ++ RENAME_RESERVED1 = 0x8 ++ RENAME_SECLUDE = 0x1 ++ RENAME_SWAP = 0x2 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 +@@ -1260,6 +1268,10 @@ const ( + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 ++ SAE_ASSOCID_ALL = 0xffffffff ++ SAE_ASSOCID_ANY = 0x0 ++ SAE_CONNID_ALL = 0xffffffff ++ SAE_CONNID_ANY = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +index bb02aa6c05..4a55a40058 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +@@ -237,6 +237,9 @@ const ( + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 ++ CONNECT_DATA_AUTHENTICATED = 0x4 ++ CONNECT_DATA_IDEMPOTENT = 0x2 ++ CONNECT_RESUME_ON_READ_WRITE = 0x1 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 +@@ -1169,6 +1172,11 @@ const ( + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 ++ RENAME_EXCL = 0x4 ++ RENAME_NOFOLLOW_ANY = 0x10 ++ RENAME_RESERVED1 = 0x8 ++ RENAME_SECLUDE = 0x1 ++ RENAME_SWAP = 0x2 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 +@@ -1260,6 +1268,10 @@ const ( + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 ++ SAE_ASSOCID_ALL = 0xffffffff ++ SAE_ASSOCID_ANY = 0x0 ++ SAE_CONNID_ALL = 0xffffffff ++ SAE_CONNID_ANY = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go +index 36bf8399f4..4f432bfe8f 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go +@@ -321,6 +321,9 @@ const ( + AUDIT_INTEGRITY_STATUS = 0x70a + AUDIT_IPC = 0x517 + AUDIT_IPC_SET_PERM = 0x51f ++ AUDIT_IPE_ACCESS = 0x58c ++ AUDIT_IPE_CONFIG_CHANGE = 0x58d ++ AUDIT_IPE_POLICY_LOAD = 0x58e + AUDIT_KERNEL = 0x7d0 + AUDIT_KERNEL_OTHER = 0x524 + AUDIT_KERN_MODULE = 0x532 +@@ -457,6 +460,7 @@ const ( + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd ++ BCACHEFS_SUPER_MAGIC = 0xca451a4e + BDEVFS_MAGIC = 0x62646576 + BINDERFS_SUPER_MAGIC = 0x6c6f6f70 + BINFMTFS_MAGIC = 0x42494e4d +@@ -488,11 +492,14 @@ const ( + BPF_F_ID = 0x20 + BPF_F_NETFILTER_IP_DEFRAG = 0x1 + BPF_F_QUERY_EFFECTIVE = 0x1 ++ BPF_F_REDIRECT_FLAGS = 0x19 + BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 + BPF_F_STRICT_ALIGNMENT = 0x1 ++ BPF_F_TEST_REG_INVARIANTS = 0x80 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 ++ BPF_F_TEST_SKB_CHECKSUM_COMPLETE = 0x4 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 + BPF_F_XDP_DEV_BOUND_ONLY = 0x40 +@@ -501,6 +508,7 @@ const ( + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 ++ BPF_JCOND = 0xe0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 +@@ -656,6 +664,9 @@ const ( + CAN_NPROTO = 0x8 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 ++ CAN_RAW_XL_VCID_RX_FILTER = 0x4 ++ CAN_RAW_XL_VCID_TX_PASS = 0x2 ++ CAN_RAW_XL_VCID_TX_SET = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff +@@ -923,6 +934,7 @@ const ( + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 ++ EPOLL_IOC_TYPE = 0x8a + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc +@@ -936,9 +948,6 @@ const ( + ETHTOOL_FEC_OFF = 0x4 + ETHTOOL_FEC_RS = 0x8 + ETHTOOL_FLAG_ALL = 0x7 +- ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 +- ETHTOOL_FLAG_OMIT_REPLY = 0x2 +- ETHTOOL_FLAG_STATS = 0x4 + ETHTOOL_FLASHDEV = 0x33 + ETHTOOL_FLASH_MAX_FILENAME = 0x80 + ETHTOOL_FWVERS_LEN = 0x20 +@@ -1161,6 +1170,7 @@ const ( + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 ++ FALLOC_FL_ALLOCATE_RANGE = 0x0 + FALLOC_FL_COLLAPSE_RANGE = 0x8 + FALLOC_FL_INSERT_RANGE = 0x20 + FALLOC_FL_KEEP_SIZE = 0x1 +@@ -1235,6 +1245,7 @@ const ( + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DFID_NAME_TARGET = 0x1e00 + FAN_REPORT_DIR_FID = 0x400 ++ FAN_REPORT_FD_ERROR = 0x2000 + FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 + FAN_REPORT_PIDFD = 0x80 +@@ -1320,8 +1331,10 @@ const ( + FUSE_SUPER_MAGIC = 0x65735546 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 ++ F_CREATED_QUERY = 0x404 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 ++ F_DUPFD_QUERY = 0x403 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 +@@ -1338,6 +1351,7 @@ const ( + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 ++ F_SEAL_EXEC = 0x20 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 +@@ -1540,6 +1554,7 @@ const ( + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 ++ IPPROTO_SMC = 0x100 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 +@@ -1612,6 +1627,8 @@ const ( + IPV6_UNICAST_IF = 0x4c + IPV6_USER_FLOW = 0xe + IPV6_V6ONLY = 0x1a ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 +@@ -1626,6 +1643,7 @@ const ( + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 ++ IP_LOCAL_PORT_RANGE = 0x33 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 +@@ -1652,6 +1670,7 @@ const ( + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 ++ IP_PROTOCOL = 0x34 + IP_RECVERR = 0xb + IP_RECVERR_RFC4884 = 0x1a + IP_RECVFRAGSIZE = 0x19 +@@ -1697,6 +1716,8 @@ const ( + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 ++ KEXEC_CRASH_HOTPLUG_SUPPORT = 0x8 ++ KEXEC_FILE_DEBUG = 0x8 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 +@@ -1771,6 +1792,7 @@ const ( + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LANDLOCK_ACCESS_FS_EXECUTE = 0x1 ++ LANDLOCK_ACCESS_FS_IOCTL_DEV = 0x8000 + LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 + LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 + LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 +@@ -1788,6 +1810,8 @@ const ( + LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 + LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 + LANDLOCK_CREATE_RULESET_VERSION = 0x1 ++ LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET = 0x1 ++ LANDLOCK_SCOPE_SIGNAL = 0x2 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 +@@ -1849,9 +1873,23 @@ const ( + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 ++ MAP_DROPPABLE = 0x8 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 ++ MAP_HUGE_16GB = 0x88000000 ++ MAP_HUGE_16KB = 0x38000000 ++ MAP_HUGE_16MB = 0x60000000 ++ MAP_HUGE_1GB = 0x78000000 ++ MAP_HUGE_1MB = 0x50000000 ++ MAP_HUGE_256MB = 0x70000000 ++ MAP_HUGE_2GB = 0x7c000000 ++ MAP_HUGE_2MB = 0x54000000 ++ MAP_HUGE_32MB = 0x64000000 ++ MAP_HUGE_512KB = 0x4c000000 ++ MAP_HUGE_512MB = 0x74000000 ++ MAP_HUGE_64KB = 0x40000000 ++ MAP_HUGE_8MB = 0x5c000000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_PRIVATE = 0x2 +@@ -1898,6 +1936,9 @@ const ( + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 ++ MNT_ID_REQ_SIZE_VER0 = 0x18 ++ MNT_ID_REQ_SIZE_VER1 = 0x20 ++ MNT_NS_INFO_SIZE_VER0 = 0x10 + MODULE_INIT_COMPRESSED_FILE = 0x4 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 +@@ -1933,6 +1974,7 @@ const ( + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 ++ MSG_SOCK_DEVMEM = 0x2000000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 +@@ -2049,6 +2091,7 @@ const ( + NFC_ATR_REQ_MAXSIZE = 0x40 + NFC_ATR_RES_GB_MAXSIZE = 0x2f + NFC_ATR_RES_MAXSIZE = 0x40 ++ NFC_ATS_MAXSIZE = 0x14 + NFC_COMM_ACTIVE = 0x0 + NFC_COMM_PASSIVE = 0x1 + NFC_DEVICE_NAME_MAXSIZE = 0x8 +@@ -2129,6 +2172,7 @@ const ( + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 ++ NFT_BITWISE_BOOL = 0x0 + NFT_CHAIN_FLAGS = 0x7 + NFT_CHAIN_MAXNAMELEN = 0x100 + NFT_CT_MAX = 0x17 +@@ -2163,10 +2207,10 @@ const ( + NFT_REG_SIZE = 0x10 + NFT_REJECT_ICMPX_MAX = 0x3 + NFT_RT_MAX = 0x4 +- NFT_SECMARK_CTX_MAXLEN = 0x100 ++ NFT_SECMARK_CTX_MAXLEN = 0x1000 + NFT_SET_MAXNAMELEN = 0x100 + NFT_SOCKET_MAX = 0x3 +- NFT_TABLE_F_MASK = 0x3 ++ NFT_TABLE_F_MASK = 0x7 + NFT_TABLE_MAXNAMELEN = 0x100 + NFT_TRACETYPE_MAX = 0x3 + NFT_TUNNEL_F_MASK = 0x7 +@@ -2302,6 +2346,7 @@ const ( + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 + PERF_AUX_FLAG_TRUNCATED = 0x1 ++ PERF_BRANCH_ENTRY_INFO_BITS_MAX = 0x21 + PERF_BR_ARM64_DEBUG_DATA = 0x7 + PERF_BR_ARM64_DEBUG_EXIT = 0x5 + PERF_BR_ARM64_DEBUG_HALT = 0x4 +@@ -2331,9 +2376,11 @@ const ( + PERF_MEM_LVLNUM_IO = 0xa + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 ++ PERF_MEM_LVLNUM_L2_MHB = 0x5 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc ++ PERF_MEM_LVLNUM_MSC = 0x6 + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd +@@ -2399,12 +2446,14 @@ const ( + PERF_RECORD_MISC_USER = 0x2 + PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 + PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 ++ PID_FS_MAGIC = 0x50494446 + PIPEFS_MAGIC = 0x50495045 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 ++ PROCFS_IOCTL_MAGIC = 'f' + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 +@@ -2452,6 +2501,7 @@ const ( + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b ++ PR_GET_SHADOW_STACK_STATUS = 0x4a + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a +@@ -2460,6 +2510,7 @@ const ( + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 ++ PR_LOCK_SHADOW_STACK_STATUS = 0x4c + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 +@@ -2486,6 +2537,25 @@ const ( + PR_PAC_GET_ENABLED_KEYS = 0x3d + PR_PAC_RESET_KEYS = 0x36 + PR_PAC_SET_ENABLED_KEYS = 0x3c ++ PR_PMLEN_MASK = 0x7f000000 ++ PR_PMLEN_SHIFT = 0x18 ++ PR_PPC_DEXCR_CTRL_CLEAR = 0x4 ++ PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 ++ PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 ++ PR_PPC_DEXCR_CTRL_MASK = 0x1f ++ PR_PPC_DEXCR_CTRL_SET = 0x2 ++ PR_PPC_DEXCR_CTRL_SET_ONEXEC = 0x8 ++ PR_PPC_DEXCR_IBRTPD = 0x1 ++ PR_PPC_DEXCR_NPHIE = 0x3 ++ PR_PPC_DEXCR_SBHE = 0x0 ++ PR_PPC_DEXCR_SRAPD = 0x2 ++ PR_PPC_GET_DEXCR = 0x48 ++ PR_PPC_SET_DEXCR = 0x49 ++ PR_RISCV_CTX_SW_FENCEI_OFF = 0x1 ++ PR_RISCV_CTX_SW_FENCEI_ON = 0x0 ++ PR_RISCV_SCOPE_PER_PROCESS = 0x0 ++ PR_RISCV_SCOPE_PER_THREAD = 0x1 ++ PR_RISCV_SET_ICACHE_FLUSH_CTX = 0x47 + PR_RISCV_V_GET_CONTROL = 0x46 + PR_RISCV_V_SET_CONTROL = 0x45 + PR_RISCV_V_VSTATE_CTRL_CUR_MASK = 0x3 +@@ -2536,6 +2606,7 @@ const ( + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c ++ PR_SET_SHADOW_STACK_STATUS = 0x4b + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_SYSCALL_USER_DISPATCH = 0x3b + PR_SET_TAGGED_ADDR_CTRL = 0x37 +@@ -2546,6 +2617,9 @@ const ( + PR_SET_UNALIGN = 0x6 + PR_SET_VMA = 0x53564d41 + PR_SET_VMA_ANON_NAME = 0x0 ++ PR_SHADOW_STACK_ENABLE = 0x1 ++ PR_SHADOW_STACK_PUSH = 0x4 ++ PR_SHADOW_STACK_WRITE = 0x2 + PR_SME_GET_VL = 0x40 + PR_SME_SET_VL = 0x3f + PR_SME_SET_VL_ONEXEC = 0x40000 +@@ -2577,6 +2651,28 @@ const ( + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c ++ PTP_CLK_MAGIC = '=' ++ PTP_ENABLE_FEATURE = 0x1 ++ PTP_EXTTS_EDGES = 0x6 ++ PTP_EXTTS_EVENT_VALID = 0x1 ++ PTP_EXTTS_V1_VALID_FLAGS = 0x7 ++ PTP_EXTTS_VALID_FLAGS = 0x1f ++ PTP_EXT_OFFSET = 0x10 ++ PTP_FALLING_EDGE = 0x4 ++ PTP_MAX_SAMPLES = 0x19 ++ PTP_PEROUT_DUTY_CYCLE = 0x2 ++ PTP_PEROUT_ONE_SHOT = 0x1 ++ PTP_PEROUT_PHASE = 0x4 ++ PTP_PEROUT_V1_VALID_FLAGS = 0x0 ++ PTP_PEROUT_VALID_FLAGS = 0x7 ++ PTP_PIN_GETFUNC = 0xc0603d06 ++ PTP_PIN_GETFUNC2 = 0xc0603d0f ++ PTP_RISING_EDGE = 0x2 ++ PTP_STRICT_FLAGS = 0x8 ++ PTP_SYS_OFFSET_EXTENDED = 0xc4c03d09 ++ PTP_SYS_OFFSET_EXTENDED2 = 0xc4c03d12 ++ PTP_SYS_OFFSET_PRECISE = 0xc0403d08 ++ PTP_SYS_OFFSET_PRECISE2 = 0xc0403d11 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 +@@ -2833,7 +2929,6 @@ const ( + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNEXTHOPBUCKET = 0x74 + RTM_NEWNSID = 0x58 +- RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 +@@ -2842,6 +2937,7 @@ const ( + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NEWTUNNEL = 0x78 ++ RTM_NEWVLAN = 0x70 + RTM_NR_FAMILIES = 0x1b + RTM_NR_MSGTYPES = 0x6c + RTM_SETDCB = 0x4f +@@ -2890,14 +2986,17 @@ const ( + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + RWF_APPEND = 0x10 ++ RWF_ATOMIC = 0x40 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 ++ RWF_NOAPPEND = 0x20 + RWF_NOWAIT = 0x8 +- RWF_SUPPORTED = 0x1f ++ RWF_SUPPORTED = 0x7f + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCHED_BATCH = 0x3 + SCHED_DEADLINE = 0x6 ++ SCHED_EXT = 0x7 + SCHED_FIFO = 0x1 + SCHED_FLAG_ALL = 0x7f + SCHED_FLAG_DL_OVERRUN = 0x4 +@@ -2914,7 +3013,9 @@ const ( + SCHED_RESET_ON_FORK = 0x40000000 + SCHED_RR = 0x2 + SCM_CREDENTIALS = 0x2 ++ SCM_PIDFD = 0x4 + SCM_RIGHTS = 0x1 ++ SCM_SECURITY = 0x3 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_ADDFD_FLAG_SEND = 0x2 +@@ -3047,6 +3148,8 @@ const ( + SIOCSMIIREG = 0x8949 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a ++ SK_DIAG_BPF_STORAGE_MAX = 0x3 ++ SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1 + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb +@@ -3067,6 +3170,8 @@ const ( + SOCKFS_MAGIC = 0x534f434b + SOCK_BUF_LOCK_MASK = 0x3 + SOCK_DCCP = 0x6 ++ SOCK_DESTROY = 0x15 ++ SOCK_DIAG_BY_FAMILY = 0x14 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 +@@ -3160,6 +3265,7 @@ const ( + STATX_ATTR_MOUNT_ROOT = 0x2000 + STATX_ATTR_NODUMP = 0x40 + STATX_ATTR_VERITY = 0x100000 ++ STATX_ATTR_WRITE_ATOMIC = 0x400000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 +@@ -3168,12 +3274,15 @@ const ( + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 ++ STATX_MNT_ID_UNIQUE = 0x4000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 ++ STATX_SUBVOL = 0x8000 + STATX_TYPE = 0x1 + STATX_UID = 0x8 ++ STATX_WRITE_ATOMIC = 0x10000 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 +@@ -3255,6 +3364,7 @@ const ( + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 ++ TCP_MD5SIG_FLAG_IFINDEX = 0x2 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 +@@ -3562,12 +3672,17 @@ const ( + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 ++ XDP_TXMD_FLAGS_CHECKSUM = 0x2 ++ XDP_TXMD_FLAGS_TIMESTAMP = 0x1 ++ XDP_TX_METADATA = 0x2 + XDP_TX_RING = 0x3 + XDP_UMEM_COMPLETION_RING = 0x6 + XDP_UMEM_FILL_RING = 0x5 + XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 + XDP_UMEM_PGOFF_FILL_RING = 0x100000000 + XDP_UMEM_REG = 0x4 ++ XDP_UMEM_TX_METADATA_LEN = 0x4 ++ XDP_UMEM_TX_SW_CSUM = 0x2 + XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_USE_SG = 0x10 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +index 42ff8c3c1b..75207613c7 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -107,17 +109,21 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 ++ MAP_ABOVE4G = 0x80 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 +@@ -150,9 +156,14 @@ const ( + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -229,6 +240,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 +@@ -275,10 +300,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -313,6 +341,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +index dca436004f..c68acda535 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -107,17 +109,21 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 ++ MAP_ABOVE4G = 0x80 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 +@@ -150,9 +156,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -229,6 +240,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 +@@ -276,10 +301,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -314,6 +342,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +index 5cca668ac3..a8c607ab86 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETFDPIC = 0x1f + PTRACE_GETFDPIC_EXEC = 0x0 +@@ -282,10 +306,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -320,6 +347,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +index d8cae6d153..18563dd8d3 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 +@@ -87,6 +89,7 @@ const ( + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 ++ FPMR_MAGIC = 0x46504d52 + FPSIMD_MAGIC = 0x46508001 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 +@@ -106,15 +109,19 @@ const ( + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 ++ GCS_MAGIC = 0x47435300 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -151,9 +158,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -197,6 +209,7 @@ const ( + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 ++ POE_MAGIC = 0x504f4530 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 +@@ -232,6 +245,20 @@ const ( + PROT_BTI = 0x10 + PROT_MTE = 0x20 + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_PEEKMTETAGS = 0x21 + PTRACE_POKEMTETAGS = 0x22 + PTRACE_SYSEMU = 0x1f +@@ -272,10 +299,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -310,6 +340,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +index 28e39afdcb..22912cdaa9 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -107,12 +109,15 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -152,9 +157,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -231,6 +241,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 +@@ -269,10 +293,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -307,6 +334,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +index cd66e92cb4..29344eb37a 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 +@@ -275,10 +299,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -313,6 +340,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +index c1595eba78..20d51fb96a 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 +@@ -275,10 +299,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -313,6 +340,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +index ee9456b0da..321b60902a 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 +@@ -275,10 +299,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -313,6 +340,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +index 8cfca81e1b..9bacdf1e27 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 +@@ -275,10 +299,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -313,6 +340,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +index 60b0deb3af..c224272615 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 +@@ -150,9 +155,14 @@ const ( + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 +@@ -230,6 +240,20 @@ const ( + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 +@@ -330,10 +354,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -368,6 +395,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +index f90aa7281b..6270c8ee13 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 +@@ -150,9 +155,14 @@ const ( + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 +@@ -230,6 +240,20 @@ const ( + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 +@@ -334,10 +358,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -372,6 +399,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +index ba9e015033..9966c1941f 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 +@@ -150,9 +155,14 @@ const ( + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 +@@ -230,6 +240,20 @@ const ( + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 +@@ -334,10 +358,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -372,6 +399,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +index 07cdfd6e9f..848e5fcc42 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_GETFDPIC = 0x21 + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 +@@ -266,10 +290,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -304,6 +331,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +index 2f1dd214a7..669b2adb80 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +@@ -78,6 +78,8 @@ const ( + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 ++ EPIOCGPARAMS = 0x80088a02 ++ EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -106,12 +108,15 @@ const ( + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 ++ HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -148,9 +153,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 ++ NS_GET_PID_FROM_PIDNS = 0x8004b706 ++ NS_GET_PID_IN_PIDNS = 0x8004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x8004b707 ++ NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -227,6 +237,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x80503d01 ++ PTP_CLOCK_GETCAPS2 = 0x80503d0a ++ PTP_ENABLE_PPS = 0x40043d04 ++ PTP_ENABLE_PPS2 = 0x40043d0d ++ PTP_EXTTS_REQUEST = 0x40103d02 ++ PTP_EXTTS_REQUEST2 = 0x40103d0b ++ PTP_MASK_CLEAR_ALL = 0x3d13 ++ PTP_MASK_EN_SINGLE = 0x40043d14 ++ PTP_PEROUT_REQUEST = 0x40383d03 ++ PTP_PEROUT_REQUEST2 = 0x40383d0c ++ PTP_PIN_SETFUNC = 0x40603d07 ++ PTP_PIN_SETFUNC2 = 0x40603d10 ++ PTP_SYS_OFFSET = 0x43403d05 ++ PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_GET_LAST_BREAK = 0x5006 +@@ -338,10 +362,13 @@ const ( + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f ++ SCM_DEVMEM_DMABUF = 0x4f ++ SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 ++ SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 +@@ -376,6 +403,9 @@ const ( + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 ++ SO_DEVMEM_DMABUF = 0x4f ++ SO_DEVMEM_DONTNEED = 0x50 ++ SO_DEVMEM_LINEAR = 0x4e + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +index f40519d901..4834e57514 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +@@ -82,6 +82,8 @@ const ( + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 ++ EPIOCGPARAMS = 0x40088a02 ++ EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x400000 + EXTPROC = 0x10000 + FF1 = 0x8000 +@@ -110,12 +112,15 @@ const ( + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 ++ HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 ++ IPV6_FLOWINFO_MASK = 0xfffffff ++ IPV6_FLOWLABEL_MASK = 0xfffff + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 +@@ -153,9 +158,14 @@ const ( + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 ++ NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 ++ NS_GET_PID_FROM_PIDNS = 0x4004b706 ++ NS_GET_PID_IN_PIDNS = 0x4004b708 ++ NS_GET_TGID_FROM_PIDNS = 0x4004b707 ++ NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 +@@ -232,6 +242,20 @@ const ( + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff ++ PTP_CLOCK_GETCAPS = 0x40503d01 ++ PTP_CLOCK_GETCAPS2 = 0x40503d0a ++ PTP_ENABLE_PPS = 0x80043d04 ++ PTP_ENABLE_PPS2 = 0x80043d0d ++ PTP_EXTTS_REQUEST = 0x80103d02 ++ PTP_EXTTS_REQUEST2 = 0x80103d0b ++ PTP_MASK_CLEAR_ALL = 0x20003d13 ++ PTP_MASK_EN_SINGLE = 0x80043d14 ++ PTP_PEROUT_REQUEST = 0x80383d03 ++ PTP_PEROUT_REQUEST2 = 0x80383d0c ++ PTP_PIN_SETFUNC = 0x80603d07 ++ PTP_PIN_SETFUNC2 = 0x80603d10 ++ PTP_SYS_OFFSET = 0x83403d05 ++ PTP_SYS_OFFSET2 = 0x83403d0e + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 +@@ -329,10 +353,13 @@ const ( + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f ++ SCM_DEVMEM_DMABUF = 0x58 ++ SCM_DEVMEM_LINEAR = 0x57 + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 ++ SCM_TS_OPT_ID = 0x5a + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 +@@ -415,6 +442,9 @@ const ( + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 ++ SO_DEVMEM_DMABUF = 0x58 ++ SO_DEVMEM_DONTNEED = 0x59 ++ SO_DEVMEM_LINEAR = 0x57 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 +diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +index 4dfd2e051d..1ec2b1407b 100644 +--- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go ++++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +@@ -10,41 +10,99 @@ + package unix + + const ( +- BRKINT = 0x0001 +- CLOCK_MONOTONIC = 0x1 +- CLOCK_PROCESS_CPUTIME_ID = 0x2 +- CLOCK_REALTIME = 0x0 +- CLOCK_THREAD_CPUTIME_ID = 0x3 +- CS8 = 0x0030 +- CSIZE = 0x0030 +- ECHO = 0x00000008 +- ECHONL = 0x00000001 +- FD_CLOEXEC = 0x01 +- FD_CLOFORK = 0x02 +- FNDELAY = 0x04 +- F_CLOSFD = 9 +- F_CONTROL_CVT = 13 +- F_DUPFD = 0 +- F_DUPFD2 = 8 +- F_GETFD = 1 +- F_GETFL = 259 +- F_GETLK = 5 +- F_GETOWN = 10 +- F_OK = 0x0 +- F_RDLCK = 1 +- F_SETFD = 2 +- F_SETFL = 4 +- F_SETLK = 6 +- F_SETLKW = 7 +- F_SETOWN = 11 +- F_SETTAG = 12 +- F_UNLCK = 3 +- F_WRLCK = 2 +- FSTYPE_ZFS = 0xe9 //"Z" +- FSTYPE_HFS = 0xc8 //"H" +- FSTYPE_NFS = 0xd5 //"N" +- FSTYPE_TFS = 0xe3 //"T" +- FSTYPE_AUTOMOUNT = 0xc1 //"A" ++ BRKINT = 0x0001 ++ CLOCAL = 0x1 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLONE_NEWIPC = 0x08000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x00020000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUTS = 0x04000000 ++ CLONE_PARENT = 0x00008000 ++ CS8 = 0x0030 ++ CSIZE = 0x0030 ++ ECHO = 0x00000008 ++ ECHONL = 0x00000001 ++ EFD_SEMAPHORE = 0x00002000 ++ EFD_CLOEXEC = 0x00001000 ++ EFD_NONBLOCK = 0x00000004 ++ EPOLL_CLOEXEC = 0x00001000 ++ EPOLL_CTL_ADD = 0 ++ EPOLL_CTL_MOD = 1 ++ EPOLL_CTL_DEL = 2 ++ EPOLLRDNORM = 0x0001 ++ EPOLLRDBAND = 0x0002 ++ EPOLLIN = 0x0003 ++ EPOLLOUT = 0x0004 ++ EPOLLWRBAND = 0x0008 ++ EPOLLPRI = 0x0010 ++ EPOLLERR = 0x0020 ++ EPOLLHUP = 0x0040 ++ EPOLLEXCLUSIVE = 0x20000000 ++ EPOLLONESHOT = 0x40000000 ++ FD_CLOEXEC = 0x01 ++ FD_CLOFORK = 0x02 ++ FD_SETSIZE = 0x800 ++ FNDELAY = 0x04 ++ F_CLOSFD = 9 ++ F_CONTROL_CVT = 13 ++ F_DUPFD = 0 ++ F_DUPFD2 = 8 ++ F_GETFD = 1 ++ F_GETFL = 259 ++ F_GETLK = 5 ++ F_GETOWN = 10 ++ F_OK = 0x0 ++ F_RDLCK = 1 ++ F_SETFD = 2 ++ F_SETFL = 4 ++ F_SETLK = 6 ++ F_SETLKW = 7 ++ F_SETOWN = 11 ++ F_SETTAG = 12 ++ F_UNLCK = 3 ++ F_WRLCK = 2 ++ FSTYPE_ZFS = 0xe9 //"Z" ++ FSTYPE_HFS = 0xc8 //"H" ++ FSTYPE_NFS = 0xd5 //"N" ++ FSTYPE_TFS = 0xe3 //"T" ++ FSTYPE_AUTOMOUNT = 0xc1 //"A" ++ GRND_NONBLOCK = 1 ++ GRND_RANDOM = 2 ++ HUPCL = 0x0100 // Hang up on last close ++ IN_CLOEXEC = 0x00001000 ++ IN_NONBLOCK = 0x00000004 ++ IN_ACCESS = 0x00000001 ++ IN_MODIFY = 0x00000002 ++ IN_ATTRIB = 0x00000004 ++ IN_CLOSE_WRITE = 0x00000008 ++ IN_CLOSE_NOWRITE = 0x00000010 ++ IN_OPEN = 0x00000020 ++ IN_MOVED_FROM = 0x00000040 ++ IN_MOVED_TO = 0x00000080 ++ IN_CREATE = 0x00000100 ++ IN_DELETE = 0x00000200 ++ IN_DELETE_SELF = 0x00000400 ++ IN_MOVE_SELF = 0x00000800 ++ IN_UNMOUNT = 0x00002000 ++ IN_Q_OVERFLOW = 0x00004000 ++ IN_IGNORED = 0x00008000 ++ IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) ++ IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO) ++ IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | ++ IN_CLOSE | IN_OPEN | IN_MOVE | ++ IN_CREATE | IN_DELETE | IN_DELETE_SELF | ++ IN_MOVE_SELF) ++ IN_ONLYDIR = 0x01000000 ++ IN_DONT_FOLLOW = 0x02000000 ++ IN_EXCL_UNLINK = 0x04000000 ++ IN_MASK_CREATE = 0x10000000 ++ IN_MASK_ADD = 0x20000000 ++ IN_ISDIR = 0x40000000 ++ IN_ONESHOT = 0x80000000 + IP6F_MORE_FRAG = 0x0001 + IP6F_OFF_MASK = 0xfff8 + IP6F_RESERVED_MASK = 0x0006 +@@ -152,10 +210,18 @@ const ( + IP_PKTINFO = 101 + IP_RECVPKTINFO = 102 + IP_TOS = 2 +- IP_TTL = 3 ++ IP_TTL = 14 + IP_UNBLOCK_SOURCE = 11 ++ ICMP6_FILTER = 1 ++ MCAST_INCLUDE = 0 ++ MCAST_EXCLUDE = 1 ++ MCAST_JOIN_GROUP = 40 ++ MCAST_LEAVE_GROUP = 41 ++ MCAST_JOIN_SOURCE_GROUP = 42 ++ MCAST_LEAVE_SOURCE_GROUP = 43 ++ MCAST_BLOCK_SOURCE = 44 ++ MCAST_UNBLOCK_SOURCE = 46 + ICANON = 0x0010 +- ICMP6_FILTER = 0x26 + ICRNL = 0x0002 + IEXTEN = 0x0020 + IGNBRK = 0x0004 +@@ -165,10 +231,10 @@ const ( + ISTRIP = 0x0080 + IXON = 0x0200 + IXOFF = 0x0100 +- LOCK_SH = 0x1 // Not exist on zOS +- LOCK_EX = 0x2 // Not exist on zOS +- LOCK_NB = 0x4 // Not exist on zOS +- LOCK_UN = 0x8 // Not exist on zOS ++ LOCK_SH = 0x1 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_UN = 0x8 + POLLIN = 0x0003 + POLLOUT = 0x0004 + POLLPRI = 0x0010 +@@ -182,15 +248,29 @@ const ( + MAP_PRIVATE = 0x1 // changes are private + MAP_SHARED = 0x2 // changes are shared + MAP_FIXED = 0x4 // place exactly +- MCAST_JOIN_GROUP = 40 +- MCAST_LEAVE_GROUP = 41 +- MCAST_JOIN_SOURCE_GROUP = 42 +- MCAST_LEAVE_SOURCE_GROUP = 43 +- MCAST_BLOCK_SOURCE = 44 +- MCAST_UNBLOCK_SOURCE = 45 ++ __MAP_MEGA = 0x8 ++ __MAP_64 = 0x10 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 + MS_SYNC = 0x1 // msync - synchronous writes + MS_ASYNC = 0x2 // asynchronous writes + MS_INVALIDATE = 0x4 // invalidate mappings ++ MS_BIND = 0x00001000 ++ MS_MOVE = 0x00002000 ++ MS_NOSUID = 0x00000002 ++ MS_PRIVATE = 0x00040000 ++ MS_REC = 0x00004000 ++ MS_REMOUNT = 0x00008000 ++ MS_RDONLY = 0x00000001 ++ MS_UNBINDABLE = 0x00020000 ++ MNT_DETACH = 0x00000004 ++ ZOSDSFS_SUPER_MAGIC = 0x44534653 // zOS DSFS ++ NFS_SUPER_MAGIC = 0x6969 // NFS ++ NSFS_MAGIC = 0x6e736673 // PROCNS ++ PROC_SUPER_MAGIC = 0x9fa0 // proc FS ++ ZOSTFS_SUPER_MAGIC = 0x544653 // zOS TFS ++ ZOSUFS_SUPER_MAGIC = 0x554653 // zOS UFS ++ ZOSZFS_SUPER_MAGIC = 0x5A4653 // zOS ZFS + MTM_RDONLY = 0x80000000 + MTM_RDWR = 0x40000000 + MTM_UMOUNT = 0x10000000 +@@ -205,13 +285,20 @@ const ( + MTM_REMOUNT = 0x00000100 + MTM_NOSECURITY = 0x00000080 + NFDBITS = 0x20 ++ ONLRET = 0x0020 // NL performs CR function + O_ACCMODE = 0x03 + O_APPEND = 0x08 + O_ASYNCSIG = 0x0200 + O_CREAT = 0x80 ++ O_DIRECT = 0x00002000 ++ O_NOFOLLOW = 0x00004000 ++ O_DIRECTORY = 0x00008000 ++ O_PATH = 0x00080000 ++ O_CLOEXEC = 0x00001000 + O_EXCL = 0x40 + O_GETFL = 0x0F + O_LARGEFILE = 0x0400 ++ O_NDELAY = 0x4 + O_NONBLOCK = 0x04 + O_RDONLY = 0x02 + O_RDWR = 0x03 +@@ -248,6 +335,7 @@ const ( + AF_IUCV = 17 + AF_LAT = 14 + AF_LINK = 18 ++ AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX + AF_MAX = 30 + AF_NBS = 7 + AF_NDD = 23 +@@ -285,15 +373,33 @@ const ( + RLIMIT_AS = 5 + RLIMIT_NOFILE = 6 + RLIMIT_MEMLIMIT = 7 ++ RLIMIT_MEMLOCK = 0x8 + RLIM_INFINITY = 2147483647 ++ SCHED_FIFO = 0x2 ++ SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x01 + SF_CLOSE = 0x00000002 + SF_REUSE = 0x00000001 ++ SHM_RND = 0x2 ++ SHM_RDONLY = 0x1 ++ SHMLBA = 0x1000 ++ IPC_STAT = 0x3 ++ IPC_SET = 0x2 ++ IPC_RMID = 0x1 ++ IPC_PRIVATE = 0x0 ++ IPC_CREAT = 0x1000000 ++ __IPC_MEGA = 0x4000000 ++ __IPC_SHAREAS = 0x20000000 ++ __IPC_BELOWBAR = 0x10000000 ++ IPC_EXCL = 0x2000000 ++ __IPC_GIGA = 0x8000000 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 ++ SOCK_CLOEXEC = 0x00001000 + SOCK_CONN_DGRAM = 6 + SOCK_DGRAM = 2 ++ SOCK_NONBLOCK = 0x800 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 +@@ -378,8 +484,6 @@ const ( + S_IFMST = 0x00FF0000 + TCP_KEEPALIVE = 0x8 + TCP_NODELAY = 0x1 +- TCP_INFO = 0xb +- TCP_USER_TIMEOUT = 0x1 + TIOCGWINSZ = 0x4008a368 + TIOCSWINSZ = 0x8008a367 + TIOCSBRK = 0x2000a77b +@@ -427,7 +531,10 @@ const ( + VSUSP = 9 + VTIME = 10 + WCONTINUED = 0x4 ++ WEXITED = 0x8 + WNOHANG = 0x1 ++ WNOWAIT = 0x20 ++ WSTOPPED = 0x10 + WUNTRACED = 0x2 + _BPX_SWAP = 1 + _BPX_NONSWAP = 2 +@@ -452,8 +559,30 @@ const ( + MADV_FREE = 15 // for Linux compatibility -- no zos semantics + MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics + MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics +- AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics +- AT_FDCWD = 2 // for Unix compatibility -- no zos semantics ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++ XATTR_CREATE = 0x1 ++ XATTR_REPLACE = 0x2 ++ P_PID = 0 ++ P_PGID = 1 ++ P_ALL = 2 ++ PR_SET_NAME = 15 ++ PR_GET_NAME = 16 ++ PR_SET_NO_NEW_PRIVS = 38 ++ PR_GET_NO_NEW_PRIVS = 39 ++ PR_SET_DUMPABLE = 4 ++ PR_GET_DUMPABLE = 3 ++ PR_SET_PDEATHSIG = 1 ++ PR_GET_PDEATHSIG = 2 ++ PR_SET_CHILD_SUBREAPER = 36 ++ PR_GET_CHILD_SUBREAPER = 37 ++ AT_FDCWD = -100 ++ AT_EACCESS = 0x200 ++ AT_EMPTY_PATH = 0x1000 ++ AT_REMOVEDIR = 0x200 ++ RENAME_NOREPLACE = 1 << 0 ++ ST_RDONLY = 1 ++ ST_NOSUID = 2 + ) + + const ( +@@ -476,6 +605,7 @@ const ( + EMLINK = Errno(125) + ENAMETOOLONG = Errno(126) + ENFILE = Errno(127) ++ ENOATTR = Errno(265) + ENODEV = Errno(128) + ENOENT = Errno(129) + ENOEXEC = Errno(130) +@@ -700,7 +830,7 @@ var errorList = [...]struct { + {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, + {146, "EDC5146I", "Too many levels of symbolic links."}, + {147, "EDC5147I", "Illegal byte sequence."}, +- {148, "", ""}, ++ {148, "EDC5148I", "The named attribute or data not available."}, + {149, "EDC5149I", "Value Overflow Error."}, + {150, "EDC5150I", "UNIX System Services is not active."}, + {151, "EDC5151I", "Dynamic allocation error."}, +@@ -743,6 +873,7 @@ var errorList = [...]struct { + {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, + {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, + {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, ++ {265, "EDC5265I", "The named attribute not available."}, + {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, + {1001, "EDC8001I", "An error was found in the IUCV header."}, + {1002, "EDC8002I", "A socket descriptor is out of range."}, +diff --git a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +new file mode 100644 +index 0000000000..b77ff5db90 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +@@ -0,0 +1,364 @@ ++// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s ++// Code generated by the command above; see README.md. DO NOT EDIT. ++ ++//go:build zos && s390x ++#include "textflag.h" ++ ++// provide the address of function variable to be fixed up. ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Flistxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fremovexattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fgetxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fsetxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·accept4(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Removexattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Dup3(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Dirfd(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·EpollCreate(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·EpollCreate1(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·EpollCtl(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·EpollPwait(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·EpollWait(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Eventfd(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Faccessat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fchmodat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fchownat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fdatasync(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·fstatat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Lgetxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Lsetxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Fstatfs(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Futimes(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Futimesat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Getrandom(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·InotifyInit(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·InotifyInit1(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·InotifyAddWatch(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·InotifyRmWatch(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Listxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Llistxattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Lremovexattr(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Lutimes(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Statfs(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Syncfs(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Unshare(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Linkat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Mkdirat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Mknodat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·PivotRoot(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Prctl(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Prlimit(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Renameat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Renameat2(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Sethostname(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Setns(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Symlinkat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·Unlinkat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·openat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·openat2(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++TEXT Β·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8 ++ MOVD $Β·utimensat(SB), R8 ++ MOVD R8, ret+0(FP) ++ RET +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +index ccb02f240a..24b346e1a3 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +@@ -740,6 +740,54 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func renamexNp(from string, to string, flag uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_renamex_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_renameatx_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { +@@ -760,6 +808,59 @@ var libc_sysctl_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func pthread_chdir_np(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_pthread_chdir_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pthread_fchdir_np(fd int) (err error) { ++ _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_pthread_fchdir_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { ++ var _p0 unsafe.Pointer ++ if len(iov) > 0 { ++ _p0 = unsafe.Pointer(&iov[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_connectx_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +index 8b8bb28402..ebd213100b 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +@@ -223,11 +223,36 @@ TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_ioctl_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + ++TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_renamex_np(SB) ++GLOBL Β·libc_renamex_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) ++ ++TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_renameatx_np(SB) ++GLOBL Β·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) ++ + TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) + GLOBL Β·libc_sysctl_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + ++TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_pthread_chdir_np(SB) ++GLOBL Β·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) ++ ++TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_pthread_fchdir_np(SB) ++GLOBL Β·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) ++ ++TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_connectx(SB) ++GLOBL Β·libc_connectx_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) ++ + TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) + GLOBL Β·libc_sendfile_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +index 1b40b997b5..824b9c2d5e 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +@@ -740,6 +740,54 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func renamexNp(from string, to string, flag uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_renamex_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_renameatx_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { +@@ -760,6 +808,59 @@ var libc_sysctl_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func pthread_chdir_np(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_pthread_chdir_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pthread_fchdir_np(fd int) (err error) { ++ _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_pthread_fchdir_np_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { ++ var _p0 unsafe.Pointer ++ if len(iov) > 0 { ++ _p0 = unsafe.Pointer(&iov[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_connectx_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +index 08362c1ab7..4f178a2293 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +@@ -223,11 +223,36 @@ TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_ioctl_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + ++TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_renamex_np(SB) ++GLOBL Β·libc_renamex_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) ++ ++TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_renameatx_np(SB) ++GLOBL Β·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) ++ + TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) + GLOBL Β·libc_sysctl_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + ++TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_pthread_chdir_np(SB) ++GLOBL Β·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) ++ ++TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_pthread_fchdir_np(SB) ++GLOBL Β·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) ++ ++TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_connectx(SB) ++GLOBL Β·libc_connectx_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) ++ + TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) + GLOBL Β·libc_sendfile_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go +index 1488d27128..5cc1e8eb2f 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go +@@ -592,6 +592,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func ClockSettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_SETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { +@@ -906,6 +916,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { ++ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { +@@ -961,23 +981,6 @@ func Getpriority(which int, who int) (prio int, err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getrandom(buf []byte, flags int) (n int, err error) { +- var _p0 unsafe.Pointer +- if len(buf) > 0 { +- _p0 = unsafe.Pointer(&buf[0]) +- } else { +- _p0 = unsafe.Pointer(&_zero) +- } +- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) +- n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) +- } +- return +-} +- +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- + func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { +@@ -2219,3 +2222,19 @@ func Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) + } + return + } ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mseal(b []byte, flags uint) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +index 9dc42410b7..1851df14e8 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +index 41b5617316..0b43c69365 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $4 + DATA Β·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $4 ++DATA Β·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +index 0d3a0751cd..e1ec0dbe4e 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +index 4019a656f6..880c6d6e31 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +index c39f7776db..7c8452a63e 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +index ac4af24f90..b8ef95b0fa 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $4 + DATA Β·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $4 ++DATA Β·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +index 57571d072f..2ffdf861f7 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +index f77d532121..2af3b5c762 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +index e62963e67e..1da08d5267 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +index fae140b62c..b7a251353b 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +index 00831354c8..6e85b0aac9 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +index 9d1e0ff06d..f15dadf055 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +@@ -555,6 +555,12 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ CALL libc_mount(SB) ++ RET ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_nanosleep(SB) + RET +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +index 79029ed584..28b487df25 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +@@ -1493,6 +1493,30 @@ var libc_mknodat_trampoline_addr uintptr + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(fsType) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(dir) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++var libc_mount_trampoline_addr uintptr ++ ++//go:cgo_import_dynamic libc_mount mount "libc.so" ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +index da115f9a4b..1e7f321e43 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +@@ -463,6 +463,11 @@ TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + GLOBL Β·libc_mknodat_trampoline_addr(SB), RODATA, $8 + DATA Β·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + ++TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 ++ JMP libc_mount(SB) ++GLOBL Β·libc_mount_trampoline_addr(SB), RODATA, $8 ++DATA Β·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) ++ + TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) + GLOBL Β·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +index 829b87feb8..c6545413c4 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +@@ -141,6 +141,16 @@ import ( + //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" + //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" + //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" ++//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" ++//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" ++//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" ++//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" ++//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" + //go:cgo_import_dynamic libc_port_create port_create "libc.so" + //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" + //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" +@@ -280,6 +290,16 @@ import ( + //go:linkname procgetpeername libc_getpeername + //go:linkname procsetsockopt libc_setsockopt + //go:linkname procrecvfrom libc_recvfrom ++//go:linkname procgetpeerucred libc_getpeerucred ++//go:linkname procucred_get libc_ucred_get ++//go:linkname procucred_geteuid libc_ucred_geteuid ++//go:linkname procucred_getegid libc_ucred_getegid ++//go:linkname procucred_getruid libc_ucred_getruid ++//go:linkname procucred_getrgid libc_ucred_getrgid ++//go:linkname procucred_getsuid libc_ucred_getsuid ++//go:linkname procucred_getsgid libc_ucred_getsgid ++//go:linkname procucred_getpid libc_ucred_getpid ++//go:linkname procucred_free libc_ucred_free + //go:linkname procport_create libc_port_create + //go:linkname procport_associate libc_port_associate + //go:linkname procport_dissociate libc_port_dissociate +@@ -420,6 +440,16 @@ var ( + procgetpeername, + procsetsockopt, + procrecvfrom, ++ procgetpeerucred, ++ procucred_get, ++ procucred_geteuid, ++ procucred_getegid, ++ procucred_getruid, ++ procucred_getrgid, ++ procucred_getsuid, ++ procucred_getsgid, ++ procucred_getpid, ++ procucred_free, + procport_create, + procport_associate, + procport_dissociate, +@@ -2029,6 +2059,90 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func getpeerucred(fd uintptr, ucred *uintptr) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGet(pid int) (ucred uintptr, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) ++ ucred = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGeteuid(ucred uintptr) (uid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetegid(ucred uintptr) (gid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetruid(ucred uintptr) (uid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetrgid(ucred uintptr) (gid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetsuid(ucred uintptr) (uid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetsgid(ucred uintptr) (gid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredGetpid(ucred uintptr) (pid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ucredFree(ucred uintptr) { ++ sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func port_create() (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) + n = int(r0) +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +index 94f0112383..7ccf66b7ee 100644 +--- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go ++++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +@@ -1,4 +1,4 @@ +-// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go ++// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s + // Code generated by the command above; see README.md. DO NOT EDIT. + + //go:build zos && s390x +@@ -6,17 +6,100 @@ + package unix + + import ( ++ "runtime" ++ "syscall" + "unsafe" + ) + ++var _ syscall.Errno ++ + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func fcntl(fd int, cmd int, arg int) (val int, err error) { +- r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ runtime.ExitSyscall() + val = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Flistxattr(fd int, dest []byte) (sz int, err error) { ++ var _p0 unsafe.Pointer ++ if len(dest) > 0 { ++ _p0 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest))) ++ runtime.ExitSyscall() ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error)) ++ ++var Flistxattr = enter_Flistxattr ++ ++func enter_Flistxattr(fd int, dest []byte) (sz int, err error) { ++ funcref := get_FlistxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, "") == 0 { ++ *funcref = impl_Flistxattr ++ } else { ++ *funcref = error_Flistxattr ++ } ++ return (*funcref)(fd, dest) ++} ++ ++func error_Flistxattr(fd int, dest []byte) (sz int, err error) { ++ sz = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Fremovexattr(fd int, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FremovexattrAddr() *(func(fd int, attr string) (err error)) ++ ++var Fremovexattr = enter_Fremovexattr ++ ++func enter_Fremovexattr(fd int, attr string) (err error) { ++ funcref := get_FremovexattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, "") == 0 { ++ *funcref = impl_Fremovexattr ++ } else { ++ *funcref = error_Fremovexattr + } ++ return (*funcref)(fd, attr) ++} ++ ++func error_Fremovexattr(fd int, attr string) (err error) { ++ err = ENOSYS + return + } + +@@ -29,10 +112,12 @@ func read(fd int, p []byte) (n int, err error) { + } else { + _p0 = unsafe.Pointer(&_zero) + } +- r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -46,31 +131,159 @@ func write(fd int, p []byte) (n int, err error) { + } else { + _p0 = unsafe.Pointer(&_zero) + } +- r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ runtime.ExitSyscall() ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error)) ++ ++var Fgetxattr = enter_Fgetxattr ++ ++func enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { ++ funcref := get_FgetxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, "") == 0 { ++ *funcref = impl_Fgetxattr ++ } else { ++ *funcref = error_Fgetxattr ++ } ++ return (*funcref)(fd, attr, dest) ++} ++ ++func error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { ++ sz = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(data) > 0 { ++ _p1 = unsafe.Pointer(&data[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error)) ++ ++var Fsetxattr = enter_Fsetxattr ++ ++func enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { ++ funcref := get_FsetxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, "") == 0 { ++ *funcref = impl_Fsetxattr ++ } else { ++ *funcref = error_Fsetxattr + } ++ return (*funcref)(fd, attr, data, flag) ++} ++ ++func error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { +- r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)) ++ runtime.ExitSyscall() + fd = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)) ++ ++var accept4 = enter_accept4 ++ ++func enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ funcref := get_accept4Addr() ++ if funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, "") == 0 { ++ *funcref = impl_accept4 ++ } else { ++ *funcref = error_accept4 + } ++ return (*funcref)(s, rsa, addrlen, flags) ++} ++ ++func error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { +- _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -78,9 +291,11 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { +- _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -88,10 +303,10 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func getgroups(n int, list *_Gid_t) (nn int, err error) { +- r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) + nn = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -99,9 +314,9 @@ func getgroups(n int, list *_Gid_t) (nn int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func setgroups(n int, list *_Gid_t) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -109,9 +324,11 @@ func setgroups(n int, list *_Gid_t) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { +- _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -119,9 +336,11 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { +- _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -129,10 +348,10 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func socket(domain int, typ int, proto int) (fd int, err error) { +- r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -140,9 +359,9 @@ func socket(domain int, typ int, proto int) (fd int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { +- _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -150,9 +369,9 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -160,10 +379,52 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_RemovexattrAddr() *(func(path string, attr string) (err error)) ++ ++var Removexattr = enter_Removexattr ++ ++func enter_Removexattr(path string, attr string) (err error) { ++ funcref := get_RemovexattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, "") == 0 { ++ *funcref = impl_Removexattr ++ } else { ++ *funcref = error_Removexattr + } ++ return (*funcref)(path, attr) ++} ++ ++func error_Removexattr(path string, attr string) (err error) { ++ err = ENOSYS + return + } + +@@ -176,10 +437,12 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl + } else { + _p0 = unsafe.Pointer(&_zero) + } +- r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -193,9 +456,11 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( + } else { + _p0 = unsafe.Pointer(&_zero) + } +- _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -203,10 +468,12 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { +- r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -214,10 +481,12 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { +- r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -225,10 +494,12 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { +- r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ runtime.ExitSyscall() + ret = uintptr(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -236,9 +507,11 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func munmap(addr uintptr, length uintptr) (err error) { +- _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -246,9 +519,11 @@ func munmap(addr uintptr, length uintptr) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func ioctl(fd int, req int, arg uintptr) (err error) { +- _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -256,9 +531,62 @@ func ioctl(fd int, req int, arg uintptr) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { +- _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag)) ++ runtime.ExitSyscall() ++ ret = uintptr(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) ++ runtime.ExitSyscall() ++ result = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func shmdt(addr uintptr) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func shmget(key int, size int, flag int) (id int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag)) ++ runtime.ExitSyscall() ++ id = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -271,9 +599,11 @@ func Access(path string, mode uint32) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -286,9 +616,11 @@ func Chdir(path string) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -301,9 +633,11 @@ func Chown(path string, uid int, gid int) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -316,9 +650,11 @@ func Chmod(path string, mode uint32) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -331,10 +667,12 @@ func Creat(path string, mode uint32) (fd int, err error) { + if err != nil { + return + } +- r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() + fd = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -342,10 +680,12 @@ func Creat(path string, mode uint32) (fd int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Dup(oldfd int) (fd int, err error) { +- r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd)) ++ runtime.ExitSyscall() + fd = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -353,617 +693,2216 @@ func Dup(oldfd int) (fd int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Dup2(oldfd int, newfd int) (err error) { +- _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Errno2() (er2 int) { +- uer2, _, _ := syscall_syscall(SYS___ERRNO2, 0, 0, 0) +- er2 = int(uer2) ++func impl_Dup3(oldfd int, newfd int, flags int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error)) + +-func Err2ad() (eadd *int) { +- ueadd, _, _ := syscall_syscall(SYS___ERR2AD, 0, 0, 0) +- eadd = (*int)(unsafe.Pointer(ueadd)) +- return +-} ++var Dup3 = enter_Dup3 + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++func enter_Dup3(oldfd int, newfd int, flags int) (err error) { ++ funcref := get_Dup3Addr() ++ if funcptrtest(GetZosLibVec()+SYS_DUP3<<4, "") == 0 { ++ *funcref = impl_Dup3 ++ } else { ++ *funcref = error_Dup3 ++ } ++ return (*funcref)(oldfd, newfd, flags) ++} + +-func Exit(code int) { +- syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) ++func error_Dup3(oldfd int, newfd int, flags int) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Fchdir(fd int) (err error) { +- _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_Dirfd(dirp uintptr) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_DirfdAddr() *(func(dirp uintptr) (fd int, err error)) + +-func Fchmod(fd int, mode uint32) (err error) { +- _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Dirfd = enter_Dirfd ++ ++func enter_Dirfd(dirp uintptr) (fd int, err error) { ++ funcref := get_DirfdAddr() ++ if funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, "") == 0 { ++ *funcref = impl_Dirfd ++ } else { ++ *funcref = error_Dirfd + } ++ return (*funcref)(dirp) ++} ++ ++func error_Dirfd(dirp uintptr) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Fchown(fd int, uid int, gid int) (err error) { +- _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_EpollCreate(size int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_EpollCreateAddr() *(func(size int) (fd int, err error)) + +-func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { +- r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) +- retval = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++var EpollCreate = enter_EpollCreate ++ ++func enter_EpollCreate(size int) (fd int, err error) { ++ funcref := get_EpollCreateAddr() ++ if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, "") == 0 { ++ *funcref = impl_EpollCreate ++ } else { ++ *funcref = error_EpollCreate + } ++ return (*funcref)(size) ++} ++ ++func error_EpollCreate(size int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func fstat(fd int, stat *Stat_LE_t) (err error) { +- _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_EpollCreate1(flags int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_EpollCreate1Addr() *(func(flags int) (fd int, err error)) + +-func Fstatvfs(fd int, stat *Statvfs_t) (err error) { +- _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var EpollCreate1 = enter_EpollCreate1 ++ ++func enter_EpollCreate1(flags int) (fd int, err error) { ++ funcref := get_EpollCreate1Addr() ++ if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, "") == 0 { ++ *funcref = impl_EpollCreate1 ++ } else { ++ *funcref = error_EpollCreate1 + } ++ return (*funcref)(flags) ++} ++ ++func error_EpollCreate1(flags int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Fsync(fd int) (err error) { +- _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error)) + +-func Ftruncate(fd int, length int64) (err error) { +- _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var EpollCtl = enter_EpollCtl ++ ++func enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ funcref := get_EpollCtlAddr() ++ if funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, "") == 0 { ++ *funcref = impl_EpollCtl ++ } else { ++ *funcref = error_EpollCtl + } +- return ++ return (*funcref)(epfd, op, fd, event) + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- +-func Getpagesize() (pgsize int) { +- r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) +- pgsize = int(r0) ++func error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Mprotect(b []byte, prot int) (err error) { ++func impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + var _p0 unsafe.Pointer +- if len(b) > 0 { +- _p0 = unsafe.Pointer(&b[0]) ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } +- _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask))) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error)) + +-func Msync(b []byte, flags int) (err error) { +- var _p0 unsafe.Pointer +- if len(b) > 0 { +- _p0 = unsafe.Pointer(&b[0]) ++var EpollPwait = enter_EpollPwait ++ ++func enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { ++ funcref := get_EpollPwaitAddr() ++ if funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, "") == 0 { ++ *funcref = impl_EpollPwait + } else { +- _p0 = unsafe.Pointer(&_zero) +- } +- _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) +- if e1 != 0 { +- err = errnoErr(e1) ++ *funcref = error_EpollPwait + } ++ return (*funcref)(epfd, events, msec, sigmask) ++} ++ ++func error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { ++ n = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Poll(fds []PollFd, timeout int) (n int, err error) { ++func impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer +- if len(fds) > 0 { +- _p0 = unsafe.Pointer(&fds[0]) ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } +- r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec)) ++ runtime.ExitSyscall() + n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error)) + +-func Times(tms *Tms) (ticks uintptr, err error) { +- r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) +- ticks = uintptr(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++var EpollWait = enter_EpollWait ++ ++func enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ funcref := get_EpollWaitAddr() ++ if funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, "") == 0 { ++ *funcref = impl_EpollWait ++ } else { ++ *funcref = error_EpollWait + } ++ return (*funcref)(epfd, events, msec) ++} ++ ++func error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ n = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func W_Getmntent(buff *byte, size int) (lastsys int, err error) { +- r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) +- lastsys = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) +- } ++func Errno2() (er2 int) { ++ runtime.EnterSyscall() ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4) ++ runtime.ExitSyscall() ++ er2 = int(r0) + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { +- r0, _, e1 := syscall_syscall(SYS___W_GETMNTENT_A, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) +- lastsys = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_Eventfd(initval uint, flags int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + ++//go:nosplit ++func get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error)) ++ ++var Eventfd = enter_Eventfd ++ ++func enter_Eventfd(initval uint, flags int) (fd int, err error) { ++ funcref := get_EventfdAddr() ++ if funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, "") == 0 { ++ *funcref = impl_Eventfd ++ } else { ++ *funcref = error_Eventfd ++ } ++ return (*funcref)(initval, flags) ++} ++ ++func error_Eventfd(initval uint, flags int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS ++ return ++} ++ + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { ++func Exit(code int) { ++ runtime.EnterSyscall() ++ CallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code)) ++ runtime.ExitSyscall() ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } +- var _p1 *byte +- _p1, err = BytePtrFromString(filesystem) +- if err != nil { +- return +- } +- var _p2 *byte +- _p2, err = BytePtrFromString(fstype) +- if err != nil { +- return +- } +- var _p3 *byte +- _p3, err = BytePtrFromString(parm) +- if err != nil { +- return +- } +- _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) + +-func unmount(filesystem string, mtm int) (err error) { ++var Faccessat = enter_Faccessat ++ ++func enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ funcref := get_FaccessatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, "") == 0 { ++ *funcref = impl_Faccessat ++ } else { ++ *funcref = error_Faccessat ++ } ++ return (*funcref)(dirfd, path, mode, flags) ++} ++ ++func error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte +- _p0, err = BytePtrFromString(filesystem) ++ _p0, err = BytePtrFromString(path) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) ++ ++var Fchmodat = enter_Fchmodat ++ ++func enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ funcref := get_FchmodatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, "") == 0 { ++ *funcref = impl_Fchmodat ++ } else { ++ *funcref = error_Fchmodat ++ } ++ return (*funcref)(dirfd, path, mode, flags) ++} ++ ++func error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Chroot(path string) (err error) { ++func impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error)) ++ ++var Fchownat = enter_Fchownat ++ ++func enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { ++ funcref := get_FchownatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, "") == 0 { ++ *funcref = impl_Fchownat ++ } else { ++ *funcref = error_Fchownat + } ++ return (*funcref)(fd, path, uid, gid, flags) ++} ++ ++func error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Uname(buf *Utsname) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ runtime.ExitSyscall() ++ retval = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Gethostname(buf []byte) (err error) { ++func impl_Fdatasync(fd int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FdatasyncAddr() *(func(fd int) (err error)) ++ ++var Fdatasync = enter_Fdatasync ++ ++func enter_Fdatasync(fd int) (err error) { ++ funcref := get_FdatasyncAddr() ++ if funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, "") == 0 { ++ *funcref = impl_Fdatasync ++ } else { ++ *funcref = error_Fdatasync ++ } ++ return (*funcref)(fd) ++} ++ ++func error_Fdatasync(fd int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fstat(fd int, stat *Stat_LE_t) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error)) ++ ++var fstatat = enter_fstatat ++ ++func enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { ++ funcref := get_fstatatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, "") == 0 { ++ *funcref = impl_fstatat ++ } else { ++ *funcref = error_fstatat ++ } ++ return (*funcref)(dirfd, path, stat, flags) ++} ++ ++func error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) ++ runtime.ExitSyscall() ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error)) ++ ++var Lgetxattr = enter_Lgetxattr ++ ++func enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { ++ funcref := get_LgetxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, "") == 0 { ++ *funcref = impl_Lgetxattr ++ } else { ++ *funcref = error_Lgetxattr ++ } ++ return (*funcref)(link, attr, dest) ++} ++ ++func error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { ++ sz = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) ++ ++var Lsetxattr = enter_Lsetxattr ++ ++func enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { ++ funcref := get_LsetxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, "") == 0 { ++ *funcref = impl_Lsetxattr ++ } else { ++ *funcref = error_Lsetxattr ++ } ++ return (*funcref)(path, attr, data, flags) ++} ++ ++func error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Fstatfs(fd int, buf *Statfs_t) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error)) ++ ++var Fstatfs = enter_Fstatfs ++ ++func enter_Fstatfs(fd int, buf *Statfs_t) (err error) { ++ funcref := get_FstatfsAddr() ++ if funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, "") == 0 { ++ *funcref = impl_Fstatfs ++ } else { ++ *funcref = error_Fstatfs ++ } ++ return (*funcref)(fd, buf) ++} ++ ++func error_Fstatfs(fd int, buf *Statfs_t) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatvfs(fd int, stat *Statvfs_t) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Futimes(fd int, tv []Timeval) (err error) { + var _p0 unsafe.Pointer +- if len(buf) > 0 { +- _p0 = unsafe.Pointer(&buf[0]) ++ if len(tv) > 0 { ++ _p0 = unsafe.Pointer(&tv[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } +- _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_FutimesAddr() *(func(fd int, tv []Timeval) (err error)) + +-func Getegid() (egid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) +- egid = int(r0) ++var Futimes = enter_Futimes ++ ++func enter_Futimes(fd int, tv []Timeval) (err error) { ++ funcref := get_FutimesAddr() ++ if funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, "") == 0 { ++ *funcref = impl_Futimes ++ } else { ++ *funcref = error_Futimes ++ } ++ return (*funcref)(fd, tv) ++} ++ ++func error_Futimes(fd int, tv []Timeval) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Geteuid() (uid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) +- uid = int(r0) ++func impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(tv) > 0 { ++ _p1 = unsafe.Pointer(&tv[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error)) ++ ++var Futimesat = enter_Futimesat ++ ++func enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) { ++ funcref := get_FutimesatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, "") == 0 { ++ *funcref = impl_Futimesat ++ } else { ++ *funcref = error_Futimesat ++ } ++ return (*funcref)(dirfd, path, tv) ++} ++ ++func error_Futimesat(dirfd int, path string, tv []Timeval) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getgid() (gid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) +- gid = int(r0) ++func Ftruncate(fd int, length int64) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getpid() (pid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) +- pid = int(r0) ++func impl_Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error)) ++ ++var Getrandom = enter_Getrandom ++ ++func enter_Getrandom(buf []byte, flags int) (n int, err error) { ++ funcref := get_GetrandomAddr() ++ if funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, "") == 0 { ++ *funcref = impl_Getrandom ++ } else { ++ *funcref = error_Getrandom ++ } ++ return (*funcref)(buf, flags) ++} ++ ++func error_Getrandom(buf []byte, flags int) (n int, err error) { ++ n = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getpgid(pid int) (pgid int, err error) { +- r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) +- pgid = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_InotifyInit() (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_InotifyInitAddr() *(func() (fd int, err error)) ++ ++var InotifyInit = enter_InotifyInit ++ ++func enter_InotifyInit() (fd int, err error) { ++ funcref := get_InotifyInitAddr() ++ if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, "") == 0 { ++ *funcref = impl_InotifyInit ++ } else { ++ *funcref = error_InotifyInit + } ++ return (*funcref)() ++} ++ ++func error_InotifyInit() (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getppid() (pid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) +- pid = int(r0) ++func impl_InotifyInit1(flags int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_InotifyInit1Addr() *(func(flags int) (fd int, err error)) ++ ++var InotifyInit1 = enter_InotifyInit1 ++ ++func enter_InotifyInit1(flags int) (fd int, err error) { ++ funcref := get_InotifyInit1Addr() ++ if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, "") == 0 { ++ *funcref = impl_InotifyInit1 ++ } else { ++ *funcref = error_InotifyInit1 ++ } ++ return (*funcref)(flags) ++} ++ ++func error_InotifyInit1(flags int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ runtime.ExitSyscall() ++ watchdesc = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error)) ++ ++var InotifyAddWatch = enter_InotifyAddWatch ++ ++func enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ funcref := get_InotifyAddWatchAddr() ++ if funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, "") == 0 { ++ *funcref = impl_InotifyAddWatch ++ } else { ++ *funcref = error_InotifyAddWatch ++ } ++ return (*funcref)(fd, pathname, mask) ++} ++ ++func error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ watchdesc = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc)) ++ runtime.ExitSyscall() ++ success = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error)) ++ ++var InotifyRmWatch = enter_InotifyRmWatch ++ ++func enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ funcref := get_InotifyRmWatchAddr() ++ if funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, "") == 0 { ++ *funcref = impl_InotifyRmWatch ++ } else { ++ *funcref = error_InotifyRmWatch ++ } ++ return (*funcref)(fd, watchdesc) ++} ++ ++func error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ success = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ runtime.ExitSyscall() ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error)) ++ ++var Listxattr = enter_Listxattr ++ ++func enter_Listxattr(path string, dest []byte) (sz int, err error) { ++ funcref := get_ListxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, "") == 0 { ++ *funcref = impl_Listxattr ++ } else { ++ *funcref = error_Listxattr ++ } ++ return (*funcref)(path, dest) ++} ++ ++func error_Listxattr(path string, dest []byte) (sz int, err error) { ++ sz = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Llistxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ runtime.ExitSyscall() ++ sz = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error)) ++ ++var Llistxattr = enter_Llistxattr ++ ++func enter_Llistxattr(path string, dest []byte) (sz int, err error) { ++ funcref := get_LlistxattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, "") == 0 { ++ *funcref = impl_Llistxattr ++ } else { ++ *funcref = error_Llistxattr ++ } ++ return (*funcref)(path, dest) ++} ++ ++func error_Llistxattr(path string, dest []byte) (sz int, err error) { ++ sz = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Lremovexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LremovexattrAddr() *(func(path string, attr string) (err error)) ++ ++var Lremovexattr = enter_Lremovexattr ++ ++func enter_Lremovexattr(path string, attr string) (err error) { ++ funcref := get_LremovexattrAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, "") == 0 { ++ *funcref = impl_Lremovexattr ++ } else { ++ *funcref = error_Lremovexattr ++ } ++ return (*funcref)(path, attr) ++} ++ ++func error_Lremovexattr(path string, attr string) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Lutimes(path string, tv []Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(tv) > 0 { ++ _p1 = unsafe.Pointer(&tv[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LutimesAddr() *(func(path string, tv []Timeval) (err error)) ++ ++var Lutimes = enter_Lutimes ++ ++func enter_Lutimes(path string, tv []Timeval) (err error) { ++ funcref := get_LutimesAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, "") == 0 { ++ *funcref = impl_Lutimes ++ } else { ++ *funcref = error_Lutimes ++ } ++ return (*funcref)(path, tv) ++} ++ ++func error_Lutimes(path string, tv []Timeval) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Msync(b []byte, flags int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(fds) > 0 { ++ _p0 = unsafe.Pointer(&fds[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error)) ++ ++var Statfs = enter_Statfs ++ ++func enter_Statfs(path string, buf *Statfs_t) (err error) { ++ funcref := get_StatfsAddr() ++ if funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, "") == 0 { ++ *funcref = impl_Statfs ++ } else { ++ *funcref = error_Statfs ++ } ++ return (*funcref)(path, buf) ++} ++ ++func error_Statfs(path string, buf *Statfs_t) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Syncfs(fd int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_SyncfsAddr() *(func(fd int) (err error)) ++ ++var Syncfs = enter_Syncfs ++ ++func enter_Syncfs(fd int) (err error) { ++ funcref := get_SyncfsAddr() ++ if funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, "") == 0 { ++ *funcref = impl_Syncfs ++ } else { ++ *funcref = error_Syncfs ++ } ++ return (*funcref)(fd) ++} ++ ++func error_Syncfs(fd int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms))) ++ runtime.ExitSyscall() ++ ticks = uintptr(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func W_Getmntent(buff *byte, size int) (lastsys int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) ++ runtime.ExitSyscall() ++ lastsys = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) ++ runtime.ExitSyscall() ++ lastsys = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(filesystem) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ var _p3 *byte ++ _p3, err = BytePtrFromString(parm) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func unmount_LE(filesystem string, mtm int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(filesystem) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) ++ runtime.ExitSyscall() ++ ret = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Unshare(flags int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_UnshareAddr() *(func(flags int) (err error)) ++ ++var Unshare = enter_Unshare ++ ++func enter_Unshare(flags int) (err error) { ++ funcref := get_UnshareAddr() ++ if funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, "") == 0 { ++ *funcref = impl_Unshare ++ } else { ++ *funcref = error_Unshare ++ } ++ return (*funcref)(flags) ++} ++ ++func error_Unshare(flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gethostname(buf []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid)) ++ pgid = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (pid int) { ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who)) ++ runtime.ExitSyscall() ++ prio = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getrusage(who int, rusage *rusage_zos) (err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ runtime.EnterSyscall() ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4) ++ runtime.ExitSyscall() ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ runtime.EnterSyscall() ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4) ++ runtime.ExitSyscall() ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid)) ++ sid = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig Signal) (err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldPath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newPath) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error)) ++ ++var Linkat = enter_Linkat ++ ++func enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { ++ funcref := get_LinkatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, "") == 0 { ++ *funcref = impl_Linkat ++ } else { ++ *funcref = error_Linkat ++ } ++ return (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags) ++} ++ ++func error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lstat(path string, stat *Stat_LE_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error)) ++ ++var Mkdirat = enter_Mkdirat ++ ++func enter_Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ funcref := get_MkdiratAddr() ++ if funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, "") == 0 { ++ *funcref = impl_Mkdirat ++ } else { ++ *funcref = error_Mkdirat ++ } ++ return (*funcref)(dirfd, path, mode) ++} ++ ++func error_Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error)) ++ ++var Mknodat = enter_Mknodat ++ ++func enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ funcref := get_MknodatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, "") == 0 { ++ *funcref = impl_Mknodat ++ } else { ++ *funcref = error_Mknodat ++ } ++ return (*funcref)(dirfd, path, mode, dev) ++} ++ ++func error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_PivotRoot(newroot string, oldroot string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(oldroot) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_PivotRootAddr() *(func(newroot string, oldroot string) (err error)) ++ ++var PivotRoot = enter_PivotRoot ++ ++func enter_PivotRoot(newroot string, oldroot string) (err error) { ++ funcref := get_PivotRootAddr() ++ if funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, "") == 0 { ++ *funcref = impl_PivotRoot ++ } else { ++ *funcref = error_PivotRoot ++ } ++ return (*funcref)(newroot, oldroot) ++} ++ ++func error_PivotRoot(newroot string, oldroot string) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getpriority(which int, who int) (prio int, err error) { +- r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) +- prio = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) ++ runtime.ExitSyscall() ++ n = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getrlimit(resource int, rlim *Rlimit) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)) + +-func getrusage(who int, rusage *rusage_zos) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Prctl = enter_Prctl ++ ++func enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ funcref := get_PrctlAddr() ++ if funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, "") == 0 { ++ *funcref = impl_Prctl ++ } else { ++ *funcref = error_Prctl + } +- return ++ return (*funcref)(option, arg2, arg3, arg4, arg5) + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- +-func Getsid(pid int) (sid int, err error) { +- r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) +- sid = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) +- } ++func error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Getuid() (uid int) { +- r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) +- uid = int(r0) ++func impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error)) + +-func Kill(pid int, sig Signal) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Prlimit = enter_Prlimit ++ ++func enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ funcref := get_PrlimitAddr() ++ if funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, "") == 0 { ++ *funcref = impl_Prlimit ++ } else { ++ *funcref = error_Prlimit + } ++ return (*funcref)(pid, resource, newlimit, old) ++} ++ ++func error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Lchown(path string, uid int, gid int) (err error) { ++func Rename(from string, to string) (err error) { + var _p0 *byte +- _p0, err = BytePtrFromString(path) ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Link(path string, link string) (err error) { ++func impl_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte +- _p0, err = BytePtrFromString(path) ++ _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte +- _p1, err = BytePtrFromString(link) ++ _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)) + +-func Listen(s int, n int) (err error) { +- _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Renameat = enter_Renameat ++ ++func enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ funcref := get_RenameatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, "") == 0 { ++ *funcref = impl_Renameat ++ } else { ++ *funcref = error_Renameat + } ++ return (*funcref)(olddirfd, oldpath, newdirfd, newpath) ++} ++ ++func error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func lstat(path string, stat *Stat_LE_t) (err error) { ++func impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + var _p0 *byte +- _p0, err = BytePtrFromString(path) ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)) + +-func Mkdir(path string, mode uint32) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Renameat2 = enter_Renameat2 ++ ++func enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { ++ funcref := get_Renameat2Addr() ++ if funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, "") == 0 { ++ *funcref = impl_Renameat2 ++ } else { ++ *funcref = error_Renameat2 + } ++ return (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags) ++} ++ ++func error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Mkfifo(path string, mode uint32) (err error) { ++func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Mknod(path string, mode uint32, dev int) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) +- if e1 != 0 { +- err = errnoErr(e1) ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence)) ++ runtime.ExitSyscall() ++ off = int64(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Pread(fd int, p []byte, offset int64) (n int, err error) { +- var _p0 unsafe.Pointer +- if len(p) > 0 { +- _p0 = unsafe.Pointer(&p[0]) +- } else { +- _p0 = unsafe.Pointer(&_zero) ++func Setegid(egid int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } +- r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) +- n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++func impl_Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } +- r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) +- n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_SethostnameAddr() *(func(p []byte) (err error)) + +-func Readlink(path string, buf []byte) (n int, err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- var _p1 unsafe.Pointer +- if len(buf) > 0 { +- _p1 = unsafe.Pointer(&buf[0]) ++var Sethostname = enter_Sethostname ++ ++func enter_Sethostname(p []byte) (err error) { ++ funcref := get_SethostnameAddr() ++ if funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, "") == 0 { ++ *funcref = impl_Sethostname + } else { +- _p1 = unsafe.Pointer(&_zero) ++ *funcref = error_Sethostname + } +- r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) +- n = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) +- } +- return ++ return (*funcref)(p) + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- +-func Rename(from string, to string) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(from) +- if err != nil { +- return +- } +- var _p1 *byte +- _p1, err = BytePtrFromString(to) +- if err != nil { +- return +- } +- _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) +- if e1 != 0 { +- err = errnoErr(e1) +- } ++func error_Sethostname(p []byte) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Rmdir(path string) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_Setns(fd int, nstype int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++//go:nosplit ++func get_SetnsAddr() *(func(fd int, nstype int) (err error)) + +-func Seek(fd int, offset int64, whence int) (off int64, err error) { +- r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) +- off = int64(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++var Setns = enter_Setns ++ ++func enter_Setns(fd int, nstype int) (err error) { ++ funcref := get_SetnsAddr() ++ if funcptrtest(GetZosLibVec()+SYS_SETNS<<4, "") == 0 { ++ *funcref = impl_Setns ++ } else { ++ *funcref = error_Setns + } ++ return (*funcref)(fd, nstype) ++} ++ ++func error_Setns(fd int, nstype int) (err error) { ++ err = ENOSYS + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setpriority(which int, who int, prio int) (err error) { +- _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -971,9 +2910,9 @@ func Setpriority(which int, who int, prio int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setpgid(pid int, pgid int) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -981,9 +2920,9 @@ func Setpgid(pid int, pgid int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setrlimit(resource int, lim *Rlimit) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -991,9 +2930,9 @@ func Setrlimit(resource int, lim *Rlimit) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setregid(rgid int, egid int) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1001,9 +2940,9 @@ func Setregid(rgid int, egid int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setreuid(ruid int, euid int) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid)) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1011,10 +2950,10 @@ func Setreuid(ruid int, euid int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setsid() (pid int, err error) { +- r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4) + pid = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1022,9 +2961,11 @@ func Setsid() (pid int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setuid(uid int) (err error) { +- _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1032,9 +2973,11 @@ func Setuid(uid int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Setgid(uid int) (err error) { +- _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1042,9 +2985,11 @@ func Setgid(uid int) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Shutdown(fd int, how int) (err error) { +- _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1057,9 +3002,11 @@ func stat(path string, statLE *Stat_LE_t) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1077,17 +3024,63 @@ func Symlink(path string, link string) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldPath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newPath) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + ++//go:nosplit ++func get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error)) ++ ++var Symlinkat = enter_Symlinkat ++ ++func enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { ++ funcref := get_SymlinkatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, "") == 0 { ++ *funcref = impl_Symlinkat ++ } else { ++ *funcref = error_Symlinkat ++ } ++ return (*funcref)(oldPath, dirfd, newPath) ++} ++ ++func error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { ++ err = ENOSYS ++ return ++} ++ + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Sync() { +- syscall_syscall(SYS_SYNC, 0, 0, 0) ++ runtime.EnterSyscall() ++ CallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4) ++ runtime.ExitSyscall() + return + } + +@@ -1099,9 +3092,11 @@ func Truncate(path string, length int64) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1109,9 +3104,11 @@ func Truncate(path string, length int64) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Tcgetattr(fildes int, termptr *Termios) (err error) { +- _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1119,9 +3116,11 @@ func Tcgetattr(fildes int, termptr *Termios) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { +- _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1129,7 +3128,9 @@ func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func Umask(mask int) (oldmask int) { +- r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) ++ runtime.EnterSyscall() ++ r0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask)) ++ runtime.ExitSyscall() + oldmask = int(r0) + return + } +@@ -1142,10 +3143,49 @@ func Unlink(path string) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error)) ++ ++var Unlinkat = enter_Unlinkat ++ ++func enter_Unlinkat(dirfd int, path string, flags int) (err error) { ++ funcref := get_UnlinkatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, "") == 0 { ++ *funcref = impl_Unlinkat ++ } else { ++ *funcref = error_Unlinkat + } ++ return (*funcref)(dirfd, path, flags) ++} ++ ++func error_Unlinkat(dirfd int, path string, flags int) (err error) { ++ err = ENOSYS + return + } + +@@ -1157,9 +3197,11 @@ func Utime(path string, utim *Utimbuf) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1172,11 +3214,91 @@ func open(path string, mode int, perm uint32) (fd int, err error) { + if err != nil { + return + } +- r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error)) ++ ++var openat = enter_openat ++ ++func enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ funcref := get_openatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, "") == 0 { ++ *funcref = impl_openat ++ } else { ++ *funcref = error_openat ++ } ++ return (*funcref)(dirfd, path, flags, mode) ++} ++ ++func error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size)) ++ runtime.ExitSyscall() + fd = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)) ++ ++var openat2 = enter_openat2 ++ ++func enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { ++ funcref := get_openat2Addr() ++ if funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, "") == 0 { ++ *funcref = impl_openat2 ++ } else { ++ *funcref = error_openat2 + } ++ return (*funcref)(dirfd, path, open_how, size) ++} ++ ++func error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { ++ fd = -1 ++ err = ENOSYS + return + } + +@@ -1188,9 +3310,23 @@ func remove(path string) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func waitid(idType int, id int, info *Siginfo, options int) (err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1198,10 +3334,12 @@ func remove(path string) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { +- r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) ++ runtime.ExitSyscall() + wpid = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1209,9 +3347,9 @@ func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func gettimeofday(tv *timeval_zos) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1219,9 +3357,9 @@ func gettimeofday(tv *timeval_zos) (err error) { + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + + func pipe(p *[2]_C_int) (err error) { +- _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p))) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +@@ -1234,20 +3372,87 @@ func utimes(path string, timeval *[2]Timeval) (err error) { + if err != nil { + return + } +- _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) +- if e1 != 0 { +- err = errnoErr(e1) ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval))) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { +- r0, _, e1 := syscall_syscall6(SYS_SELECT, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) +- ret = int(r0) +- if e1 != 0 { +- err = errnoErr(e1) ++func impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags)) ++ runtime.ExitSyscall() ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++//go:nosplit ++func get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error)) ++ ++var utimensat = enter_utimensat ++ ++func enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { ++ funcref := get_utimensatAddr() ++ if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { ++ *funcref = impl_utimensat ++ } else { ++ *funcref = error_utimensat ++ } ++ return (*funcref)(dirfd, path, ts, flags) ++} ++ ++func error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { ++ err = ENOSYS ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Posix_openpt(oflag int) (fd int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag)) ++ runtime.ExitSyscall() ++ fd = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Grantpt(fildes int) (rc int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes)) ++ runtime.ExitSyscall() ++ rc = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlockpt(fildes int) (rc int, err error) { ++ runtime.EnterSyscall() ++ r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes)) ++ runtime.ExitSyscall() ++ rc = int(r0) ++ if int64(r0) == -1 { ++ err = errnoErr2(e1, e2) + } + return + } +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +index 0cc3ce496e..c79aaff306 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +@@ -452,4 +452,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +index 856d92d69e..5eb450695e 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +@@ -341,6 +341,7 @@ const ( + SYS_STATX = 332 + SYS_IO_PGETEVENTS = 333 + SYS_RSEQ = 334 ++ SYS_URETPROBE = 335 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 +@@ -374,4 +375,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +index 8d467094cf..05e5029744 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +@@ -416,4 +416,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +index edc173244d..38c53ec51b 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +@@ -85,7 +85,7 @@ const ( + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 +- SYS_FSTATAT = 79 ++ SYS_NEWFSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 +@@ -319,4 +319,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +index 445eba2061..31d2e71a18 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +@@ -84,6 +84,8 @@ const ( + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 ++ SYS_NEWFSTATAT = 79 ++ SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 +@@ -313,4 +315,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +index adba01bca7..f4184a336b 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +@@ -436,4 +436,14 @@ const ( + SYS_FUTEX_WAKE = 4454 + SYS_FUTEX_WAIT = 4455 + SYS_FUTEX_REQUEUE = 4456 ++ SYS_STATMOUNT = 4457 ++ SYS_LISTMOUNT = 4458 ++ SYS_LSM_GET_SELF_ATTR = 4459 ++ SYS_LSM_SET_SELF_ATTR = 4460 ++ SYS_LSM_LIST_MODULES = 4461 ++ SYS_MSEAL = 4462 ++ SYS_SETXATTRAT = 4463 ++ SYS_GETXATTRAT = 4464 ++ SYS_LISTXATTRAT = 4465 ++ SYS_REMOVEXATTRAT = 4466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +index 014c4e9c7a..05b9962278 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +@@ -366,4 +366,14 @@ const ( + SYS_FUTEX_WAKE = 5454 + SYS_FUTEX_WAIT = 5455 + SYS_FUTEX_REQUEUE = 5456 ++ SYS_STATMOUNT = 5457 ++ SYS_LISTMOUNT = 5458 ++ SYS_LSM_GET_SELF_ATTR = 5459 ++ SYS_LSM_SET_SELF_ATTR = 5460 ++ SYS_LSM_LIST_MODULES = 5461 ++ SYS_MSEAL = 5462 ++ SYS_SETXATTRAT = 5463 ++ SYS_GETXATTRAT = 5464 ++ SYS_LISTXATTRAT = 5465 ++ SYS_REMOVEXATTRAT = 5466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +index ccc97d74d0..43a256e9e6 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +@@ -366,4 +366,14 @@ const ( + SYS_FUTEX_WAKE = 5454 + SYS_FUTEX_WAIT = 5455 + SYS_FUTEX_REQUEUE = 5456 ++ SYS_STATMOUNT = 5457 ++ SYS_LISTMOUNT = 5458 ++ SYS_LSM_GET_SELF_ATTR = 5459 ++ SYS_LSM_SET_SELF_ATTR = 5460 ++ SYS_LSM_LIST_MODULES = 5461 ++ SYS_MSEAL = 5462 ++ SYS_SETXATTRAT = 5463 ++ SYS_GETXATTRAT = 5464 ++ SYS_LISTXATTRAT = 5465 ++ SYS_REMOVEXATTRAT = 5466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +index ec2b64a95d..eea5ddfc22 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +@@ -436,4 +436,14 @@ const ( + SYS_FUTEX_WAKE = 4454 + SYS_FUTEX_WAIT = 4455 + SYS_FUTEX_REQUEUE = 4456 ++ SYS_STATMOUNT = 4457 ++ SYS_LISTMOUNT = 4458 ++ SYS_LSM_GET_SELF_ATTR = 4459 ++ SYS_LSM_SET_SELF_ATTR = 4460 ++ SYS_LSM_LIST_MODULES = 4461 ++ SYS_MSEAL = 4462 ++ SYS_SETXATTRAT = 4463 ++ SYS_GETXATTRAT = 4464 ++ SYS_LISTXATTRAT = 4465 ++ SYS_REMOVEXATTRAT = 4466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +index 21a839e338..0d777bfbb1 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +@@ -443,4 +443,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +index c11121ec3b..b446365025 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +@@ -415,4 +415,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +index 909b631fcb..0c7d21c188 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +@@ -415,4 +415,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +index e49bed16ea..8405391698 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +@@ -84,7 +84,7 @@ const ( + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 +- SYS_FSTATAT = 79 ++ SYS_NEWFSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 +@@ -320,4 +320,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +index 66017d2d32..fcf1b790d6 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +@@ -381,4 +381,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +index 47bab18dce..52d15b5f9d 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +@@ -394,4 +394,14 @@ const ( + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 ++ SYS_STATMOUNT = 457 ++ SYS_LISTMOUNT = 458 ++ SYS_LSM_GET_SELF_ATTR = 459 ++ SYS_LSM_SET_SELF_ATTR = 460 ++ SYS_LSM_LIST_MODULES = 461 ++ SYS_MSEAL = 462 ++ SYS_SETXATTRAT = 463 ++ SYS_GETXATTRAT = 464 ++ SYS_LISTXATTRAT = 465 ++ SYS_REMOVEXATTRAT = 466 + ) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +index b2e3085819..5e8c263ca9 100644 +--- a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go ++++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +@@ -1,2669 +1,2852 @@ +-// Copyright 2020 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. ++// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s ++// Code generated by the command above; see README.md. DO NOT EDIT. + + //go:build zos && s390x + + package unix + +-// TODO: auto-generate. +- + const ( +- SYS_ACOSD128 = 0xB80 +- SYS_ACOSD32 = 0xB7E +- SYS_ACOSD64 = 0xB7F +- SYS_ACOSHD128 = 0xB83 +- SYS_ACOSHD32 = 0xB81 +- SYS_ACOSHD64 = 0xB82 +- SYS_AIO_FSYNC = 0xC69 +- SYS_ASCTIME = 0x0AE +- SYS_ASCTIME64 = 0xCD7 +- SYS_ASCTIME64_R = 0xCD8 +- SYS_ASIND128 = 0xB86 +- SYS_ASIND32 = 0xB84 +- SYS_ASIND64 = 0xB85 +- SYS_ASINHD128 = 0xB89 +- SYS_ASINHD32 = 0xB87 +- SYS_ASINHD64 = 0xB88 +- SYS_ATAN2D128 = 0xB8F +- SYS_ATAN2D32 = 0xB8D +- SYS_ATAN2D64 = 0xB8E +- SYS_ATAND128 = 0xB8C +- SYS_ATAND32 = 0xB8A +- SYS_ATAND64 = 0xB8B +- SYS_ATANHD128 = 0xB92 +- SYS_ATANHD32 = 0xB90 +- SYS_ATANHD64 = 0xB91 +- SYS_BIND2ADDRSEL = 0xD59 +- SYS_C16RTOMB = 0xD40 +- SYS_C32RTOMB = 0xD41 +- SYS_CBRTD128 = 0xB95 +- SYS_CBRTD32 = 0xB93 +- SYS_CBRTD64 = 0xB94 +- SYS_CEILD128 = 0xB98 +- SYS_CEILD32 = 0xB96 +- SYS_CEILD64 = 0xB97 +- SYS_CLEARENV = 0x0C9 +- SYS_CLEARERR_UNLOCKED = 0xCA1 +- SYS_CLOCK = 0x0AA +- SYS_CLOGL = 0xA00 +- SYS_CLRMEMF = 0x0BD +- SYS_CONJ = 0xA03 +- SYS_CONJF = 0xA06 +- SYS_CONJL = 0xA09 +- SYS_COPYSIGND128 = 0xB9E +- SYS_COPYSIGND32 = 0xB9C +- SYS_COPYSIGND64 = 0xB9D +- SYS_COSD128 = 0xBA1 +- SYS_COSD32 = 0xB9F +- SYS_COSD64 = 0xBA0 +- SYS_COSHD128 = 0xBA4 +- SYS_COSHD32 = 0xBA2 +- SYS_COSHD64 = 0xBA3 +- SYS_CPOW = 0xA0C +- SYS_CPOWF = 0xA0F +- SYS_CPOWL = 0xA12 +- SYS_CPROJ = 0xA15 +- SYS_CPROJF = 0xA18 +- SYS_CPROJL = 0xA1B +- SYS_CREAL = 0xA1E +- SYS_CREALF = 0xA21 +- SYS_CREALL = 0xA24 +- SYS_CSIN = 0xA27 +- SYS_CSINF = 0xA2A +- SYS_CSINH = 0xA30 +- SYS_CSINHF = 0xA33 +- SYS_CSINHL = 0xA36 +- SYS_CSINL = 0xA2D +- SYS_CSNAP = 0x0C5 +- SYS_CSQRT = 0xA39 +- SYS_CSQRTF = 0xA3C +- SYS_CSQRTL = 0xA3F +- SYS_CTAN = 0xA42 +- SYS_CTANF = 0xA45 +- SYS_CTANH = 0xA4B +- SYS_CTANHF = 0xA4E +- SYS_CTANHL = 0xA51 +- SYS_CTANL = 0xA48 +- SYS_CTIME = 0x0AB +- SYS_CTIME64 = 0xCD9 +- SYS_CTIME64_R = 0xCDA +- SYS_CTRACE = 0x0C6 +- SYS_DIFFTIME = 0x0A7 +- SYS_DIFFTIME64 = 0xCDB +- SYS_DLADDR = 0xC82 +- SYS_DYNALLOC = 0x0C3 +- SYS_DYNFREE = 0x0C2 +- SYS_ERFCD128 = 0xBAA +- SYS_ERFCD32 = 0xBA8 +- SYS_ERFCD64 = 0xBA9 +- SYS_ERFD128 = 0xBA7 +- SYS_ERFD32 = 0xBA5 +- SYS_ERFD64 = 0xBA6 +- SYS_EXP2D128 = 0xBB0 +- SYS_EXP2D32 = 0xBAE +- SYS_EXP2D64 = 0xBAF +- SYS_EXPD128 = 0xBAD +- SYS_EXPD32 = 0xBAB +- SYS_EXPD64 = 0xBAC +- SYS_EXPM1D128 = 0xBB3 +- SYS_EXPM1D32 = 0xBB1 +- SYS_EXPM1D64 = 0xBB2 +- SYS_FABSD128 = 0xBB6 +- SYS_FABSD32 = 0xBB4 +- SYS_FABSD64 = 0xBB5 +- SYS_FDELREC_UNLOCKED = 0xCA2 +- SYS_FDIMD128 = 0xBB9 +- SYS_FDIMD32 = 0xBB7 +- SYS_FDIMD64 = 0xBB8 +- SYS_FDOPEN_UNLOCKED = 0xCFC +- SYS_FECLEAREXCEPT = 0xAEA +- SYS_FEGETENV = 0xAEB +- SYS_FEGETEXCEPTFLAG = 0xAEC +- SYS_FEGETROUND = 0xAED +- SYS_FEHOLDEXCEPT = 0xAEE +- SYS_FEOF_UNLOCKED = 0xCA3 +- SYS_FERAISEEXCEPT = 0xAEF +- SYS_FERROR_UNLOCKED = 0xCA4 +- SYS_FESETENV = 0xAF0 +- SYS_FESETEXCEPTFLAG = 0xAF1 +- SYS_FESETROUND = 0xAF2 +- SYS_FETCHEP = 0x0BF +- SYS_FETESTEXCEPT = 0xAF3 +- SYS_FEUPDATEENV = 0xAF4 +- SYS_FE_DEC_GETROUND = 0xBBA +- SYS_FE_DEC_SETROUND = 0xBBB +- SYS_FFLUSH_UNLOCKED = 0xCA5 +- SYS_FGETC_UNLOCKED = 0xC80 +- SYS_FGETPOS64 = 0xCEE +- SYS_FGETPOS64_UNLOCKED = 0xCF4 +- SYS_FGETPOS_UNLOCKED = 0xCA6 +- SYS_FGETS_UNLOCKED = 0xC7C +- SYS_FGETWC_UNLOCKED = 0xCA7 +- SYS_FGETWS_UNLOCKED = 0xCA8 +- SYS_FILENO_UNLOCKED = 0xCA9 +- SYS_FLDATA = 0x0C1 +- SYS_FLDATA_UNLOCKED = 0xCAA +- SYS_FLOCATE_UNLOCKED = 0xCAB +- SYS_FLOORD128 = 0xBBE +- SYS_FLOORD32 = 0xBBC +- SYS_FLOORD64 = 0xBBD +- SYS_FMA = 0xA63 +- SYS_FMAD128 = 0xBC1 +- SYS_FMAD32 = 0xBBF +- SYS_FMAD64 = 0xBC0 +- SYS_FMAF = 0xA66 +- SYS_FMAL = 0xA69 +- SYS_FMAX = 0xA6C +- SYS_FMAXD128 = 0xBC4 +- SYS_FMAXD32 = 0xBC2 +- SYS_FMAXD64 = 0xBC3 +- SYS_FMAXF = 0xA6F +- SYS_FMAXL = 0xA72 +- SYS_FMIN = 0xA75 +- SYS_FMIND128 = 0xBC7 +- SYS_FMIND32 = 0xBC5 +- SYS_FMIND64 = 0xBC6 +- SYS_FMINF = 0xA78 +- SYS_FMINL = 0xA7B +- SYS_FMODD128 = 0xBCA +- SYS_FMODD32 = 0xBC8 +- SYS_FMODD64 = 0xBC9 +- SYS_FOPEN64 = 0xD49 +- SYS_FOPEN64_UNLOCKED = 0xD4A +- SYS_FOPEN_UNLOCKED = 0xCFA +- SYS_FPRINTF_UNLOCKED = 0xCAC +- SYS_FPUTC_UNLOCKED = 0xC81 +- SYS_FPUTS_UNLOCKED = 0xC7E +- SYS_FPUTWC_UNLOCKED = 0xCAD +- SYS_FPUTWS_UNLOCKED = 0xCAE +- SYS_FREAD_NOUPDATE = 0xCEC +- SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED +- SYS_FREAD_UNLOCKED = 0xC7B +- SYS_FREEIFADDRS = 0xCE6 +- SYS_FREOPEN64 = 0xD4B +- SYS_FREOPEN64_UNLOCKED = 0xD4C +- SYS_FREOPEN_UNLOCKED = 0xCFB +- SYS_FREXPD128 = 0xBCE +- SYS_FREXPD32 = 0xBCC +- SYS_FREXPD64 = 0xBCD +- SYS_FSCANF_UNLOCKED = 0xCAF +- SYS_FSEEK64 = 0xCEF +- SYS_FSEEK64_UNLOCKED = 0xCF5 +- SYS_FSEEKO64 = 0xCF0 +- SYS_FSEEKO64_UNLOCKED = 0xCF6 +- SYS_FSEEKO_UNLOCKED = 0xCB1 +- SYS_FSEEK_UNLOCKED = 0xCB0 +- SYS_FSETPOS64 = 0xCF1 +- SYS_FSETPOS64_UNLOCKED = 0xCF7 +- SYS_FSETPOS_UNLOCKED = 0xCB3 +- SYS_FTELL64 = 0xCF2 +- SYS_FTELL64_UNLOCKED = 0xCF8 +- SYS_FTELLO64 = 0xCF3 +- SYS_FTELLO64_UNLOCKED = 0xCF9 +- SYS_FTELLO_UNLOCKED = 0xCB5 +- SYS_FTELL_UNLOCKED = 0xCB4 +- SYS_FUPDATE = 0x0B5 +- SYS_FUPDATE_UNLOCKED = 0xCB7 +- SYS_FWIDE_UNLOCKED = 0xCB8 +- SYS_FWPRINTF_UNLOCKED = 0xCB9 +- SYS_FWRITE_UNLOCKED = 0xC7A +- SYS_FWSCANF_UNLOCKED = 0xCBA +- SYS_GETDATE64 = 0xD4F +- SYS_GETIFADDRS = 0xCE7 +- SYS_GETIPV4SOURCEFILTER = 0xC77 +- SYS_GETSOURCEFILTER = 0xC79 +- SYS_GETSYNTX = 0x0FD +- SYS_GETS_UNLOCKED = 0xC7D +- SYS_GETTIMEOFDAY64 = 0xD50 +- SYS_GETWCHAR_UNLOCKED = 0xCBC +- SYS_GETWC_UNLOCKED = 0xCBB +- SYS_GMTIME = 0x0B0 +- SYS_GMTIME64 = 0xCDC +- SYS_GMTIME64_R = 0xCDD +- SYS_HYPOTD128 = 0xBD1 +- SYS_HYPOTD32 = 0xBCF +- SYS_HYPOTD64 = 0xBD0 +- SYS_ILOGBD128 = 0xBD4 +- SYS_ILOGBD32 = 0xBD2 +- SYS_ILOGBD64 = 0xBD3 +- SYS_ILOGBF = 0xA7E +- SYS_ILOGBL = 0xA81 +- SYS_INET6_IS_SRCADDR = 0xD5A +- SYS_ISBLANK = 0x0FE +- SYS_ISWALNUM = 0x0FF +- SYS_LDEXPD128 = 0xBD7 +- SYS_LDEXPD32 = 0xBD5 +- SYS_LDEXPD64 = 0xBD6 +- SYS_LGAMMAD128 = 0xBDA +- SYS_LGAMMAD32 = 0xBD8 +- SYS_LGAMMAD64 = 0xBD9 +- SYS_LIO_LISTIO = 0xC6A +- SYS_LLRINT = 0xA84 +- SYS_LLRINTD128 = 0xBDD +- SYS_LLRINTD32 = 0xBDB +- SYS_LLRINTD64 = 0xBDC +- SYS_LLRINTF = 0xA87 +- SYS_LLRINTL = 0xA8A +- SYS_LLROUND = 0xA8D +- SYS_LLROUNDD128 = 0xBE0 +- SYS_LLROUNDD32 = 0xBDE +- SYS_LLROUNDD64 = 0xBDF +- SYS_LLROUNDF = 0xA90 +- SYS_LLROUNDL = 0xA93 +- SYS_LOCALTIM = 0x0B1 +- SYS_LOCALTIME = 0x0B1 +- SYS_LOCALTIME64 = 0xCDE +- SYS_LOCALTIME64_R = 0xCDF +- SYS_LOG10D128 = 0xBE6 +- SYS_LOG10D32 = 0xBE4 +- SYS_LOG10D64 = 0xBE5 +- SYS_LOG1PD128 = 0xBE9 +- SYS_LOG1PD32 = 0xBE7 +- SYS_LOG1PD64 = 0xBE8 +- SYS_LOG2D128 = 0xBEC +- SYS_LOG2D32 = 0xBEA +- SYS_LOG2D64 = 0xBEB +- SYS_LOGBD128 = 0xBEF +- SYS_LOGBD32 = 0xBED +- SYS_LOGBD64 = 0xBEE +- SYS_LOGBF = 0xA96 +- SYS_LOGBL = 0xA99 +- SYS_LOGD128 = 0xBE3 +- SYS_LOGD32 = 0xBE1 +- SYS_LOGD64 = 0xBE2 +- SYS_LRINT = 0xA9C +- SYS_LRINTD128 = 0xBF2 +- SYS_LRINTD32 = 0xBF0 +- SYS_LRINTD64 = 0xBF1 +- SYS_LRINTF = 0xA9F +- SYS_LRINTL = 0xAA2 +- SYS_LROUNDD128 = 0xBF5 +- SYS_LROUNDD32 = 0xBF3 +- SYS_LROUNDD64 = 0xBF4 +- SYS_LROUNDL = 0xAA5 +- SYS_MBLEN = 0x0AF +- SYS_MBRTOC16 = 0xD42 +- SYS_MBRTOC32 = 0xD43 +- SYS_MEMSET = 0x0A3 +- SYS_MKTIME = 0x0AC +- SYS_MKTIME64 = 0xCE0 +- SYS_MODFD128 = 0xBF8 +- SYS_MODFD32 = 0xBF6 +- SYS_MODFD64 = 0xBF7 +- SYS_NAN = 0xAA8 +- SYS_NAND128 = 0xBFB +- SYS_NAND32 = 0xBF9 +- SYS_NAND64 = 0xBFA +- SYS_NANF = 0xAAA +- SYS_NANL = 0xAAC +- SYS_NEARBYINT = 0xAAE +- SYS_NEARBYINTD128 = 0xBFE +- SYS_NEARBYINTD32 = 0xBFC +- SYS_NEARBYINTD64 = 0xBFD +- SYS_NEARBYINTF = 0xAB1 +- SYS_NEARBYINTL = 0xAB4 +- SYS_NEXTAFTERD128 = 0xC01 +- SYS_NEXTAFTERD32 = 0xBFF +- SYS_NEXTAFTERD64 = 0xC00 +- SYS_NEXTAFTERF = 0xAB7 +- SYS_NEXTAFTERL = 0xABA +- SYS_NEXTTOWARD = 0xABD +- SYS_NEXTTOWARDD128 = 0xC04 +- SYS_NEXTTOWARDD32 = 0xC02 +- SYS_NEXTTOWARDD64 = 0xC03 +- SYS_NEXTTOWARDF = 0xAC0 +- SYS_NEXTTOWARDL = 0xAC3 +- SYS_NL_LANGINFO = 0x0FC +- SYS_PERROR_UNLOCKED = 0xCBD +- SYS_POSIX_FALLOCATE = 0xCE8 +- SYS_POSIX_MEMALIGN = 0xCE9 +- SYS_POSIX_OPENPT = 0xC66 +- SYS_POWD128 = 0xC07 +- SYS_POWD32 = 0xC05 +- SYS_POWD64 = 0xC06 +- SYS_PRINTF_UNLOCKED = 0xCBE +- SYS_PSELECT = 0xC67 +- SYS_PTHREAD_ATTR_GETSTACK = 0xB3E +- SYS_PTHREAD_ATTR_SETSTACK = 0xB3F +- SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 +- SYS_PUTS_UNLOCKED = 0xC7F +- SYS_PUTWCHAR_UNLOCKED = 0xCC0 +- SYS_PUTWC_UNLOCKED = 0xCBF +- SYS_QUANTEXPD128 = 0xD46 +- SYS_QUANTEXPD32 = 0xD44 +- SYS_QUANTEXPD64 = 0xD45 +- SYS_QUANTIZED128 = 0xC0A +- SYS_QUANTIZED32 = 0xC08 +- SYS_QUANTIZED64 = 0xC09 +- SYS_REMAINDERD128 = 0xC0D +- SYS_REMAINDERD32 = 0xC0B +- SYS_REMAINDERD64 = 0xC0C +- SYS_RESIZE_ALLOC = 0xCEB +- SYS_REWIND_UNLOCKED = 0xCC1 +- SYS_RINTD128 = 0xC13 +- SYS_RINTD32 = 0xC11 +- SYS_RINTD64 = 0xC12 +- SYS_RINTF = 0xACB +- SYS_RINTL = 0xACD +- SYS_ROUND = 0xACF +- SYS_ROUNDD128 = 0xC16 +- SYS_ROUNDD32 = 0xC14 +- SYS_ROUNDD64 = 0xC15 +- SYS_ROUNDF = 0xAD2 +- SYS_ROUNDL = 0xAD5 +- SYS_SAMEQUANTUMD128 = 0xC19 +- SYS_SAMEQUANTUMD32 = 0xC17 +- SYS_SAMEQUANTUMD64 = 0xC18 +- SYS_SCALBLN = 0xAD8 +- SYS_SCALBLND128 = 0xC1C +- SYS_SCALBLND32 = 0xC1A +- SYS_SCALBLND64 = 0xC1B +- SYS_SCALBLNF = 0xADB +- SYS_SCALBLNL = 0xADE +- SYS_SCALBND128 = 0xC1F +- SYS_SCALBND32 = 0xC1D +- SYS_SCALBND64 = 0xC1E +- SYS_SCALBNF = 0xAE3 +- SYS_SCALBNL = 0xAE6 +- SYS_SCANF_UNLOCKED = 0xCC2 +- SYS_SCHED_YIELD = 0xB32 +- SYS_SETENV = 0x0C8 +- SYS_SETIPV4SOURCEFILTER = 0xC76 +- SYS_SETSOURCEFILTER = 0xC78 +- SYS_SHM_OPEN = 0xC8C +- SYS_SHM_UNLINK = 0xC8D +- SYS_SIND128 = 0xC22 +- SYS_SIND32 = 0xC20 +- SYS_SIND64 = 0xC21 +- SYS_SINHD128 = 0xC25 +- SYS_SINHD32 = 0xC23 +- SYS_SINHD64 = 0xC24 +- SYS_SIZEOF_ALLOC = 0xCEA +- SYS_SOCKATMARK = 0xC68 +- SYS_SQRTD128 = 0xC28 +- SYS_SQRTD32 = 0xC26 +- SYS_SQRTD64 = 0xC27 +- SYS_STRCHR = 0x0A0 +- SYS_STRCSPN = 0x0A1 +- SYS_STRERROR = 0x0A8 +- SYS_STRERROR_R = 0xB33 +- SYS_STRFTIME = 0x0B2 +- SYS_STRLEN = 0x0A9 +- SYS_STRPBRK = 0x0A2 +- SYS_STRSPN = 0x0A4 +- SYS_STRSTR = 0x0A5 +- SYS_STRTOD128 = 0xC2B +- SYS_STRTOD32 = 0xC29 +- SYS_STRTOD64 = 0xC2A +- SYS_STRTOK = 0x0A6 +- SYS_TAND128 = 0xC2E +- SYS_TAND32 = 0xC2C +- SYS_TAND64 = 0xC2D +- SYS_TANHD128 = 0xC31 +- SYS_TANHD32 = 0xC2F +- SYS_TANHD64 = 0xC30 +- SYS_TGAMMAD128 = 0xC34 +- SYS_TGAMMAD32 = 0xC32 +- SYS_TGAMMAD64 = 0xC33 +- SYS_TIME = 0x0AD +- SYS_TIME64 = 0xCE1 +- SYS_TMPFILE64 = 0xD4D +- SYS_TMPFILE64_UNLOCKED = 0xD4E +- SYS_TMPFILE_UNLOCKED = 0xCFD +- SYS_TRUNCD128 = 0xC40 +- SYS_TRUNCD32 = 0xC3E +- SYS_TRUNCD64 = 0xC3F +- SYS_UNGETC_UNLOCKED = 0xCC3 +- SYS_UNGETWC_UNLOCKED = 0xCC4 +- SYS_UNSETENV = 0xB34 +- SYS_VFPRINTF_UNLOCKED = 0xCC5 +- SYS_VFSCANF_UNLOCKED = 0xCC7 +- SYS_VFWPRINTF_UNLOCKED = 0xCC9 +- SYS_VFWSCANF_UNLOCKED = 0xCCB +- SYS_VPRINTF_UNLOCKED = 0xCCD +- SYS_VSCANF_UNLOCKED = 0xCCF +- SYS_VWPRINTF_UNLOCKED = 0xCD1 +- SYS_VWSCANF_UNLOCKED = 0xCD3 +- SYS_WCSTOD128 = 0xC43 +- SYS_WCSTOD32 = 0xC41 +- SYS_WCSTOD64 = 0xC42 +- SYS_WPRINTF_UNLOCKED = 0xCD5 +- SYS_WSCANF_UNLOCKED = 0xCD6 +- SYS__FLUSHLBF = 0xD68 +- SYS__FLUSHLBF_UNLOCKED = 0xD6F +- SYS___ACOSHF_H = 0xA54 +- SYS___ACOSHL_H = 0xA55 +- SYS___ASINHF_H = 0xA56 +- SYS___ASINHL_H = 0xA57 +- SYS___ATANPID128 = 0xC6D +- SYS___ATANPID32 = 0xC6B +- SYS___ATANPID64 = 0xC6C +- SYS___CBRTF_H = 0xA58 +- SYS___CBRTL_H = 0xA59 +- SYS___CDUMP = 0x0C4 +- SYS___CLASS = 0xAFA +- SYS___CLASS2 = 0xB99 +- SYS___CLASS2D128 = 0xC99 +- SYS___CLASS2D32 = 0xC97 +- SYS___CLASS2D64 = 0xC98 +- SYS___CLASS2F = 0xC91 +- SYS___CLASS2F_B = 0xC93 +- SYS___CLASS2F_H = 0xC94 +- SYS___CLASS2L = 0xC92 +- SYS___CLASS2L_B = 0xC95 +- SYS___CLASS2L_H = 0xC96 +- SYS___CLASS2_B = 0xB9A +- SYS___CLASS2_H = 0xB9B +- SYS___CLASS_B = 0xAFB +- SYS___CLASS_H = 0xAFC +- SYS___CLOGL_B = 0xA01 +- SYS___CLOGL_H = 0xA02 +- SYS___CLRENV = 0x0C9 +- SYS___CLRMF = 0x0BD +- SYS___CODEPAGE_INFO = 0xC64 +- SYS___CONJF_B = 0xA07 +- SYS___CONJF_H = 0xA08 +- SYS___CONJL_B = 0xA0A +- SYS___CONJL_H = 0xA0B +- SYS___CONJ_B = 0xA04 +- SYS___CONJ_H = 0xA05 +- SYS___COPYSIGN_B = 0xA5A +- SYS___COPYSIGN_H = 0xAF5 +- SYS___COSPID128 = 0xC70 +- SYS___COSPID32 = 0xC6E +- SYS___COSPID64 = 0xC6F +- SYS___CPOWF_B = 0xA10 +- SYS___CPOWF_H = 0xA11 +- SYS___CPOWL_B = 0xA13 +- SYS___CPOWL_H = 0xA14 +- SYS___CPOW_B = 0xA0D +- SYS___CPOW_H = 0xA0E +- SYS___CPROJF_B = 0xA19 +- SYS___CPROJF_H = 0xA1A +- SYS___CPROJL_B = 0xA1C +- SYS___CPROJL_H = 0xA1D +- SYS___CPROJ_B = 0xA16 +- SYS___CPROJ_H = 0xA17 +- SYS___CREALF_B = 0xA22 +- SYS___CREALF_H = 0xA23 +- SYS___CREALL_B = 0xA25 +- SYS___CREALL_H = 0xA26 +- SYS___CREAL_B = 0xA1F +- SYS___CREAL_H = 0xA20 +- SYS___CSINF_B = 0xA2B +- SYS___CSINF_H = 0xA2C +- SYS___CSINHF_B = 0xA34 +- SYS___CSINHF_H = 0xA35 +- SYS___CSINHL_B = 0xA37 +- SYS___CSINHL_H = 0xA38 +- SYS___CSINH_B = 0xA31 +- SYS___CSINH_H = 0xA32 +- SYS___CSINL_B = 0xA2E +- SYS___CSINL_H = 0xA2F +- SYS___CSIN_B = 0xA28 +- SYS___CSIN_H = 0xA29 +- SYS___CSNAP = 0x0C5 +- SYS___CSQRTF_B = 0xA3D +- SYS___CSQRTF_H = 0xA3E +- SYS___CSQRTL_B = 0xA40 +- SYS___CSQRTL_H = 0xA41 +- SYS___CSQRT_B = 0xA3A +- SYS___CSQRT_H = 0xA3B +- SYS___CTANF_B = 0xA46 +- SYS___CTANF_H = 0xA47 +- SYS___CTANHF_B = 0xA4F +- SYS___CTANHF_H = 0xA50 +- SYS___CTANHL_B = 0xA52 +- SYS___CTANHL_H = 0xA53 +- SYS___CTANH_B = 0xA4C +- SYS___CTANH_H = 0xA4D +- SYS___CTANL_B = 0xA49 +- SYS___CTANL_H = 0xA4A +- SYS___CTAN_B = 0xA43 +- SYS___CTAN_H = 0xA44 +- SYS___CTEST = 0x0C7 +- SYS___CTRACE = 0x0C6 +- SYS___D1TOP = 0xC9B +- SYS___D2TOP = 0xC9C +- SYS___D4TOP = 0xC9D +- SYS___DYNALL = 0x0C3 +- SYS___DYNFRE = 0x0C2 +- SYS___EXP2F_H = 0xA5E +- SYS___EXP2L_H = 0xA5F +- SYS___EXP2_H = 0xA5D +- SYS___EXPM1F_H = 0xA5B +- SYS___EXPM1L_H = 0xA5C +- SYS___FBUFSIZE = 0xD60 +- SYS___FLBF = 0xD62 +- SYS___FLDATA = 0x0C1 +- SYS___FMAF_B = 0xA67 +- SYS___FMAF_H = 0xA68 +- SYS___FMAL_B = 0xA6A +- SYS___FMAL_H = 0xA6B +- SYS___FMAXF_B = 0xA70 +- SYS___FMAXF_H = 0xA71 +- SYS___FMAXL_B = 0xA73 +- SYS___FMAXL_H = 0xA74 +- SYS___FMAX_B = 0xA6D +- SYS___FMAX_H = 0xA6E +- SYS___FMA_B = 0xA64 +- SYS___FMA_H = 0xA65 +- SYS___FMINF_B = 0xA79 +- SYS___FMINF_H = 0xA7A +- SYS___FMINL_B = 0xA7C +- SYS___FMINL_H = 0xA7D +- SYS___FMIN_B = 0xA76 +- SYS___FMIN_H = 0xA77 +- SYS___FPENDING = 0xD61 +- SYS___FPENDING_UNLOCKED = 0xD6C +- SYS___FPURGE = 0xD69 +- SYS___FPURGE_UNLOCKED = 0xD70 +- SYS___FP_CAST_D = 0xBCB +- SYS___FREADABLE = 0xD63 +- SYS___FREADAHEAD = 0xD6A +- SYS___FREADAHEAD_UNLOCKED = 0xD71 +- SYS___FREADING = 0xD65 +- SYS___FREADING_UNLOCKED = 0xD6D +- SYS___FSEEK2 = 0xB3C +- SYS___FSETERR = 0xD6B +- SYS___FSETLOCKING = 0xD67 +- SYS___FTCHEP = 0x0BF +- SYS___FTELL2 = 0xB3B +- SYS___FUPDT = 0x0B5 +- SYS___FWRITABLE = 0xD64 +- SYS___FWRITING = 0xD66 +- SYS___FWRITING_UNLOCKED = 0xD6E +- SYS___GETCB = 0x0B4 +- SYS___GETGRGID1 = 0xD5B +- SYS___GETGRNAM1 = 0xD5C +- SYS___GETTHENT = 0xCE5 +- SYS___GETTOD = 0xD3E +- SYS___HYPOTF_H = 0xAF6 +- SYS___HYPOTL_H = 0xAF7 +- SYS___ILOGBF_B = 0xA7F +- SYS___ILOGBF_H = 0xA80 +- SYS___ILOGBL_B = 0xA82 +- SYS___ILOGBL_H = 0xA83 +- SYS___ISBLANK_A = 0xB2E +- SYS___ISBLNK = 0x0FE +- SYS___ISWBLANK_A = 0xB2F +- SYS___LE_CEEGTJS = 0xD72 +- SYS___LE_TRACEBACK = 0xB7A +- SYS___LGAMMAL_H = 0xA62 +- SYS___LGAMMA_B_C99 = 0xB39 +- SYS___LGAMMA_H_C99 = 0xB38 +- SYS___LGAMMA_R_C99 = 0xB3A +- SYS___LLRINTF_B = 0xA88 +- SYS___LLRINTF_H = 0xA89 +- SYS___LLRINTL_B = 0xA8B +- SYS___LLRINTL_H = 0xA8C +- SYS___LLRINT_B = 0xA85 +- SYS___LLRINT_H = 0xA86 +- SYS___LLROUNDF_B = 0xA91 +- SYS___LLROUNDF_H = 0xA92 +- SYS___LLROUNDL_B = 0xA94 +- SYS___LLROUNDL_H = 0xA95 +- SYS___LLROUND_B = 0xA8E +- SYS___LLROUND_H = 0xA8F +- SYS___LOCALE_CTL = 0xD47 +- SYS___LOG1PF_H = 0xA60 +- SYS___LOG1PL_H = 0xA61 +- SYS___LOGBF_B = 0xA97 +- SYS___LOGBF_H = 0xA98 +- SYS___LOGBL_B = 0xA9A +- SYS___LOGBL_H = 0xA9B +- SYS___LOGIN_APPLID = 0xCE2 +- SYS___LRINTF_B = 0xAA0 +- SYS___LRINTF_H = 0xAA1 +- SYS___LRINTL_B = 0xAA3 +- SYS___LRINTL_H = 0xAA4 +- SYS___LRINT_B = 0xA9D +- SYS___LRINT_H = 0xA9E +- SYS___LROUNDF_FIXUP = 0xB31 +- SYS___LROUNDL_B = 0xAA6 +- SYS___LROUNDL_H = 0xAA7 +- SYS___LROUND_FIXUP = 0xB30 +- SYS___MOSERVICES = 0xD3D +- SYS___MUST_STAY_CLEAN = 0xB7C +- SYS___NANF_B = 0xAAB +- SYS___NANL_B = 0xAAD +- SYS___NAN_B = 0xAA9 +- SYS___NEARBYINTF_B = 0xAB2 +- SYS___NEARBYINTF_H = 0xAB3 +- SYS___NEARBYINTL_B = 0xAB5 +- SYS___NEARBYINTL_H = 0xAB6 +- SYS___NEARBYINT_B = 0xAAF +- SYS___NEARBYINT_H = 0xAB0 +- SYS___NEXTAFTERF_B = 0xAB8 +- SYS___NEXTAFTERF_H = 0xAB9 +- SYS___NEXTAFTERL_B = 0xABB +- SYS___NEXTAFTERL_H = 0xABC +- SYS___NEXTTOWARDF_B = 0xAC1 +- SYS___NEXTTOWARDF_H = 0xAC2 +- SYS___NEXTTOWARDL_B = 0xAC4 +- SYS___NEXTTOWARDL_H = 0xAC5 +- SYS___NEXTTOWARD_B = 0xABE +- SYS___NEXTTOWARD_H = 0xABF +- SYS___O_ENV = 0xB7D +- SYS___PASSWD_APPLID = 0xCE3 +- SYS___PTOD1 = 0xC9E +- SYS___PTOD2 = 0xC9F +- SYS___PTOD4 = 0xCA0 +- SYS___REGCOMP_STD = 0x0EA +- SYS___REMAINDERF_H = 0xAC6 +- SYS___REMAINDERL_H = 0xAC7 +- SYS___REMQUOD128 = 0xC10 +- SYS___REMQUOD32 = 0xC0E +- SYS___REMQUOD64 = 0xC0F +- SYS___REMQUOF_H = 0xAC9 +- SYS___REMQUOL_H = 0xACA +- SYS___REMQUO_H = 0xAC8 +- SYS___RINTF_B = 0xACC +- SYS___RINTL_B = 0xACE +- SYS___ROUNDF_B = 0xAD3 +- SYS___ROUNDF_H = 0xAD4 +- SYS___ROUNDL_B = 0xAD6 +- SYS___ROUNDL_H = 0xAD7 +- SYS___ROUND_B = 0xAD0 +- SYS___ROUND_H = 0xAD1 +- SYS___SCALBLNF_B = 0xADC +- SYS___SCALBLNF_H = 0xADD +- SYS___SCALBLNL_B = 0xADF +- SYS___SCALBLNL_H = 0xAE0 +- SYS___SCALBLN_B = 0xAD9 +- SYS___SCALBLN_H = 0xADA +- SYS___SCALBNF_B = 0xAE4 +- SYS___SCALBNF_H = 0xAE5 +- SYS___SCALBNL_B = 0xAE7 +- SYS___SCALBNL_H = 0xAE8 +- SYS___SCALBN_B = 0xAE1 +- SYS___SCALBN_H = 0xAE2 +- SYS___SETENV = 0x0C8 +- SYS___SINPID128 = 0xC73 +- SYS___SINPID32 = 0xC71 +- SYS___SINPID64 = 0xC72 +- SYS___SMF_RECORD2 = 0xD48 +- SYS___STATIC_REINIT = 0xB3D +- SYS___TGAMMAF_H_C99 = 0xB79 +- SYS___TGAMMAL_H = 0xAE9 +- SYS___TGAMMA_H_C99 = 0xB78 +- SYS___TOCSNAME2 = 0xC9A +- SYS_CEIL = 0x01F +- SYS_CHAUDIT = 0x1E0 +- SYS_EXP = 0x01A +- SYS_FCHAUDIT = 0x1E1 +- SYS_FREXP = 0x01D +- SYS_GETGROUPSBYNAME = 0x1E2 +- SYS_GETPWUID = 0x1A0 +- SYS_GETUID = 0x1A1 +- SYS_ISATTY = 0x1A3 +- SYS_KILL = 0x1A4 +- SYS_LDEXP = 0x01E +- SYS_LINK = 0x1A5 +- SYS_LOG10 = 0x01C +- SYS_LSEEK = 0x1A6 +- SYS_LSTAT = 0x1A7 +- SYS_MKDIR = 0x1A8 +- SYS_MKFIFO = 0x1A9 +- SYS_MKNOD = 0x1AA +- SYS_MODF = 0x01B +- SYS_MOUNT = 0x1AB +- SYS_OPEN = 0x1AC +- SYS_OPENDIR = 0x1AD +- SYS_PATHCONF = 0x1AE +- SYS_PAUSE = 0x1AF +- SYS_PIPE = 0x1B0 +- SYS_PTHREAD_ATTR_DESTROY = 0x1E7 +- SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB +- SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 +- SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED +- SYS_PTHREAD_ATTR_INIT = 0x1E6 +- SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA +- SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 +- SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC +- SYS_PTHREAD_CANCEL = 0x1EE +- SYS_PTHREAD_CLEANUP_POP = 0x1F0 +- SYS_PTHREAD_CLEANUP_PUSH = 0x1EF +- SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 +- SYS_PTHREAD_CONDATTR_INIT = 0x1F1 +- SYS_PTHREAD_COND_BROADCAST = 0x1F6 +- SYS_PTHREAD_COND_DESTROY = 0x1F4 +- SYS_PTHREAD_COND_INIT = 0x1F3 +- SYS_PTHREAD_COND_SIGNAL = 0x1F5 +- SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 +- SYS_PTHREAD_COND_WAIT = 0x1F7 +- SYS_PTHREAD_CREATE = 0x1F9 +- SYS_PTHREAD_DETACH = 0x1FA +- SYS_PTHREAD_EQUAL = 0x1FB +- SYS_PTHREAD_EXIT = 0x1E4 +- SYS_PTHREAD_GETSPECIFIC = 0x1FC +- SYS_PTHREAD_JOIN = 0x1FD +- SYS_PTHREAD_KEY_CREATE = 0x1FE +- SYS_PTHREAD_KILL = 0x1E5 +- SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF +- SYS_READ = 0x1B2 +- SYS_READDIR = 0x1B3 +- SYS_READLINK = 0x1B4 +- SYS_REWINDDIR = 0x1B5 +- SYS_RMDIR = 0x1B6 +- SYS_SETEGID = 0x1B7 +- SYS_SETEUID = 0x1B8 +- SYS_SETGID = 0x1B9 +- SYS_SETPGID = 0x1BA +- SYS_SETSID = 0x1BB +- SYS_SETUID = 0x1BC +- SYS_SIGACTION = 0x1BD +- SYS_SIGADDSET = 0x1BE +- SYS_SIGDELSET = 0x1BF +- SYS_SIGEMPTYSET = 0x1C0 +- SYS_SIGFILLSET = 0x1C1 +- SYS_SIGISMEMBER = 0x1C2 +- SYS_SIGLONGJMP = 0x1C3 +- SYS_SIGPENDING = 0x1C4 +- SYS_SIGPROCMASK = 0x1C5 +- SYS_SIGSETJMP = 0x1C6 +- SYS_SIGSUSPEND = 0x1C7 +- SYS_SIGWAIT = 0x1E3 +- SYS_SLEEP = 0x1C8 +- SYS_STAT = 0x1C9 +- SYS_SYMLINK = 0x1CB +- SYS_SYSCONF = 0x1CC +- SYS_TCDRAIN = 0x1CD +- SYS_TCFLOW = 0x1CE +- SYS_TCFLUSH = 0x1CF +- SYS_TCGETATTR = 0x1D0 +- SYS_TCGETPGRP = 0x1D1 +- SYS_TCSENDBREAK = 0x1D2 +- SYS_TCSETATTR = 0x1D3 +- SYS_TCSETPGRP = 0x1D4 +- SYS_TIMES = 0x1D5 +- SYS_TTYNAME = 0x1D6 +- SYS_TZSET = 0x1D7 +- SYS_UMASK = 0x1D8 +- SYS_UMOUNT = 0x1D9 +- SYS_UNAME = 0x1DA +- SYS_UNLINK = 0x1DB +- SYS_UTIME = 0x1DC +- SYS_WAIT = 0x1DD +- SYS_WAITPID = 0x1DE +- SYS_WRITE = 0x1DF +- SYS_W_GETPSENT = 0x1B1 +- SYS_W_IOCTL = 0x1A2 +- SYS_W_STATFS = 0x1CA +- SYS_A64L = 0x2EF +- SYS_BCMP = 0x2B9 +- SYS_BCOPY = 0x2BA +- SYS_BZERO = 0x2BB +- SYS_CATCLOSE = 0x2B6 +- SYS_CATGETS = 0x2B7 +- SYS_CATOPEN = 0x2B8 +- SYS_CRYPT = 0x2AC +- SYS_DBM_CLEARERR = 0x2F7 +- SYS_DBM_CLOSE = 0x2F8 +- SYS_DBM_DELETE = 0x2F9 +- SYS_DBM_ERROR = 0x2FA +- SYS_DBM_FETCH = 0x2FB +- SYS_DBM_FIRSTKEY = 0x2FC +- SYS_DBM_NEXTKEY = 0x2FD +- SYS_DBM_OPEN = 0x2FE +- SYS_DBM_STORE = 0x2FF +- SYS_DRAND48 = 0x2B2 +- SYS_ENCRYPT = 0x2AD +- SYS_ENDUTXENT = 0x2E1 +- SYS_ERAND48 = 0x2B3 +- SYS_ERF = 0x02C +- SYS_ERFC = 0x02D +- SYS_FCHDIR = 0x2D9 +- SYS_FFS = 0x2BC +- SYS_FMTMSG = 0x2E5 +- SYS_FSTATVFS = 0x2B4 +- SYS_FTIME = 0x2F5 +- SYS_GAMMA = 0x02E +- SYS_GETDATE = 0x2A6 +- SYS_GETPAGESIZE = 0x2D8 +- SYS_GETTIMEOFDAY = 0x2F6 +- SYS_GETUTXENT = 0x2E0 +- SYS_GETUTXID = 0x2E2 +- SYS_GETUTXLINE = 0x2E3 +- SYS_HCREATE = 0x2C6 +- SYS_HDESTROY = 0x2C7 +- SYS_HSEARCH = 0x2C8 +- SYS_HYPOT = 0x02B +- SYS_INDEX = 0x2BD +- SYS_INITSTATE = 0x2C2 +- SYS_INSQUE = 0x2CF +- SYS_ISASCII = 0x2ED +- SYS_JRAND48 = 0x2E6 +- SYS_L64A = 0x2F0 +- SYS_LCONG48 = 0x2EA +- SYS_LFIND = 0x2C9 +- SYS_LRAND48 = 0x2E7 +- SYS_LSEARCH = 0x2CA +- SYS_MEMCCPY = 0x2D4 +- SYS_MRAND48 = 0x2E8 +- SYS_NRAND48 = 0x2E9 +- SYS_PCLOSE = 0x2D2 +- SYS_POPEN = 0x2D1 +- SYS_PUTUTXLINE = 0x2E4 +- SYS_RANDOM = 0x2C4 +- SYS_REMQUE = 0x2D0 +- SYS_RINDEX = 0x2BE +- SYS_SEED48 = 0x2EC +- SYS_SETKEY = 0x2AE +- SYS_SETSTATE = 0x2C3 +- SYS_SETUTXENT = 0x2DF +- SYS_SRAND48 = 0x2EB +- SYS_SRANDOM = 0x2C5 +- SYS_STATVFS = 0x2B5 +- SYS_STRCASECMP = 0x2BF +- SYS_STRDUP = 0x2C0 +- SYS_STRNCASECMP = 0x2C1 +- SYS_SWAB = 0x2D3 +- SYS_TDELETE = 0x2CB +- SYS_TFIND = 0x2CC +- SYS_TOASCII = 0x2EE +- SYS_TSEARCH = 0x2CD +- SYS_TWALK = 0x2CE +- SYS_UALARM = 0x2F1 +- SYS_USLEEP = 0x2F2 +- SYS_WAIT3 = 0x2A7 +- SYS_WAITID = 0x2A8 +- SYS_Y1 = 0x02A +- SYS___ATOE = 0x2DB +- SYS___ATOE_L = 0x2DC +- SYS___CATTRM = 0x2A9 +- SYS___CNVBLK = 0x2AF +- SYS___CRYTRM = 0x2B0 +- SYS___DLGHT = 0x2A1 +- SYS___ECRTRM = 0x2B1 +- SYS___ETOA = 0x2DD +- SYS___ETOA_L = 0x2DE +- SYS___GDTRM = 0x2AA +- SYS___OCLCK = 0x2DA +- SYS___OPARGF = 0x2A2 +- SYS___OPERRF = 0x2A5 +- SYS___OPINDF = 0x2A4 +- SYS___OPOPTF = 0x2A3 +- SYS___RNDTRM = 0x2AB +- SYS___SRCTRM = 0x2F4 +- SYS___TZONE = 0x2A0 +- SYS___UTXTRM = 0x2F3 +- SYS_ASIN = 0x03E +- SYS_ISXDIGIT = 0x03B +- SYS_SETLOCAL = 0x03A +- SYS_SETLOCALE = 0x03A +- SYS_SIN = 0x03F +- SYS_TOLOWER = 0x03C +- SYS_TOUPPER = 0x03D +- SYS_ACCEPT_AND_RECV = 0x4F7 +- SYS_ATOL = 0x04E +- SYS_CHECKSCH = 0x4BC +- SYS_CHECKSCHENV = 0x4BC +- SYS_CLEARERR = 0x04C +- SYS_CONNECTS = 0x4B5 +- SYS_CONNECTSERVER = 0x4B5 +- SYS_CONNECTW = 0x4B4 +- SYS_CONNECTWORKMGR = 0x4B4 +- SYS_CONTINUE = 0x4B3 +- SYS_CONTINUEWORKUNIT = 0x4B3 +- SYS_COPYSIGN = 0x4C2 +- SYS_CREATEWO = 0x4B2 +- SYS_CREATEWORKUNIT = 0x4B2 +- SYS_DELETEWO = 0x4B9 +- SYS_DELETEWORKUNIT = 0x4B9 +- SYS_DISCONNE = 0x4B6 +- SYS_DISCONNECTSERVER = 0x4B6 +- SYS_FEOF = 0x04D +- SYS_FERROR = 0x04A +- SYS_FINITE = 0x4C8 +- SYS_GAMMA_R = 0x4E2 +- SYS_JOINWORK = 0x4B7 +- SYS_JOINWORKUNIT = 0x4B7 +- SYS_LEAVEWOR = 0x4B8 +- SYS_LEAVEWORKUNIT = 0x4B8 +- SYS_LGAMMA_R = 0x4EB +- SYS_MATHERR = 0x4D0 +- SYS_PERROR = 0x04F +- SYS_QUERYMET = 0x4BA +- SYS_QUERYMETRICS = 0x4BA +- SYS_QUERYSCH = 0x4BB +- SYS_QUERYSCHENV = 0x4BB +- SYS_REWIND = 0x04B +- SYS_SCALBN = 0x4D4 +- SYS_SIGNIFIC = 0x4D5 +- SYS_SIGNIFICAND = 0x4D5 +- SYS___ACOSH_B = 0x4DA +- SYS___ACOS_B = 0x4D9 +- SYS___ASINH_B = 0x4BE +- SYS___ASIN_B = 0x4DB +- SYS___ATAN2_B = 0x4DC +- SYS___ATANH_B = 0x4DD +- SYS___ATAN_B = 0x4BF +- SYS___CBRT_B = 0x4C0 +- SYS___CEIL_B = 0x4C1 +- SYS___COSH_B = 0x4DE +- SYS___COS_B = 0x4C3 +- SYS___DGHT = 0x4A8 +- SYS___ENVN = 0x4B0 +- SYS___ERFC_B = 0x4C5 +- SYS___ERF_B = 0x4C4 +- SYS___EXPM1_B = 0x4C6 +- SYS___EXP_B = 0x4DF +- SYS___FABS_B = 0x4C7 +- SYS___FLOOR_B = 0x4C9 +- SYS___FMOD_B = 0x4E0 +- SYS___FP_SETMODE = 0x4F8 +- SYS___FREXP_B = 0x4CA +- SYS___GAMMA_B = 0x4E1 +- SYS___GDRR = 0x4A1 +- SYS___HRRNO = 0x4A2 +- SYS___HYPOT_B = 0x4E3 +- SYS___ILOGB_B = 0x4CB +- SYS___ISNAN_B = 0x4CC +- SYS___J0_B = 0x4E4 +- SYS___J1_B = 0x4E6 +- SYS___JN_B = 0x4E8 +- SYS___LDEXP_B = 0x4CD +- SYS___LGAMMA_B = 0x4EA +- SYS___LOG10_B = 0x4ED +- SYS___LOG1P_B = 0x4CE +- SYS___LOGB_B = 0x4CF +- SYS___LOGIN = 0x4F5 +- SYS___LOG_B = 0x4EC +- SYS___MLOCKALL = 0x4B1 +- SYS___MODF_B = 0x4D1 +- SYS___NEXTAFTER_B = 0x4D2 +- SYS___OPENDIR2 = 0x4F3 +- SYS___OPEN_STAT = 0x4F6 +- SYS___OPND = 0x4A5 +- SYS___OPPT = 0x4A6 +- SYS___OPRG = 0x4A3 +- SYS___OPRR = 0x4A4 +- SYS___PID_AFFINITY = 0x4BD +- SYS___POW_B = 0x4EE +- SYS___READDIR2 = 0x4F4 +- SYS___REMAINDER_B = 0x4EF +- SYS___RINT_B = 0x4D3 +- SYS___SCALB_B = 0x4F0 +- SYS___SIGACTIONSET = 0x4FB +- SYS___SIGGM = 0x4A7 +- SYS___SINH_B = 0x4F1 +- SYS___SIN_B = 0x4D6 +- SYS___SQRT_B = 0x4F2 +- SYS___TANH_B = 0x4D8 +- SYS___TAN_B = 0x4D7 +- SYS___TRRNO = 0x4AF +- SYS___TZNE = 0x4A9 +- SYS___TZZN = 0x4AA +- SYS___UCREATE = 0x4FC +- SYS___UFREE = 0x4FE +- SYS___UHEAPREPORT = 0x4FF +- SYS___UMALLOC = 0x4FD +- SYS___Y0_B = 0x4E5 +- SYS___Y1_B = 0x4E7 +- SYS___YN_B = 0x4E9 +- SYS_ABORT = 0x05C +- SYS_ASCTIME_R = 0x5E0 +- SYS_ATEXIT = 0x05D +- SYS_CONNECTE = 0x5AE +- SYS_CONNECTEXPORTIMPORT = 0x5AE +- SYS_CTIME_R = 0x5E1 +- SYS_DN_COMP = 0x5DF +- SYS_DN_EXPAND = 0x5DD +- SYS_DN_SKIPNAME = 0x5DE +- SYS_EXIT = 0x05A +- SYS_EXPORTWO = 0x5A1 +- SYS_EXPORTWORKUNIT = 0x5A1 +- SYS_EXTRACTW = 0x5A5 +- SYS_EXTRACTWORKUNIT = 0x5A5 +- SYS_FSEEKO = 0x5C9 +- SYS_FTELLO = 0x5C8 +- SYS_GETGRGID_R = 0x5E7 +- SYS_GETGRNAM_R = 0x5E8 +- SYS_GETLOGIN_R = 0x5E9 +- SYS_GETPWNAM_R = 0x5EA +- SYS_GETPWUID_R = 0x5EB +- SYS_GMTIME_R = 0x5E2 +- SYS_IMPORTWO = 0x5A3 +- SYS_IMPORTWORKUNIT = 0x5A3 +- SYS_INET_NTOP = 0x5D3 +- SYS_INET_PTON = 0x5D4 +- SYS_LLABS = 0x5CE +- SYS_LLDIV = 0x5CB +- SYS_LOCALTIME_R = 0x5E3 +- SYS_PTHREAD_ATFORK = 0x5ED +- SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB +- SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE +- SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 +- SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF +- SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC +- SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 +- SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA +- SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 +- SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 +- SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 +- SYS_PTHREAD_DETACH_U98 = 0x5FD +- SYS_PTHREAD_GETCONCURRENCY = 0x5F4 +- SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE +- SYS_PTHREAD_KEY_DELETE = 0x5F5 +- SYS_PTHREAD_SETCANCELSTATE = 0x5FF +- SYS_PTHREAD_SETCONCURRENCY = 0x5F6 +- SYS_PTHREAD_SIGMASK = 0x5F7 +- SYS_QUERYENC = 0x5AD +- SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD +- SYS_RAISE = 0x05E +- SYS_RAND_R = 0x5E4 +- SYS_READDIR_R = 0x5E6 +- SYS_REALLOC = 0x05B +- SYS_RES_INIT = 0x5D8 +- SYS_RES_MKQUERY = 0x5D7 +- SYS_RES_QUERY = 0x5D9 +- SYS_RES_QUERYDOMAIN = 0x5DC +- SYS_RES_SEARCH = 0x5DA +- SYS_RES_SEND = 0x5DB +- SYS_SETJMP = 0x05F +- SYS_SIGQUEUE = 0x5A9 +- SYS_STRTOK_R = 0x5E5 +- SYS_STRTOLL = 0x5B0 +- SYS_STRTOULL = 0x5B1 +- SYS_TTYNAME_R = 0x5EC +- SYS_UNDOEXPO = 0x5A2 +- SYS_UNDOEXPORTWORKUNIT = 0x5A2 +- SYS_UNDOIMPO = 0x5A4 +- SYS_UNDOIMPORTWORKUNIT = 0x5A4 +- SYS_WCSTOLL = 0x5CC +- SYS_WCSTOULL = 0x5CD +- SYS___ABORT = 0x05C +- SYS___CONSOLE2 = 0x5D2 +- SYS___CPL = 0x5A6 +- SYS___DISCARDDATA = 0x5F8 +- SYS___DSA_PREV = 0x5B2 +- SYS___EP_FIND = 0x5B3 +- SYS___FP_SWAPMODE = 0x5AF +- SYS___GETUSERID = 0x5AB +- SYS___GET_CPUID = 0x5B9 +- SYS___GET_SYSTEM_SETTINGS = 0x5BA +- SYS___IPDOMAINNAME = 0x5AC +- SYS___MAP_INIT = 0x5A7 +- SYS___MAP_SERVICE = 0x5A8 +- SYS___MOUNT = 0x5AA +- SYS___MSGRCV_TIMED = 0x5B7 +- SYS___RES = 0x5D6 +- SYS___SEMOP_TIMED = 0x5B8 +- SYS___SERVER_THREADS_QUERY = 0x5B4 +- SYS_FPRINTF = 0x06D +- SYS_FSCANF = 0x06A +- SYS_PRINTF = 0x06F +- SYS_SETBUF = 0x06B +- SYS_SETVBUF = 0x06C +- SYS_SSCANF = 0x06E +- SYS___CATGETS_A = 0x6C0 +- SYS___CHAUDIT_A = 0x6F4 +- SYS___CHMOD_A = 0x6E8 +- SYS___COLLATE_INIT_A = 0x6AC +- SYS___CREAT_A = 0x6F6 +- SYS___CTYPE_INIT_A = 0x6AF +- SYS___DLLLOAD_A = 0x6DF +- SYS___DLLQUERYFN_A = 0x6E0 +- SYS___DLLQUERYVAR_A = 0x6E1 +- SYS___E2A_L = 0x6E3 +- SYS___EXECLE_A = 0x6A0 +- SYS___EXECLP_A = 0x6A4 +- SYS___EXECVE_A = 0x6C1 +- SYS___EXECVP_A = 0x6C2 +- SYS___EXECV_A = 0x6B1 +- SYS___FPRINTF_A = 0x6FA +- SYS___GETADDRINFO_A = 0x6BF +- SYS___GETNAMEINFO_A = 0x6C4 +- SYS___GET_WCTYPE_STD_A = 0x6AE +- SYS___ICONV_OPEN_A = 0x6DE +- SYS___IF_INDEXTONAME_A = 0x6DC +- SYS___IF_NAMETOINDEX_A = 0x6DB +- SYS___ISWCTYPE_A = 0x6B0 +- SYS___IS_WCTYPE_STD_A = 0x6B2 +- SYS___LOCALECONV_A = 0x6B8 +- SYS___LOCALECONV_STD_A = 0x6B9 +- SYS___LOCALE_INIT_A = 0x6B7 +- SYS___LSTAT_A = 0x6EE +- SYS___LSTAT_O_A = 0x6EF +- SYS___MKDIR_A = 0x6E9 +- SYS___MKFIFO_A = 0x6EC +- SYS___MKNOD_A = 0x6F0 +- SYS___MONETARY_INIT_A = 0x6BC +- SYS___MOUNT_A = 0x6F1 +- SYS___NL_CSINFO_A = 0x6D6 +- SYS___NL_LANGINFO_A = 0x6BA +- SYS___NL_LNAGINFO_STD_A = 0x6BB +- SYS___NL_MONINFO_A = 0x6D7 +- SYS___NL_NUMINFO_A = 0x6D8 +- SYS___NL_RESPINFO_A = 0x6D9 +- SYS___NL_TIMINFO_A = 0x6DA +- SYS___NUMERIC_INIT_A = 0x6C6 +- SYS___OPEN_A = 0x6F7 +- SYS___PRINTF_A = 0x6DD +- SYS___RESP_INIT_A = 0x6C7 +- SYS___RPMATCH_A = 0x6C8 +- SYS___RPMATCH_C_A = 0x6C9 +- SYS___RPMATCH_STD_A = 0x6CA +- SYS___SETLOCALE_A = 0x6F9 +- SYS___SPAWNP_A = 0x6C5 +- SYS___SPAWN_A = 0x6C3 +- SYS___SPRINTF_A = 0x6FB +- SYS___STAT_A = 0x6EA +- SYS___STAT_O_A = 0x6EB +- SYS___STRCOLL_STD_A = 0x6A1 +- SYS___STRFMON_A = 0x6BD +- SYS___STRFMON_STD_A = 0x6BE +- SYS___STRFTIME_A = 0x6CC +- SYS___STRFTIME_STD_A = 0x6CD +- SYS___STRPTIME_A = 0x6CE +- SYS___STRPTIME_STD_A = 0x6CF +- SYS___STRXFRM_A = 0x6A2 +- SYS___STRXFRM_C_A = 0x6A3 +- SYS___STRXFRM_STD_A = 0x6A5 +- SYS___SYNTAX_INIT_A = 0x6D4 +- SYS___TIME_INIT_A = 0x6CB +- SYS___TOD_INIT_A = 0x6D5 +- SYS___TOWLOWER_A = 0x6B3 +- SYS___TOWLOWER_STD_A = 0x6B4 +- SYS___TOWUPPER_A = 0x6B5 +- SYS___TOWUPPER_STD_A = 0x6B6 +- SYS___UMOUNT_A = 0x6F2 +- SYS___VFPRINTF_A = 0x6FC +- SYS___VPRINTF_A = 0x6FD +- SYS___VSPRINTF_A = 0x6FE +- SYS___VSWPRINTF_A = 0x6FF +- SYS___WCSCOLL_A = 0x6A6 +- SYS___WCSCOLL_C_A = 0x6A7 +- SYS___WCSCOLL_STD_A = 0x6A8 +- SYS___WCSFTIME_A = 0x6D0 +- SYS___WCSFTIME_STD_A = 0x6D1 +- SYS___WCSXFRM_A = 0x6A9 +- SYS___WCSXFRM_C_A = 0x6AA +- SYS___WCSXFRM_STD_A = 0x6AB +- SYS___WCTYPE_A = 0x6AD +- SYS___W_GETMNTENT_A = 0x6F5 +- SYS_____CCSIDTYPE_A = 0x6E6 +- SYS_____CHATTR_A = 0x6E2 +- SYS_____CSNAMETYPE_A = 0x6E7 +- SYS_____OPEN_STAT_A = 0x6ED +- SYS_____SPAWN2_A = 0x6D2 +- SYS_____SPAWNP2_A = 0x6D3 +- SYS_____TOCCSID_A = 0x6E4 +- SYS_____TOCSNAME_A = 0x6E5 +- SYS_ACL_FREE = 0x7FF +- SYS_ACL_INIT = 0x7FE +- SYS_FWIDE = 0x7DF +- SYS_FWPRINTF = 0x7D1 +- SYS_FWRITE = 0x07E +- SYS_FWSCANF = 0x7D5 +- SYS_GETCHAR = 0x07B +- SYS_GETS = 0x07C +- SYS_M_CREATE_LAYOUT = 0x7C9 +- SYS_M_DESTROY_LAYOUT = 0x7CA +- SYS_M_GETVALUES_LAYOUT = 0x7CB +- SYS_M_SETVALUES_LAYOUT = 0x7CC +- SYS_M_TRANSFORM_LAYOUT = 0x7CD +- SYS_M_WTRANSFORM_LAYOUT = 0x7CE +- SYS_PREAD = 0x7C7 +- SYS_PUTC = 0x07D +- SYS_PUTCHAR = 0x07A +- SYS_PUTS = 0x07F +- SYS_PWRITE = 0x7C8 +- SYS_TOWCTRAN = 0x7D8 +- SYS_TOWCTRANS = 0x7D8 +- SYS_UNATEXIT = 0x7B5 +- SYS_VFWPRINT = 0x7D3 +- SYS_VFWPRINTF = 0x7D3 +- SYS_VWPRINTF = 0x7D4 +- SYS_WCTRANS = 0x7D7 +- SYS_WPRINTF = 0x7D2 +- SYS_WSCANF = 0x7D6 +- SYS___ASCTIME_R_A = 0x7A1 +- SYS___BASENAME_A = 0x7DC +- SYS___BTOWC_A = 0x7E4 +- SYS___CDUMP_A = 0x7B7 +- SYS___CEE3DMP_A = 0x7B6 +- SYS___CEILF_H = 0x7F4 +- SYS___CEILL_H = 0x7F5 +- SYS___CEIL_H = 0x7EA +- SYS___CRYPT_A = 0x7BE +- SYS___CSNAP_A = 0x7B8 +- SYS___CTEST_A = 0x7B9 +- SYS___CTIME_R_A = 0x7A2 +- SYS___CTRACE_A = 0x7BA +- SYS___DBM_OPEN_A = 0x7E6 +- SYS___DIRNAME_A = 0x7DD +- SYS___FABSF_H = 0x7FA +- SYS___FABSL_H = 0x7FB +- SYS___FABS_H = 0x7ED +- SYS___FGETWC_A = 0x7AA +- SYS___FGETWS_A = 0x7AD +- SYS___FLOORF_H = 0x7F6 +- SYS___FLOORL_H = 0x7F7 +- SYS___FLOOR_H = 0x7EB +- SYS___FPUTWC_A = 0x7A5 +- SYS___FPUTWS_A = 0x7A8 +- SYS___GETTIMEOFDAY_A = 0x7AE +- SYS___GETWCHAR_A = 0x7AC +- SYS___GETWC_A = 0x7AB +- SYS___GLOB_A = 0x7DE +- SYS___GMTIME_A = 0x7AF +- SYS___GMTIME_R_A = 0x7B0 +- SYS___INET_PTON_A = 0x7BC +- SYS___J0_H = 0x7EE +- SYS___J1_H = 0x7EF +- SYS___JN_H = 0x7F0 +- SYS___LOCALTIME_A = 0x7B1 +- SYS___LOCALTIME_R_A = 0x7B2 +- SYS___MALLOC24 = 0x7FC +- SYS___MALLOC31 = 0x7FD +- SYS___MKTIME_A = 0x7B3 +- SYS___MODFF_H = 0x7F8 +- SYS___MODFL_H = 0x7F9 +- SYS___MODF_H = 0x7EC +- SYS___OPENDIR_A = 0x7C2 +- SYS___OSNAME = 0x7E0 +- SYS___PUTWCHAR_A = 0x7A7 +- SYS___PUTWC_A = 0x7A6 +- SYS___READDIR_A = 0x7C3 +- SYS___STRTOLL_A = 0x7A3 +- SYS___STRTOULL_A = 0x7A4 +- SYS___SYSLOG_A = 0x7BD +- SYS___TZZNA = 0x7B4 +- SYS___UNGETWC_A = 0x7A9 +- SYS___UTIME_A = 0x7A0 +- SYS___VFPRINTF2_A = 0x7E7 +- SYS___VPRINTF2_A = 0x7E8 +- SYS___VSPRINTF2_A = 0x7E9 +- SYS___VSWPRNTF2_A = 0x7BB +- SYS___WCSTOD_A = 0x7D9 +- SYS___WCSTOL_A = 0x7DA +- SYS___WCSTOUL_A = 0x7DB +- SYS___WCTOB_A = 0x7E5 +- SYS___Y0_H = 0x7F1 +- SYS___Y1_H = 0x7F2 +- SYS___YN_H = 0x7F3 +- SYS_____OPENDIR2_A = 0x7BF +- SYS_____OSNAME_A = 0x7E1 +- SYS_____READDIR2_A = 0x7C0 +- SYS_DLCLOSE = 0x8DF +- SYS_DLERROR = 0x8E0 +- SYS_DLOPEN = 0x8DD +- SYS_DLSYM = 0x8DE +- SYS_FLOCKFILE = 0x8D3 +- SYS_FTRYLOCKFILE = 0x8D4 +- SYS_FUNLOCKFILE = 0x8D5 +- SYS_GETCHAR_UNLOCKED = 0x8D7 +- SYS_GETC_UNLOCKED = 0x8D6 +- SYS_PUTCHAR_UNLOCKED = 0x8D9 +- SYS_PUTC_UNLOCKED = 0x8D8 +- SYS_SNPRINTF = 0x8DA +- SYS_VSNPRINTF = 0x8DB +- SYS_WCSCSPN = 0x08B +- SYS_WCSLEN = 0x08C +- SYS_WCSNCAT = 0x08D +- SYS_WCSNCMP = 0x08A +- SYS_WCSNCPY = 0x08F +- SYS_WCSSPN = 0x08E +- SYS___ABSF_H = 0x8E7 +- SYS___ABSL_H = 0x8E8 +- SYS___ABS_H = 0x8E6 +- SYS___ACOSF_H = 0x8EA +- SYS___ACOSH_H = 0x8EC +- SYS___ACOSL_H = 0x8EB +- SYS___ACOS_H = 0x8E9 +- SYS___ASINF_H = 0x8EE +- SYS___ASINH_H = 0x8F0 +- SYS___ASINL_H = 0x8EF +- SYS___ASIN_H = 0x8ED +- SYS___ATAN2F_H = 0x8F8 +- SYS___ATAN2L_H = 0x8F9 +- SYS___ATAN2_H = 0x8F7 +- SYS___ATANF_H = 0x8F2 +- SYS___ATANHF_H = 0x8F5 +- SYS___ATANHL_H = 0x8F6 +- SYS___ATANH_H = 0x8F4 +- SYS___ATANL_H = 0x8F3 +- SYS___ATAN_H = 0x8F1 +- SYS___CBRT_H = 0x8FA +- SYS___COPYSIGNF_H = 0x8FB +- SYS___COPYSIGNL_H = 0x8FC +- SYS___COSF_H = 0x8FE +- SYS___COSL_H = 0x8FF +- SYS___COS_H = 0x8FD +- SYS___DLERROR_A = 0x8D2 +- SYS___DLOPEN_A = 0x8D0 +- SYS___DLSYM_A = 0x8D1 +- SYS___GETUTXENT_A = 0x8C6 +- SYS___GETUTXID_A = 0x8C7 +- SYS___GETUTXLINE_A = 0x8C8 +- SYS___ITOA = 0x8AA +- SYS___ITOA_A = 0x8B0 +- SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 +- SYS___LE_MSG_ADD_INSERT = 0x8A6 +- SYS___LE_MSG_GET = 0x8A7 +- SYS___LE_MSG_GET_AND_WRITE = 0x8A8 +- SYS___LE_MSG_WRITE = 0x8A9 +- SYS___LLTOA = 0x8AE +- SYS___LLTOA_A = 0x8B4 +- SYS___LTOA = 0x8AC +- SYS___LTOA_A = 0x8B2 +- SYS___PUTCHAR_UNLOCKED_A = 0x8CC +- SYS___PUTC_UNLOCKED_A = 0x8CB +- SYS___PUTUTXLINE_A = 0x8C9 +- SYS___RESET_EXCEPTION_HANDLER = 0x8E3 +- SYS___REXEC_A = 0x8C4 +- SYS___REXEC_AF_A = 0x8C5 +- SYS___SET_EXCEPTION_HANDLER = 0x8E2 +- SYS___SNPRINTF_A = 0x8CD +- SYS___SUPERKILL = 0x8A4 +- SYS___TCGETATTR_A = 0x8A1 +- SYS___TCSETATTR_A = 0x8A2 +- SYS___ULLTOA = 0x8AF +- SYS___ULLTOA_A = 0x8B5 +- SYS___ULTOA = 0x8AD +- SYS___ULTOA_A = 0x8B3 +- SYS___UTOA = 0x8AB +- SYS___UTOA_A = 0x8B1 +- SYS___VHM_EVENT = 0x8E4 +- SYS___VSNPRINTF_A = 0x8CE +- SYS_____GETENV_A = 0x8C3 +- SYS_____UTMPXNAME_A = 0x8CA +- SYS_CACOSH = 0x9A0 +- SYS_CACOSHF = 0x9A3 +- SYS_CACOSHL = 0x9A6 +- SYS_CARG = 0x9A9 +- SYS_CARGF = 0x9AC +- SYS_CARGL = 0x9AF +- SYS_CASIN = 0x9B2 +- SYS_CASINF = 0x9B5 +- SYS_CASINH = 0x9BB +- SYS_CASINHF = 0x9BE +- SYS_CASINHL = 0x9C1 +- SYS_CASINL = 0x9B8 +- SYS_CATAN = 0x9C4 +- SYS_CATANF = 0x9C7 +- SYS_CATANH = 0x9CD +- SYS_CATANHF = 0x9D0 +- SYS_CATANHL = 0x9D3 +- SYS_CATANL = 0x9CA +- SYS_CCOS = 0x9D6 +- SYS_CCOSF = 0x9D9 +- SYS_CCOSH = 0x9DF +- SYS_CCOSHF = 0x9E2 +- SYS_CCOSHL = 0x9E5 +- SYS_CCOSL = 0x9DC +- SYS_CEXP = 0x9E8 +- SYS_CEXPF = 0x9EB +- SYS_CEXPL = 0x9EE +- SYS_CIMAG = 0x9F1 +- SYS_CIMAGF = 0x9F4 +- SYS_CIMAGL = 0x9F7 +- SYS_CLOGF = 0x9FD +- SYS_MEMCHR = 0x09B +- SYS_MEMCMP = 0x09A +- SYS_STRCOLL = 0x09C +- SYS_STRNCMP = 0x09D +- SYS_STRRCHR = 0x09F +- SYS_STRXFRM = 0x09E +- SYS___CACOSHF_B = 0x9A4 +- SYS___CACOSHF_H = 0x9A5 +- SYS___CACOSHL_B = 0x9A7 +- SYS___CACOSHL_H = 0x9A8 +- SYS___CACOSH_B = 0x9A1 +- SYS___CACOSH_H = 0x9A2 +- SYS___CARGF_B = 0x9AD +- SYS___CARGF_H = 0x9AE +- SYS___CARGL_B = 0x9B0 +- SYS___CARGL_H = 0x9B1 +- SYS___CARG_B = 0x9AA +- SYS___CARG_H = 0x9AB +- SYS___CASINF_B = 0x9B6 +- SYS___CASINF_H = 0x9B7 +- SYS___CASINHF_B = 0x9BF +- SYS___CASINHF_H = 0x9C0 +- SYS___CASINHL_B = 0x9C2 +- SYS___CASINHL_H = 0x9C3 +- SYS___CASINH_B = 0x9BC +- SYS___CASINH_H = 0x9BD +- SYS___CASINL_B = 0x9B9 +- SYS___CASINL_H = 0x9BA +- SYS___CASIN_B = 0x9B3 +- SYS___CASIN_H = 0x9B4 +- SYS___CATANF_B = 0x9C8 +- SYS___CATANF_H = 0x9C9 +- SYS___CATANHF_B = 0x9D1 +- SYS___CATANHF_H = 0x9D2 +- SYS___CATANHL_B = 0x9D4 +- SYS___CATANHL_H = 0x9D5 +- SYS___CATANH_B = 0x9CE +- SYS___CATANH_H = 0x9CF +- SYS___CATANL_B = 0x9CB +- SYS___CATANL_H = 0x9CC +- SYS___CATAN_B = 0x9C5 +- SYS___CATAN_H = 0x9C6 +- SYS___CCOSF_B = 0x9DA +- SYS___CCOSF_H = 0x9DB +- SYS___CCOSHF_B = 0x9E3 +- SYS___CCOSHF_H = 0x9E4 +- SYS___CCOSHL_B = 0x9E6 +- SYS___CCOSHL_H = 0x9E7 +- SYS___CCOSH_B = 0x9E0 +- SYS___CCOSH_H = 0x9E1 +- SYS___CCOSL_B = 0x9DD +- SYS___CCOSL_H = 0x9DE +- SYS___CCOS_B = 0x9D7 +- SYS___CCOS_H = 0x9D8 +- SYS___CEXPF_B = 0x9EC +- SYS___CEXPF_H = 0x9ED +- SYS___CEXPL_B = 0x9EF +- SYS___CEXPL_H = 0x9F0 +- SYS___CEXP_B = 0x9E9 +- SYS___CEXP_H = 0x9EA +- SYS___CIMAGF_B = 0x9F5 +- SYS___CIMAGF_H = 0x9F6 +- SYS___CIMAGL_B = 0x9F8 +- SYS___CIMAGL_H = 0x9F9 +- SYS___CIMAG_B = 0x9F2 +- SYS___CIMAG_H = 0x9F3 +- SYS___CLOG = 0x9FA +- SYS___CLOGF_B = 0x9FE +- SYS___CLOGF_H = 0x9FF +- SYS___CLOG_B = 0x9FB +- SYS___CLOG_H = 0x9FC +- SYS_ISWCTYPE = 0x10C +- SYS_ISWXDIGI = 0x10A +- SYS_ISWXDIGIT = 0x10A +- SYS_MBSINIT = 0x10F +- SYS_TOWLOWER = 0x10D +- SYS_TOWUPPER = 0x10E +- SYS_WCTYPE = 0x10B +- SYS_WCSSTR = 0x11B +- SYS___RPMTCH = 0x11A +- SYS_WCSTOD = 0x12E +- SYS_WCSTOK = 0x12C +- SYS_WCSTOL = 0x12D +- SYS_WCSTOUL = 0x12F +- SYS_FGETWC = 0x13C +- SYS_FGETWS = 0x13D +- SYS_FPUTWC = 0x13E +- SYS_FPUTWS = 0x13F +- SYS_REGERROR = 0x13B +- SYS_REGFREE = 0x13A +- SYS_COLLEQUIV = 0x14F +- SYS_COLLTOSTR = 0x14E +- SYS_ISMCCOLLEL = 0x14C +- SYS_STRTOCOLL = 0x14D +- SYS_DLLFREE = 0x16F +- SYS_DLLQUERYFN = 0x16D +- SYS_DLLQUERYVAR = 0x16E +- SYS_GETMCCOLL = 0x16A +- SYS_GETWMCCOLL = 0x16B +- SYS___ERR2AD = 0x16C +- SYS_CFSETOSPEED = 0x17A +- SYS_CHDIR = 0x17B +- SYS_CHMOD = 0x17C +- SYS_CHOWN = 0x17D +- SYS_CLOSE = 0x17E +- SYS_CLOSEDIR = 0x17F +- SYS_LOG = 0x017 +- SYS_COSH = 0x018 +- SYS_FCHMOD = 0x18A +- SYS_FCHOWN = 0x18B +- SYS_FCNTL = 0x18C +- SYS_FILENO = 0x18D +- SYS_FORK = 0x18E +- SYS_FPATHCONF = 0x18F +- SYS_GETLOGIN = 0x19A +- SYS_GETPGRP = 0x19C +- SYS_GETPID = 0x19D +- SYS_GETPPID = 0x19E +- SYS_GETPWNAM = 0x19F +- SYS_TANH = 0x019 +- SYS_W_GETMNTENT = 0x19B +- SYS_POW = 0x020 +- SYS_PTHREAD_SELF = 0x20A +- SYS_PTHREAD_SETINTR = 0x20B +- SYS_PTHREAD_SETINTRTYPE = 0x20C +- SYS_PTHREAD_SETSPECIFIC = 0x20D +- SYS_PTHREAD_TESTINTR = 0x20E +- SYS_PTHREAD_YIELD = 0x20F +- SYS_SQRT = 0x021 +- SYS_FLOOR = 0x022 +- SYS_J1 = 0x023 +- SYS_WCSPBRK = 0x23F +- SYS_BSEARCH = 0x24C +- SYS_FABS = 0x024 +- SYS_GETENV = 0x24A +- SYS_LDIV = 0x24D +- SYS_SYSTEM = 0x24B +- SYS_FMOD = 0x025 +- SYS___RETHROW = 0x25F +- SYS___THROW = 0x25E +- SYS_J0 = 0x026 +- SYS_PUTENV = 0x26A +- SYS___GETENV = 0x26F +- SYS_SEMCTL = 0x27A +- SYS_SEMGET = 0x27B +- SYS_SEMOP = 0x27C +- SYS_SHMAT = 0x27D +- SYS_SHMCTL = 0x27E +- SYS_SHMDT = 0x27F +- SYS_YN = 0x027 +- SYS_JN = 0x028 +- SYS_SIGALTSTACK = 0x28A +- SYS_SIGHOLD = 0x28B +- SYS_SIGIGNORE = 0x28C +- SYS_SIGINTERRUPT = 0x28D +- SYS_SIGPAUSE = 0x28E +- SYS_SIGRELSE = 0x28F +- SYS_GETOPT = 0x29A +- SYS_GETSUBOPT = 0x29D +- SYS_LCHOWN = 0x29B +- SYS_SETPGRP = 0x29E +- SYS_TRUNCATE = 0x29C +- SYS_Y0 = 0x029 +- SYS___GDERR = 0x29F +- SYS_ISALPHA = 0x030 +- SYS_VFORK = 0x30F +- SYS__LONGJMP = 0x30D +- SYS__SETJMP = 0x30E +- SYS_GLOB = 0x31A +- SYS_GLOBFREE = 0x31B +- SYS_ISALNUM = 0x031 +- SYS_PUTW = 0x31C +- SYS_SEEKDIR = 0x31D +- SYS_TELLDIR = 0x31E +- SYS_TEMPNAM = 0x31F +- SYS_GETTIMEOFDAY_R = 0x32E +- SYS_ISLOWER = 0x032 +- SYS_LGAMMA = 0x32C +- SYS_REMAINDER = 0x32A +- SYS_SCALB = 0x32B +- SYS_SYNC = 0x32F +- SYS_TTYSLOT = 0x32D +- SYS_ENDPROTOENT = 0x33A +- SYS_ENDSERVENT = 0x33B +- SYS_GETHOSTBYADDR = 0x33D +- SYS_GETHOSTBYADDR_R = 0x33C +- SYS_GETHOSTBYNAME = 0x33F +- SYS_GETHOSTBYNAME_R = 0x33E +- SYS_ISCNTRL = 0x033 +- SYS_GETSERVBYNAME = 0x34A +- SYS_GETSERVBYPORT = 0x34B +- SYS_GETSERVENT = 0x34C +- SYS_GETSOCKNAME = 0x34D +- SYS_GETSOCKOPT = 0x34E +- SYS_INET_ADDR = 0x34F +- SYS_ISDIGIT = 0x034 +- SYS_ISGRAPH = 0x035 +- SYS_SELECT = 0x35B +- SYS_SELECTEX = 0x35C +- SYS_SEND = 0x35D +- SYS_SENDTO = 0x35F +- SYS_CHROOT = 0x36A +- SYS_ISNAN = 0x36D +- SYS_ISUPPER = 0x036 +- SYS_ULIMIT = 0x36C +- SYS_UTIMES = 0x36E +- SYS_W_STATVFS = 0x36B +- SYS___H_ERRNO = 0x36F +- SYS_GRANTPT = 0x37A +- SYS_ISPRINT = 0x037 +- SYS_TCGETSID = 0x37C +- SYS_UNLOCKPT = 0x37B +- SYS___TCGETCP = 0x37D +- SYS___TCSETCP = 0x37E +- SYS___TCSETTABLES = 0x37F +- SYS_ISPUNCT = 0x038 +- SYS_NLIST = 0x38C +- SYS___IPDBCS = 0x38D +- SYS___IPDSPX = 0x38E +- SYS___IPMSGC = 0x38F +- SYS___STHOSTENT = 0x38B +- SYS___STSERVENT = 0x38A +- SYS_ISSPACE = 0x039 +- SYS_COS = 0x040 +- SYS_T_ALLOC = 0x40A +- SYS_T_BIND = 0x40B +- SYS_T_CLOSE = 0x40C +- SYS_T_CONNECT = 0x40D +- SYS_T_ERROR = 0x40E +- SYS_T_FREE = 0x40F +- SYS_TAN = 0x041 +- SYS_T_RCVREL = 0x41A +- SYS_T_RCVUDATA = 0x41B +- SYS_T_RCVUDERR = 0x41C +- SYS_T_SND = 0x41D +- SYS_T_SNDDIS = 0x41E +- SYS_T_SNDREL = 0x41F +- SYS_GETPMSG = 0x42A +- SYS_ISASTREAM = 0x42B +- SYS_PUTMSG = 0x42C +- SYS_PUTPMSG = 0x42D +- SYS_SINH = 0x042 +- SYS___ISPOSIXON = 0x42E +- SYS___OPENMVSREL = 0x42F +- SYS_ACOS = 0x043 +- SYS_ATAN = 0x044 +- SYS_ATAN2 = 0x045 +- SYS_FTELL = 0x046 +- SYS_FGETPOS = 0x047 +- SYS_SOCK_DEBUG = 0x47A +- SYS_SOCK_DO_TESTSTOR = 0x47D +- SYS_TAKESOCKET = 0x47E +- SYS___SERVER_INIT = 0x47F +- SYS_FSEEK = 0x048 +- SYS___IPHOST = 0x48B +- SYS___IPNODE = 0x48C +- SYS___SERVER_CLASSIFY_CREATE = 0x48D +- SYS___SERVER_CLASSIFY_DESTROY = 0x48E +- SYS___SERVER_CLASSIFY_RESET = 0x48F +- SYS___SMF_RECORD = 0x48A +- SYS_FSETPOS = 0x049 +- SYS___FNWSA = 0x49B +- SYS___SPAWN2 = 0x49D +- SYS___SPAWNP2 = 0x49E +- SYS_ATOF = 0x050 +- SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A +- SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B +- SYS_PTHREAD_RWLOCK_DESTROY = 0x50C +- SYS_PTHREAD_RWLOCK_INIT = 0x50D +- SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E +- SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F +- SYS_ATOI = 0x051 +- SYS___FP_CLASS = 0x51D +- SYS___FP_CLR_FLAG = 0x51A +- SYS___FP_FINITE = 0x51E +- SYS___FP_ISNAN = 0x51F +- SYS___FP_RAISE_XCP = 0x51C +- SYS___FP_READ_FLAG = 0x51B +- SYS_RAND = 0x052 +- SYS_SIGTIMEDWAIT = 0x52D +- SYS_SIGWAITINFO = 0x52E +- SYS___CHKBFP = 0x52F +- SYS___FPC_RS = 0x52C +- SYS___FPC_RW = 0x52A +- SYS___FPC_SM = 0x52B +- SYS_STRTOD = 0x053 +- SYS_STRTOL = 0x054 +- SYS_STRTOUL = 0x055 +- SYS_MALLOC = 0x056 +- SYS_SRAND = 0x057 +- SYS_CALLOC = 0x058 +- SYS_FREE = 0x059 +- SYS___OSENV = 0x59F +- SYS___W_PIOCTL = 0x59E +- SYS_LONGJMP = 0x060 +- SYS___FLOORF_B = 0x60A +- SYS___FLOORL_B = 0x60B +- SYS___FREXPF_B = 0x60C +- SYS___FREXPL_B = 0x60D +- SYS___LDEXPF_B = 0x60E +- SYS___LDEXPL_B = 0x60F +- SYS_SIGNAL = 0x061 +- SYS___ATAN2F_B = 0x61A +- SYS___ATAN2L_B = 0x61B +- SYS___COSHF_B = 0x61C +- SYS___COSHL_B = 0x61D +- SYS___EXPF_B = 0x61E +- SYS___EXPL_B = 0x61F +- SYS_TMPNAM = 0x062 +- SYS___ABSF_B = 0x62A +- SYS___ABSL_B = 0x62C +- SYS___ABS_B = 0x62B +- SYS___FMODF_B = 0x62D +- SYS___FMODL_B = 0x62E +- SYS___MODFF_B = 0x62F +- SYS_ATANL = 0x63A +- SYS_CEILF = 0x63B +- SYS_CEILL = 0x63C +- SYS_COSF = 0x63D +- SYS_COSHF = 0x63F +- SYS_COSL = 0x63E +- SYS_REMOVE = 0x063 +- SYS_POWL = 0x64A +- SYS_RENAME = 0x064 +- SYS_SINF = 0x64B +- SYS_SINHF = 0x64F +- SYS_SINL = 0x64C +- SYS_SQRTF = 0x64D +- SYS_SQRTL = 0x64E +- SYS_BTOWC = 0x65F +- SYS_FREXPL = 0x65A +- SYS_LDEXPF = 0x65B +- SYS_LDEXPL = 0x65C +- SYS_MODFF = 0x65D +- SYS_MODFL = 0x65E +- SYS_TMPFILE = 0x065 +- SYS_FREOPEN = 0x066 +- SYS___CHARMAP_INIT_A = 0x66E +- SYS___GETHOSTBYADDR_R_A = 0x66C +- SYS___GETHOSTBYNAME_A = 0x66A +- SYS___GETHOSTBYNAME_R_A = 0x66D +- SYS___MBLEN_A = 0x66F +- SYS___RES_INIT_A = 0x66B +- SYS_FCLOSE = 0x067 +- SYS___GETGRGID_R_A = 0x67D +- SYS___WCSTOMBS_A = 0x67A +- SYS___WCSTOMBS_STD_A = 0x67B +- SYS___WCSWIDTH_A = 0x67C +- SYS___WCSWIDTH_ASIA = 0x67F +- SYS___WCSWIDTH_STD_A = 0x67E +- SYS_FFLUSH = 0x068 +- SYS___GETLOGIN_R_A = 0x68E +- SYS___GETPWNAM_R_A = 0x68C +- SYS___GETPWUID_R_A = 0x68D +- SYS___TTYNAME_R_A = 0x68F +- SYS___WCWIDTH_ASIA = 0x68B +- SYS___WCWIDTH_STD_A = 0x68A +- SYS_FOPEN = 0x069 +- SYS___REGEXEC_A = 0x69A +- SYS___REGEXEC_STD_A = 0x69B +- SYS___REGFREE_A = 0x69C +- SYS___REGFREE_STD_A = 0x69D +- SYS___STRCOLL_A = 0x69E +- SYS___STRCOLL_C_A = 0x69F +- SYS_SCANF = 0x070 +- SYS___A64L_A = 0x70C +- SYS___ECVT_A = 0x70D +- SYS___FCVT_A = 0x70E +- SYS___GCVT_A = 0x70F +- SYS___STRTOUL_A = 0x70A +- SYS_____AE_CORRESTBL_QUERY_A = 0x70B +- SYS_SPRINTF = 0x071 +- SYS___ACCESS_A = 0x71F +- SYS___CATOPEN_A = 0x71E +- SYS___GETOPT_A = 0x71D +- SYS___REALPATH_A = 0x71A +- SYS___SETENV_A = 0x71B +- SYS___SYSTEM_A = 0x71C +- SYS_FGETC = 0x072 +- SYS___GAI_STRERROR_A = 0x72F +- SYS___RMDIR_A = 0x72A +- SYS___STATVFS_A = 0x72B +- SYS___SYMLINK_A = 0x72C +- SYS___TRUNCATE_A = 0x72D +- SYS___UNLINK_A = 0x72E +- SYS_VFPRINTF = 0x073 +- SYS___ISSPACE_A = 0x73A +- SYS___ISUPPER_A = 0x73B +- SYS___ISWALNUM_A = 0x73F +- SYS___ISXDIGIT_A = 0x73C +- SYS___TOLOWER_A = 0x73D +- SYS___TOUPPER_A = 0x73E +- SYS_VPRINTF = 0x074 +- SYS___CONFSTR_A = 0x74B +- SYS___FDOPEN_A = 0x74E +- SYS___FLDATA_A = 0x74F +- SYS___FTOK_A = 0x74C +- SYS___ISWXDIGIT_A = 0x74A +- SYS___MKTEMP_A = 0x74D +- SYS_VSPRINTF = 0x075 +- SYS___GETGRGID_A = 0x75A +- SYS___GETGRNAM_A = 0x75B +- SYS___GETGROUPSBYNAME_A = 0x75C +- SYS___GETHOSTENT_A = 0x75D +- SYS___GETHOSTNAME_A = 0x75E +- SYS___GETLOGIN_A = 0x75F +- SYS_GETC = 0x076 +- SYS___CREATEWORKUNIT_A = 0x76A +- SYS___CTERMID_A = 0x76B +- SYS___FMTMSG_A = 0x76C +- SYS___INITGROUPS_A = 0x76D +- SYS___MSGRCV_A = 0x76F +- SYS_____LOGIN_A = 0x76E +- SYS_FGETS = 0x077 +- SYS___STRCASECMP_A = 0x77B +- SYS___STRNCASECMP_A = 0x77C +- SYS___TTYNAME_A = 0x77D +- SYS___UNAME_A = 0x77E +- SYS___UTIMES_A = 0x77F +- SYS_____SERVER_PWU_A = 0x77A +- SYS_FPUTC = 0x078 +- SYS___CREAT_O_A = 0x78E +- SYS___ENVNA = 0x78F +- SYS___FREAD_A = 0x78A +- SYS___FWRITE_A = 0x78B +- SYS___ISASCII = 0x78D +- SYS___OPEN_O_A = 0x78C +- SYS_FPUTS = 0x079 +- SYS___ASCTIME_A = 0x79C +- SYS___CTIME_A = 0x79D +- SYS___GETDATE_A = 0x79E +- SYS___GETSERVBYPORT_A = 0x79A +- SYS___GETSERVENT_A = 0x79B +- SYS___TZSET_A = 0x79F +- SYS_ACL_FROM_TEXT = 0x80C +- SYS_ACL_SET_FD = 0x80A +- SYS_ACL_SET_FILE = 0x80B +- SYS_ACL_SORT = 0x80E +- SYS_ACL_TO_TEXT = 0x80D +- SYS_UNGETC = 0x080 +- SYS___SHUTDOWN_REGISTRATION = 0x80F +- SYS_FREAD = 0x081 +- SYS_FREEADDRINFO = 0x81A +- SYS_GAI_STRERROR = 0x81B +- SYS_REXEC_AF = 0x81C +- SYS___DYNALLOC_A = 0x81F +- SYS___POE = 0x81D +- SYS_WCSTOMBS = 0x082 +- SYS___INET_ADDR_A = 0x82F +- SYS___NLIST_A = 0x82A +- SYS_____TCGETCP_A = 0x82B +- SYS_____TCSETCP_A = 0x82C +- SYS_____W_PIOCTL_A = 0x82E +- SYS_MBTOWC = 0x083 +- SYS___CABEND = 0x83D +- SYS___LE_CIB_GET = 0x83E +- SYS___RECVMSG_A = 0x83B +- SYS___SENDMSG_A = 0x83A +- SYS___SET_LAA_FOR_JIT = 0x83F +- SYS_____LCHATTR_A = 0x83C +- SYS_WCTOMB = 0x084 +- SYS___CBRTL_B = 0x84A +- SYS___COPYSIGNF_B = 0x84B +- SYS___COPYSIGNL_B = 0x84C +- SYS___COTANF_B = 0x84D +- SYS___COTANL_B = 0x84F +- SYS___COTAN_B = 0x84E +- SYS_MBSTOWCS = 0x085 +- SYS___LOG1PL_B = 0x85A +- SYS___LOG2F_B = 0x85B +- SYS___LOG2L_B = 0x85D +- SYS___LOG2_B = 0x85C +- SYS___REMAINDERF_B = 0x85E +- SYS___REMAINDERL_B = 0x85F +- SYS_ACOSHF = 0x86E +- SYS_ACOSHL = 0x86F +- SYS_WCSCPY = 0x086 +- SYS___ERFCF_B = 0x86D +- SYS___ERFF_B = 0x86C +- SYS___LROUNDF_B = 0x86A +- SYS___LROUND_B = 0x86B +- SYS_COTANL = 0x87A +- SYS_EXP2F = 0x87B +- SYS_EXP2L = 0x87C +- SYS_EXPM1F = 0x87D +- SYS_EXPM1L = 0x87E +- SYS_FDIMF = 0x87F +- SYS_WCSCAT = 0x087 +- SYS___COTANL = 0x87A +- SYS_REMAINDERF = 0x88A +- SYS_REMAINDERL = 0x88B +- SYS_REMAINDF = 0x88A +- SYS_REMAINDL = 0x88B +- SYS_REMQUO = 0x88D +- SYS_REMQUOF = 0x88C +- SYS_REMQUOL = 0x88E +- SYS_TGAMMAF = 0x88F +- SYS_WCSCHR = 0x088 +- SYS_ERFCF = 0x89B +- SYS_ERFCL = 0x89C +- SYS_ERFL = 0x89A +- SYS_EXP2 = 0x89E +- SYS_WCSCMP = 0x089 +- SYS___EXP2_B = 0x89D +- SYS___FAR_JUMP = 0x89F +- SYS_ABS = 0x090 +- SYS___ERFCL_H = 0x90A +- SYS___EXPF_H = 0x90C +- SYS___EXPL_H = 0x90D +- SYS___EXPM1_H = 0x90E +- SYS___EXP_H = 0x90B +- SYS___FDIM_H = 0x90F +- SYS_DIV = 0x091 +- SYS___LOG2F_H = 0x91F +- SYS___LOG2_H = 0x91E +- SYS___LOGB_H = 0x91D +- SYS___LOGF_H = 0x91B +- SYS___LOGL_H = 0x91C +- SYS___LOG_H = 0x91A +- SYS_LABS = 0x092 +- SYS___POWL_H = 0x92A +- SYS___REMAINDER_H = 0x92B +- SYS___RINT_H = 0x92C +- SYS___SCALB_H = 0x92D +- SYS___SINF_H = 0x92F +- SYS___SIN_H = 0x92E +- SYS_STRNCPY = 0x093 +- SYS___TANHF_H = 0x93B +- SYS___TANHL_H = 0x93C +- SYS___TANH_H = 0x93A +- SYS___TGAMMAF_H = 0x93E +- SYS___TGAMMA_H = 0x93D +- SYS___TRUNC_H = 0x93F +- SYS_MEMCPY = 0x094 +- SYS_VFWSCANF = 0x94A +- SYS_VSWSCANF = 0x94E +- SYS_VWSCANF = 0x94C +- SYS_INET6_RTH_ADD = 0x95D +- SYS_INET6_RTH_INIT = 0x95C +- SYS_INET6_RTH_REVERSE = 0x95E +- SYS_INET6_RTH_SEGMENTS = 0x95F +- SYS_INET6_RTH_SPACE = 0x95B +- SYS_MEMMOVE = 0x095 +- SYS_WCSTOLD = 0x95A +- SYS_STRCPY = 0x096 +- SYS_STRCMP = 0x097 +- SYS_CABS = 0x98E +- SYS_STRCAT = 0x098 +- SYS___CABS_B = 0x98F +- SYS___POW_II = 0x98A +- SYS___POW_II_B = 0x98B +- SYS___POW_II_H = 0x98C +- SYS_CACOSF = 0x99A +- SYS_CACOSL = 0x99D +- SYS_STRNCAT = 0x099 +- SYS___CACOSF_B = 0x99B +- SYS___CACOSF_H = 0x99C +- SYS___CACOSL_B = 0x99E +- SYS___CACOSL_H = 0x99F +- SYS_ISWALPHA = 0x100 +- SYS_ISWBLANK = 0x101 +- SYS___ISWBLK = 0x101 +- SYS_ISWCNTRL = 0x102 +- SYS_ISWDIGIT = 0x103 +- SYS_ISWGRAPH = 0x104 +- SYS_ISWLOWER = 0x105 +- SYS_ISWPRINT = 0x106 +- SYS_ISWPUNCT = 0x107 +- SYS_ISWSPACE = 0x108 +- SYS_ISWUPPER = 0x109 +- SYS_WCTOB = 0x110 +- SYS_MBRLEN = 0x111 +- SYS_MBRTOWC = 0x112 +- SYS_MBSRTOWC = 0x113 +- SYS_MBSRTOWCS = 0x113 +- SYS_WCRTOMB = 0x114 +- SYS_WCSRTOMB = 0x115 +- SYS_WCSRTOMBS = 0x115 +- SYS___CSID = 0x116 +- SYS___WCSID = 0x117 +- SYS_STRPTIME = 0x118 +- SYS___STRPTM = 0x118 +- SYS_STRFMON = 0x119 +- SYS_WCSCOLL = 0x130 +- SYS_WCSXFRM = 0x131 +- SYS_WCSWIDTH = 0x132 +- SYS_WCWIDTH = 0x133 +- SYS_WCSFTIME = 0x134 +- SYS_SWPRINTF = 0x135 +- SYS_VSWPRINT = 0x136 +- SYS_VSWPRINTF = 0x136 +- SYS_SWSCANF = 0x137 +- SYS_REGCOMP = 0x138 +- SYS_REGEXEC = 0x139 +- SYS_GETWC = 0x140 +- SYS_GETWCHAR = 0x141 +- SYS_PUTWC = 0x142 +- SYS_PUTWCHAR = 0x143 +- SYS_UNGETWC = 0x144 +- SYS_ICONV_OPEN = 0x145 +- SYS_ICONV = 0x146 +- SYS_ICONV_CLOSE = 0x147 +- SYS_COLLRANGE = 0x150 +- SYS_CCLASS = 0x151 +- SYS_COLLORDER = 0x152 +- SYS___DEMANGLE = 0x154 +- SYS_FDOPEN = 0x155 +- SYS___ERRNO = 0x156 +- SYS___ERRNO2 = 0x157 +- SYS___TERROR = 0x158 +- SYS_MAXCOLL = 0x169 +- SYS_DLLLOAD = 0x170 +- SYS__EXIT = 0x174 +- SYS_ACCESS = 0x175 +- SYS_ALARM = 0x176 +- SYS_CFGETISPEED = 0x177 +- SYS_CFGETOSPEED = 0x178 +- SYS_CFSETISPEED = 0x179 +- SYS_CREAT = 0x180 +- SYS_CTERMID = 0x181 +- SYS_DUP = 0x182 +- SYS_DUP2 = 0x183 +- SYS_EXECL = 0x184 +- SYS_EXECLE = 0x185 +- SYS_EXECLP = 0x186 +- SYS_EXECV = 0x187 +- SYS_EXECVE = 0x188 +- SYS_EXECVP = 0x189 +- SYS_FSTAT = 0x190 +- SYS_FSYNC = 0x191 +- SYS_FTRUNCATE = 0x192 +- SYS_GETCWD = 0x193 +- SYS_GETEGID = 0x194 +- SYS_GETEUID = 0x195 +- SYS_GETGID = 0x196 +- SYS_GETGRGID = 0x197 +- SYS_GETGRNAM = 0x198 +- SYS_GETGROUPS = 0x199 +- SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 +- SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 +- SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 +- SYS_PTHREAD_MUTEX_INIT = 0x203 +- SYS_PTHREAD_MUTEX_DESTROY = 0x204 +- SYS_PTHREAD_MUTEX_LOCK = 0x205 +- SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 +- SYS_PTHREAD_MUTEX_UNLOCK = 0x207 +- SYS_PTHREAD_ONCE = 0x209 +- SYS_TW_OPEN = 0x210 +- SYS_TW_FCNTL = 0x211 +- SYS_PTHREAD_JOIN_D4_NP = 0x212 +- SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 +- SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 +- SYS_EXTLINK_NP = 0x215 +- SYS___PASSWD = 0x216 +- SYS_SETGROUPS = 0x217 +- SYS_INITGROUPS = 0x218 +- SYS_WCSRCHR = 0x240 +- SYS_SVC99 = 0x241 +- SYS___SVC99 = 0x241 +- SYS_WCSWCS = 0x242 +- SYS_LOCALECO = 0x243 +- SYS_LOCALECONV = 0x243 +- SYS___LIBREL = 0x244 +- SYS_RELEASE = 0x245 +- SYS___RLSE = 0x245 +- SYS_FLOCATE = 0x246 +- SYS___FLOCT = 0x246 +- SYS_FDELREC = 0x247 +- SYS___FDLREC = 0x247 +- SYS_FETCH = 0x248 +- SYS___FETCH = 0x248 +- SYS_QSORT = 0x249 +- SYS___CLEANUPCATCH = 0x260 +- SYS___CATCHMATCH = 0x261 +- SYS___CLEAN2UPCATCH = 0x262 +- SYS_GETPRIORITY = 0x270 +- SYS_NICE = 0x271 +- SYS_SETPRIORITY = 0x272 +- SYS_GETITIMER = 0x273 +- SYS_SETITIMER = 0x274 +- SYS_MSGCTL = 0x275 +- SYS_MSGGET = 0x276 +- SYS_MSGRCV = 0x277 +- SYS_MSGSND = 0x278 +- SYS_MSGXRCV = 0x279 +- SYS___MSGXR = 0x279 +- SYS_SHMGET = 0x280 +- SYS___GETIPC = 0x281 +- SYS_SETGRENT = 0x282 +- SYS_GETGRENT = 0x283 +- SYS_ENDGRENT = 0x284 +- SYS_SETPWENT = 0x285 +- SYS_GETPWENT = 0x286 +- SYS_ENDPWENT = 0x287 +- SYS_BSD_SIGNAL = 0x288 +- SYS_KILLPG = 0x289 +- SYS_SIGSET = 0x290 +- SYS_SIGSTACK = 0x291 +- SYS_GETRLIMIT = 0x292 +- SYS_SETRLIMIT = 0x293 +- SYS_GETRUSAGE = 0x294 +- SYS_MMAP = 0x295 +- SYS_MPROTECT = 0x296 +- SYS_MSYNC = 0x297 +- SYS_MUNMAP = 0x298 +- SYS_CONFSTR = 0x299 +- SYS___NDMTRM = 0x300 +- SYS_FTOK = 0x301 +- SYS_BASENAME = 0x302 +- SYS_DIRNAME = 0x303 +- SYS_GETDTABLESIZE = 0x304 +- SYS_MKSTEMP = 0x305 +- SYS_MKTEMP = 0x306 +- SYS_NFTW = 0x307 +- SYS_GETWD = 0x308 +- SYS_LOCKF = 0x309 +- SYS_WORDEXP = 0x310 +- SYS_WORDFREE = 0x311 +- SYS_GETPGID = 0x312 +- SYS_GETSID = 0x313 +- SYS___UTMPXNAME = 0x314 +- SYS_CUSERID = 0x315 +- SYS_GETPASS = 0x316 +- SYS_FNMATCH = 0x317 +- SYS_FTW = 0x318 +- SYS_GETW = 0x319 +- SYS_ACOSH = 0x320 +- SYS_ASINH = 0x321 +- SYS_ATANH = 0x322 +- SYS_CBRT = 0x323 +- SYS_EXPM1 = 0x324 +- SYS_ILOGB = 0x325 +- SYS_LOGB = 0x326 +- SYS_LOG1P = 0x327 +- SYS_NEXTAFTER = 0x328 +- SYS_RINT = 0x329 +- SYS_SPAWN = 0x330 +- SYS_SPAWNP = 0x331 +- SYS_GETLOGIN_UU = 0x332 +- SYS_ECVT = 0x333 +- SYS_FCVT = 0x334 +- SYS_GCVT = 0x335 +- SYS_ACCEPT = 0x336 +- SYS_BIND = 0x337 +- SYS_CONNECT = 0x338 +- SYS_ENDHOSTENT = 0x339 +- SYS_GETHOSTENT = 0x340 +- SYS_GETHOSTID = 0x341 +- SYS_GETHOSTNAME = 0x342 +- SYS_GETNETBYADDR = 0x343 +- SYS_GETNETBYNAME = 0x344 +- SYS_GETNETENT = 0x345 +- SYS_GETPEERNAME = 0x346 +- SYS_GETPROTOBYNAME = 0x347 +- SYS_GETPROTOBYNUMBER = 0x348 +- SYS_GETPROTOENT = 0x349 +- SYS_INET_LNAOF = 0x350 +- SYS_INET_MAKEADDR = 0x351 +- SYS_INET_NETOF = 0x352 +- SYS_INET_NETWORK = 0x353 +- SYS_INET_NTOA = 0x354 +- SYS_IOCTL = 0x355 +- SYS_LISTEN = 0x356 +- SYS_READV = 0x357 +- SYS_RECV = 0x358 +- SYS_RECVFROM = 0x359 +- SYS_SETHOSTENT = 0x360 +- SYS_SETNETENT = 0x361 +- SYS_SETPEER = 0x362 +- SYS_SETPROTOENT = 0x363 +- SYS_SETSERVENT = 0x364 +- SYS_SETSOCKOPT = 0x365 +- SYS_SHUTDOWN = 0x366 +- SYS_SOCKET = 0x367 +- SYS_SOCKETPAIR = 0x368 +- SYS_WRITEV = 0x369 +- SYS_ENDNETENT = 0x370 +- SYS_CLOSELOG = 0x371 +- SYS_OPENLOG = 0x372 +- SYS_SETLOGMASK = 0x373 +- SYS_SYSLOG = 0x374 +- SYS_PTSNAME = 0x375 +- SYS_SETREUID = 0x376 +- SYS_SETREGID = 0x377 +- SYS_REALPATH = 0x378 +- SYS___SIGNGAM = 0x379 +- SYS_POLL = 0x380 +- SYS_REXEC = 0x381 +- SYS___ISASCII2 = 0x382 +- SYS___TOASCII2 = 0x383 +- SYS_CHPRIORITY = 0x384 +- SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 +- SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 +- SYS_PTHREAD_SET_LIMIT_NP = 0x387 +- SYS___STNETENT = 0x388 +- SYS___STPROTOENT = 0x389 +- SYS___SELECT1 = 0x390 +- SYS_PTHREAD_SECURITY_NP = 0x391 +- SYS___CHECK_RESOURCE_AUTH_NP = 0x392 +- SYS___CONVERT_ID_NP = 0x393 +- SYS___OPENVMREL = 0x394 +- SYS_WMEMCHR = 0x395 +- SYS_WMEMCMP = 0x396 +- SYS_WMEMCPY = 0x397 +- SYS_WMEMMOVE = 0x398 +- SYS_WMEMSET = 0x399 +- SYS___FPUTWC = 0x400 +- SYS___PUTWC = 0x401 +- SYS___PWCHAR = 0x402 +- SYS___WCSFTM = 0x403 +- SYS___WCSTOK = 0x404 +- SYS___WCWDTH = 0x405 +- SYS_T_ACCEPT = 0x409 +- SYS_T_GETINFO = 0x410 +- SYS_T_GETPROTADDR = 0x411 +- SYS_T_GETSTATE = 0x412 +- SYS_T_LISTEN = 0x413 +- SYS_T_LOOK = 0x414 +- SYS_T_OPEN = 0x415 +- SYS_T_OPTMGMT = 0x416 +- SYS_T_RCV = 0x417 +- SYS_T_RCVCONNECT = 0x418 +- SYS_T_RCVDIS = 0x419 +- SYS_T_SNDUDATA = 0x420 +- SYS_T_STRERROR = 0x421 +- SYS_T_SYNC = 0x422 +- SYS_T_UNBIND = 0x423 +- SYS___T_ERRNO = 0x424 +- SYS___RECVMSG2 = 0x425 +- SYS___SENDMSG2 = 0x426 +- SYS_FATTACH = 0x427 +- SYS_FDETACH = 0x428 +- SYS_GETMSG = 0x429 +- SYS_GETCONTEXT = 0x430 +- SYS_SETCONTEXT = 0x431 +- SYS_MAKECONTEXT = 0x432 +- SYS_SWAPCONTEXT = 0x433 +- SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 +- SYS_GETCLIENTID = 0x470 +- SYS___GETCLIENTID = 0x471 +- SYS_GETSTABLESIZE = 0x472 +- SYS_GETIBMOPT = 0x473 +- SYS_GETIBMSOCKOPT = 0x474 +- SYS_GIVESOCKET = 0x475 +- SYS_IBMSFLUSH = 0x476 +- SYS_MAXDESC = 0x477 +- SYS_SETIBMOPT = 0x478 +- SYS_SETIBMSOCKOPT = 0x479 +- SYS___SERVER_PWU = 0x480 +- SYS_PTHREAD_TAG_NP = 0x481 +- SYS___CONSOLE = 0x482 +- SYS___WSINIT = 0x483 +- SYS___IPTCPN = 0x489 +- SYS___SERVER_CLASSIFY = 0x490 +- SYS___HEAPRPT = 0x496 +- SYS___ISBFP = 0x500 +- SYS___FP_CAST = 0x501 +- SYS___CERTIFICATE = 0x502 +- SYS_SEND_FILE = 0x503 +- SYS_AIO_CANCEL = 0x504 +- SYS_AIO_ERROR = 0x505 +- SYS_AIO_READ = 0x506 +- SYS_AIO_RETURN = 0x507 +- SYS_AIO_SUSPEND = 0x508 +- SYS_AIO_WRITE = 0x509 +- SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 +- SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 +- SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 +- SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 +- SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 +- SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 +- SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 +- SYS___CTTBL = 0x517 +- SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 +- SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 +- SYS___FP_UNORDERED = 0x520 +- SYS___FP_READ_RND = 0x521 +- SYS___FP_READ_RND_B = 0x522 +- SYS___FP_SWAP_RND = 0x523 +- SYS___FP_SWAP_RND_B = 0x524 +- SYS___FP_LEVEL = 0x525 +- SYS___FP_BTOH = 0x526 +- SYS___FP_HTOB = 0x527 +- SYS___FPC_RD = 0x528 +- SYS___FPC_WR = 0x529 +- SYS_PTHREAD_SETCANCELTYPE = 0x600 +- SYS_PTHREAD_TESTCANCEL = 0x601 +- SYS___ATANF_B = 0x602 +- SYS___ATANL_B = 0x603 +- SYS___CEILF_B = 0x604 +- SYS___CEILL_B = 0x605 +- SYS___COSF_B = 0x606 +- SYS___COSL_B = 0x607 +- SYS___FABSF_B = 0x608 +- SYS___FABSL_B = 0x609 +- SYS___SINF_B = 0x610 +- SYS___SINL_B = 0x611 +- SYS___TANF_B = 0x612 +- SYS___TANL_B = 0x613 +- SYS___TANHF_B = 0x614 +- SYS___TANHL_B = 0x615 +- SYS___ACOSF_B = 0x616 +- SYS___ACOSL_B = 0x617 +- SYS___ASINF_B = 0x618 +- SYS___ASINL_B = 0x619 +- SYS___LOGF_B = 0x620 +- SYS___LOGL_B = 0x621 +- SYS___LOG10F_B = 0x622 +- SYS___LOG10L_B = 0x623 +- SYS___POWF_B = 0x624 +- SYS___POWL_B = 0x625 +- SYS___SINHF_B = 0x626 +- SYS___SINHL_B = 0x627 +- SYS___SQRTF_B = 0x628 +- SYS___SQRTL_B = 0x629 +- SYS___MODFL_B = 0x630 +- SYS_ABSF = 0x631 +- SYS_ABSL = 0x632 +- SYS_ACOSF = 0x633 +- SYS_ACOSL = 0x634 +- SYS_ASINF = 0x635 +- SYS_ASINL = 0x636 +- SYS_ATAN2F = 0x637 +- SYS_ATAN2L = 0x638 +- SYS_ATANF = 0x639 +- SYS_COSHL = 0x640 +- SYS_EXPF = 0x641 +- SYS_EXPL = 0x642 +- SYS_TANHF = 0x643 +- SYS_TANHL = 0x644 +- SYS_LOG10F = 0x645 +- SYS_LOG10L = 0x646 +- SYS_LOGF = 0x647 +- SYS_LOGL = 0x648 +- SYS_POWF = 0x649 +- SYS_SINHL = 0x650 +- SYS_TANF = 0x651 +- SYS_TANL = 0x652 +- SYS_FABSF = 0x653 +- SYS_FABSL = 0x654 +- SYS_FLOORF = 0x655 +- SYS_FLOORL = 0x656 +- SYS_FMODF = 0x657 +- SYS_FMODL = 0x658 +- SYS_FREXPF = 0x659 +- SYS___CHATTR = 0x660 +- SYS___FCHATTR = 0x661 +- SYS___TOCCSID = 0x662 +- SYS___CSNAMETYPE = 0x663 +- SYS___TOCSNAME = 0x664 +- SYS___CCSIDTYPE = 0x665 +- SYS___AE_CORRESTBL_QUERY = 0x666 +- SYS___AE_AUTOCONVERT_STATE = 0x667 +- SYS_DN_FIND = 0x668 +- SYS___GETHOSTBYADDR_A = 0x669 +- SYS___MBLEN_SB_A = 0x670 +- SYS___MBLEN_STD_A = 0x671 +- SYS___MBLEN_UTF = 0x672 +- SYS___MBSTOWCS_A = 0x673 +- SYS___MBSTOWCS_STD_A = 0x674 +- SYS___MBTOWC_A = 0x675 +- SYS___MBTOWC_ISO1 = 0x676 +- SYS___MBTOWC_SBCS = 0x677 +- SYS___MBTOWC_MBCS = 0x678 +- SYS___MBTOWC_UTF = 0x679 +- SYS___CSID_A = 0x680 +- SYS___CSID_STD_A = 0x681 +- SYS___WCSID_A = 0x682 +- SYS___WCSID_STD_A = 0x683 +- SYS___WCTOMB_A = 0x684 +- SYS___WCTOMB_ISO1 = 0x685 +- SYS___WCTOMB_STD_A = 0x686 +- SYS___WCTOMB_UTF = 0x687 +- SYS___WCWIDTH_A = 0x688 +- SYS___GETGRNAM_R_A = 0x689 +- SYS___READDIR_R_A = 0x690 +- SYS___E2A_S = 0x691 +- SYS___FNMATCH_A = 0x692 +- SYS___FNMATCH_C_A = 0x693 +- SYS___EXECL_A = 0x694 +- SYS___FNMATCH_STD_A = 0x695 +- SYS___REGCOMP_A = 0x696 +- SYS___REGCOMP_STD_A = 0x697 +- SYS___REGERROR_A = 0x698 +- SYS___REGERROR_STD_A = 0x699 +- SYS___SWPRINTF_A = 0x700 +- SYS___FSCANF_A = 0x701 +- SYS___SCANF_A = 0x702 +- SYS___SSCANF_A = 0x703 +- SYS___SWSCANF_A = 0x704 +- SYS___ATOF_A = 0x705 +- SYS___ATOI_A = 0x706 +- SYS___ATOL_A = 0x707 +- SYS___STRTOD_A = 0x708 +- SYS___STRTOL_A = 0x709 +- SYS___L64A_A = 0x710 +- SYS___STRERROR_A = 0x711 +- SYS___PERROR_A = 0x712 +- SYS___FETCH_A = 0x713 +- SYS___GETENV_A = 0x714 +- SYS___MKSTEMP_A = 0x717 +- SYS___PTSNAME_A = 0x718 +- SYS___PUTENV_A = 0x719 +- SYS___CHDIR_A = 0x720 +- SYS___CHOWN_A = 0x721 +- SYS___CHROOT_A = 0x722 +- SYS___GETCWD_A = 0x723 +- SYS___GETWD_A = 0x724 +- SYS___LCHOWN_A = 0x725 +- SYS___LINK_A = 0x726 +- SYS___PATHCONF_A = 0x727 +- SYS___IF_NAMEINDEX_A = 0x728 +- SYS___READLINK_A = 0x729 +- SYS___EXTLINK_NP_A = 0x730 +- SYS___ISALNUM_A = 0x731 +- SYS___ISALPHA_A = 0x732 +- SYS___A2E_S = 0x733 +- SYS___ISCNTRL_A = 0x734 +- SYS___ISDIGIT_A = 0x735 +- SYS___ISGRAPH_A = 0x736 +- SYS___ISLOWER_A = 0x737 +- SYS___ISPRINT_A = 0x738 +- SYS___ISPUNCT_A = 0x739 +- SYS___ISWALPHA_A = 0x740 +- SYS___A2E_L = 0x741 +- SYS___ISWCNTRL_A = 0x742 +- SYS___ISWDIGIT_A = 0x743 +- SYS___ISWGRAPH_A = 0x744 +- SYS___ISWLOWER_A = 0x745 +- SYS___ISWPRINT_A = 0x746 +- SYS___ISWPUNCT_A = 0x747 +- SYS___ISWSPACE_A = 0x748 +- SYS___ISWUPPER_A = 0x749 +- SYS___REMOVE_A = 0x750 +- SYS___RENAME_A = 0x751 +- SYS___TMPNAM_A = 0x752 +- SYS___FOPEN_A = 0x753 +- SYS___FREOPEN_A = 0x754 +- SYS___CUSERID_A = 0x755 +- SYS___POPEN_A = 0x756 +- SYS___TEMPNAM_A = 0x757 +- SYS___FTW_A = 0x758 +- SYS___GETGRENT_A = 0x759 +- SYS___INET_NTOP_A = 0x760 +- SYS___GETPASS_A = 0x761 +- SYS___GETPWENT_A = 0x762 +- SYS___GETPWNAM_A = 0x763 +- SYS___GETPWUID_A = 0x764 +- SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 +- SYS___CHECKSCHENV_A = 0x766 +- SYS___CONNECTSERVER_A = 0x767 +- SYS___CONNECTWORKMGR_A = 0x768 +- SYS_____CONSOLE_A = 0x769 +- SYS___MSGSND_A = 0x770 +- SYS___MSGXRCV_A = 0x771 +- SYS___NFTW_A = 0x772 +- SYS_____PASSWD_A = 0x773 +- SYS___PTHREAD_SECURITY_NP_A = 0x774 +- SYS___QUERYMETRICS_A = 0x775 +- SYS___QUERYSCHENV = 0x776 +- SYS___READV_A = 0x777 +- SYS_____SERVER_CLASSIFY_A = 0x778 +- SYS_____SERVER_INIT_A = 0x779 +- SYS___W_GETPSENT_A = 0x780 +- SYS___WRITEV_A = 0x781 +- SYS___W_STATFS_A = 0x782 +- SYS___W_STATVFS_A = 0x783 +- SYS___FPUTC_A = 0x784 +- SYS___PUTCHAR_A = 0x785 +- SYS___PUTS_A = 0x786 +- SYS___FGETS_A = 0x787 +- SYS___GETS_A = 0x788 +- SYS___FPUTS_A = 0x789 +- SYS___PUTC_A = 0x790 +- SYS___AE_THREAD_SETMODE = 0x791 +- SYS___AE_THREAD_SWAPMODE = 0x792 +- SYS___GETNETBYADDR_A = 0x793 +- SYS___GETNETBYNAME_A = 0x794 +- SYS___GETNETENT_A = 0x795 +- SYS___GETPROTOBYNAME_A = 0x796 +- SYS___GETPROTOBYNUMBER_A = 0x797 +- SYS___GETPROTOENT_A = 0x798 +- SYS___GETSERVBYNAME_A = 0x799 +- SYS_ACL_FIRST_ENTRY = 0x800 +- SYS_ACL_GET_ENTRY = 0x801 +- SYS_ACL_VALID = 0x802 +- SYS_ACL_CREATE_ENTRY = 0x803 +- SYS_ACL_DELETE_ENTRY = 0x804 +- SYS_ACL_UPDATE_ENTRY = 0x805 +- SYS_ACL_DELETE_FD = 0x806 +- SYS_ACL_DELETE_FILE = 0x807 +- SYS_ACL_GET_FD = 0x808 +- SYS_ACL_GET_FILE = 0x809 +- SYS___ERFL_B = 0x810 +- SYS___ERFCL_B = 0x811 +- SYS___LGAMMAL_B = 0x812 +- SYS___SETHOOKEVENTS = 0x813 +- SYS_IF_NAMETOINDEX = 0x814 +- SYS_IF_INDEXTONAME = 0x815 +- SYS_IF_NAMEINDEX = 0x816 +- SYS_IF_FREENAMEINDEX = 0x817 +- SYS_GETADDRINFO = 0x818 +- SYS_GETNAMEINFO = 0x819 +- SYS___DYNFREE_A = 0x820 +- SYS___RES_QUERY_A = 0x821 +- SYS___RES_SEARCH_A = 0x822 +- SYS___RES_QUERYDOMAIN_A = 0x823 +- SYS___RES_MKQUERY_A = 0x824 +- SYS___RES_SEND_A = 0x825 +- SYS___DN_EXPAND_A = 0x826 +- SYS___DN_SKIPNAME_A = 0x827 +- SYS___DN_COMP_A = 0x828 +- SYS___DN_FIND_A = 0x829 +- SYS___INET_NTOA_A = 0x830 +- SYS___INET_NETWORK_A = 0x831 +- SYS___ACCEPT_A = 0x832 +- SYS___ACCEPT_AND_RECV_A = 0x833 +- SYS___BIND_A = 0x834 +- SYS___CONNECT_A = 0x835 +- SYS___GETPEERNAME_A = 0x836 +- SYS___GETSOCKNAME_A = 0x837 +- SYS___RECVFROM_A = 0x838 +- SYS___SENDTO_A = 0x839 +- SYS___LCHATTR = 0x840 +- SYS___WRITEDOWN = 0x841 +- SYS_PTHREAD_MUTEX_INIT2 = 0x842 +- SYS___ACOSHF_B = 0x843 +- SYS___ACOSHL_B = 0x844 +- SYS___ASINHF_B = 0x845 +- SYS___ASINHL_B = 0x846 +- SYS___ATANHF_B = 0x847 +- SYS___ATANHL_B = 0x848 +- SYS___CBRTF_B = 0x849 +- SYS___EXP2F_B = 0x850 +- SYS___EXP2L_B = 0x851 +- SYS___EXPM1F_B = 0x852 +- SYS___EXPM1L_B = 0x853 +- SYS___FDIMF_B = 0x854 +- SYS___FDIM_B = 0x855 +- SYS___FDIML_B = 0x856 +- SYS___HYPOTF_B = 0x857 +- SYS___HYPOTL_B = 0x858 +- SYS___LOG1PF_B = 0x859 +- SYS___REMQUOF_B = 0x860 +- SYS___REMQUO_B = 0x861 +- SYS___REMQUOL_B = 0x862 +- SYS___TGAMMAF_B = 0x863 +- SYS___TGAMMA_B = 0x864 +- SYS___TGAMMAL_B = 0x865 +- SYS___TRUNCF_B = 0x866 +- SYS___TRUNC_B = 0x867 +- SYS___TRUNCL_B = 0x868 +- SYS___LGAMMAF_B = 0x869 +- SYS_ASINHF = 0x870 +- SYS_ASINHL = 0x871 +- SYS_ATANHF = 0x872 +- SYS_ATANHL = 0x873 +- SYS_CBRTF = 0x874 +- SYS_CBRTL = 0x875 +- SYS_COPYSIGNF = 0x876 +- SYS_CPYSIGNF = 0x876 +- SYS_COPYSIGNL = 0x877 +- SYS_CPYSIGNL = 0x877 +- SYS_COTANF = 0x878 +- SYS___COTANF = 0x878 +- SYS_COTAN = 0x879 +- SYS___COTAN = 0x879 +- SYS_FDIM = 0x881 +- SYS_FDIML = 0x882 +- SYS_HYPOTF = 0x883 +- SYS_HYPOTL = 0x884 +- SYS_LOG1PF = 0x885 +- SYS_LOG1PL = 0x886 +- SYS_LOG2F = 0x887 +- SYS_LOG2 = 0x888 +- SYS_LOG2L = 0x889 +- SYS_TGAMMA = 0x890 +- SYS_TGAMMAL = 0x891 +- SYS_TRUNCF = 0x892 +- SYS_TRUNC = 0x893 +- SYS_TRUNCL = 0x894 +- SYS_LGAMMAF = 0x895 +- SYS_LGAMMAL = 0x896 +- SYS_LROUNDF = 0x897 +- SYS_LROUND = 0x898 +- SYS_ERFF = 0x899 +- SYS___COSHF_H = 0x900 +- SYS___COSHL_H = 0x901 +- SYS___COTAN_H = 0x902 +- SYS___COTANF_H = 0x903 +- SYS___COTANL_H = 0x904 +- SYS___ERF_H = 0x905 +- SYS___ERFF_H = 0x906 +- SYS___ERFL_H = 0x907 +- SYS___ERFC_H = 0x908 +- SYS___ERFCF_H = 0x909 +- SYS___FDIMF_H = 0x910 +- SYS___FDIML_H = 0x911 +- SYS___FMOD_H = 0x912 +- SYS___FMODF_H = 0x913 +- SYS___FMODL_H = 0x914 +- SYS___GAMMA_H = 0x915 +- SYS___HYPOT_H = 0x916 +- SYS___ILOGB_H = 0x917 +- SYS___LGAMMA_H = 0x918 +- SYS___LGAMMAF_H = 0x919 +- SYS___LOG2L_H = 0x920 +- SYS___LOG1P_H = 0x921 +- SYS___LOG10_H = 0x922 +- SYS___LOG10F_H = 0x923 +- SYS___LOG10L_H = 0x924 +- SYS___LROUND_H = 0x925 +- SYS___LROUNDF_H = 0x926 +- SYS___NEXTAFTER_H = 0x927 +- SYS___POW_H = 0x928 +- SYS___POWF_H = 0x929 +- SYS___SINL_H = 0x930 +- SYS___SINH_H = 0x931 +- SYS___SINHF_H = 0x932 +- SYS___SINHL_H = 0x933 +- SYS___SQRT_H = 0x934 +- SYS___SQRTF_H = 0x935 +- SYS___SQRTL_H = 0x936 +- SYS___TAN_H = 0x937 +- SYS___TANF_H = 0x938 +- SYS___TANL_H = 0x939 +- SYS___TRUNCF_H = 0x940 +- SYS___TRUNCL_H = 0x941 +- SYS___COSH_H = 0x942 +- SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 +- SYS_VFSCANF = 0x944 +- SYS_VSCANF = 0x946 +- SYS_VSSCANF = 0x948 +- SYS_IMAXABS = 0x950 +- SYS_IMAXDIV = 0x951 +- SYS_STRTOIMAX = 0x952 +- SYS_STRTOUMAX = 0x953 +- SYS_WCSTOIMAX = 0x954 +- SYS_WCSTOUMAX = 0x955 +- SYS_ATOLL = 0x956 +- SYS_STRTOF = 0x957 +- SYS_STRTOLD = 0x958 +- SYS_WCSTOF = 0x959 +- SYS_INET6_RTH_GETADDR = 0x960 +- SYS_INET6_OPT_INIT = 0x961 +- SYS_INET6_OPT_APPEND = 0x962 +- SYS_INET6_OPT_FINISH = 0x963 +- SYS_INET6_OPT_SET_VAL = 0x964 +- SYS_INET6_OPT_NEXT = 0x965 +- SYS_INET6_OPT_FIND = 0x966 +- SYS_INET6_OPT_GET_VAL = 0x967 +- SYS___POW_I = 0x987 +- SYS___POW_I_B = 0x988 +- SYS___POW_I_H = 0x989 +- SYS___CABS_H = 0x990 +- SYS_CABSF = 0x991 +- SYS___CABSF_B = 0x992 +- SYS___CABSF_H = 0x993 +- SYS_CABSL = 0x994 +- SYS___CABSL_B = 0x995 +- SYS___CABSL_H = 0x996 +- SYS_CACOS = 0x997 +- SYS___CACOS_B = 0x998 +- SYS___CACOS_H = 0x999 ++ SYS_LOG = 0x17 // 23 ++ SYS_COSH = 0x18 // 24 ++ SYS_TANH = 0x19 // 25 ++ SYS_EXP = 0x1A // 26 ++ SYS_MODF = 0x1B // 27 ++ SYS_LOG10 = 0x1C // 28 ++ SYS_FREXP = 0x1D // 29 ++ SYS_LDEXP = 0x1E // 30 ++ SYS_CEIL = 0x1F // 31 ++ SYS_POW = 0x20 // 32 ++ SYS_SQRT = 0x21 // 33 ++ SYS_FLOOR = 0x22 // 34 ++ SYS_J1 = 0x23 // 35 ++ SYS_FABS = 0x24 // 36 ++ SYS_FMOD = 0x25 // 37 ++ SYS_J0 = 0x26 // 38 ++ SYS_YN = 0x27 // 39 ++ SYS_JN = 0x28 // 40 ++ SYS_Y0 = 0x29 // 41 ++ SYS_Y1 = 0x2A // 42 ++ SYS_HYPOT = 0x2B // 43 ++ SYS_ERF = 0x2C // 44 ++ SYS_ERFC = 0x2D // 45 ++ SYS_GAMMA = 0x2E // 46 ++ SYS_ISALPHA = 0x30 // 48 ++ SYS_ISALNUM = 0x31 // 49 ++ SYS_ISLOWER = 0x32 // 50 ++ SYS_ISCNTRL = 0x33 // 51 ++ SYS_ISDIGIT = 0x34 // 52 ++ SYS_ISGRAPH = 0x35 // 53 ++ SYS_ISUPPER = 0x36 // 54 ++ SYS_ISPRINT = 0x37 // 55 ++ SYS_ISPUNCT = 0x38 // 56 ++ SYS_ISSPACE = 0x39 // 57 ++ SYS_SETLOCAL = 0x3A // 58 ++ SYS_SETLOCALE = 0x3A // 58 ++ SYS_ISXDIGIT = 0x3B // 59 ++ SYS_TOLOWER = 0x3C // 60 ++ SYS_TOUPPER = 0x3D // 61 ++ SYS_ASIN = 0x3E // 62 ++ SYS_SIN = 0x3F // 63 ++ SYS_COS = 0x40 // 64 ++ SYS_TAN = 0x41 // 65 ++ SYS_SINH = 0x42 // 66 ++ SYS_ACOS = 0x43 // 67 ++ SYS_ATAN = 0x44 // 68 ++ SYS_ATAN2 = 0x45 // 69 ++ SYS_FTELL = 0x46 // 70 ++ SYS_FGETPOS = 0x47 // 71 ++ SYS_FSEEK = 0x48 // 72 ++ SYS_FSETPOS = 0x49 // 73 ++ SYS_FERROR = 0x4A // 74 ++ SYS_REWIND = 0x4B // 75 ++ SYS_CLEARERR = 0x4C // 76 ++ SYS_FEOF = 0x4D // 77 ++ SYS_ATOL = 0x4E // 78 ++ SYS_PERROR = 0x4F // 79 ++ SYS_ATOF = 0x50 // 80 ++ SYS_ATOI = 0x51 // 81 ++ SYS_RAND = 0x52 // 82 ++ SYS_STRTOD = 0x53 // 83 ++ SYS_STRTOL = 0x54 // 84 ++ SYS_STRTOUL = 0x55 // 85 ++ SYS_MALLOC = 0x56 // 86 ++ SYS_SRAND = 0x57 // 87 ++ SYS_CALLOC = 0x58 // 88 ++ SYS_FREE = 0x59 // 89 ++ SYS_EXIT = 0x5A // 90 ++ SYS_REALLOC = 0x5B // 91 ++ SYS_ABORT = 0x5C // 92 ++ SYS___ABORT = 0x5C // 92 ++ SYS_ATEXIT = 0x5D // 93 ++ SYS_RAISE = 0x5E // 94 ++ SYS_SETJMP = 0x5F // 95 ++ SYS_LONGJMP = 0x60 // 96 ++ SYS_SIGNAL = 0x61 // 97 ++ SYS_TMPNAM = 0x62 // 98 ++ SYS_REMOVE = 0x63 // 99 ++ SYS_RENAME = 0x64 // 100 ++ SYS_TMPFILE = 0x65 // 101 ++ SYS_FREOPEN = 0x66 // 102 ++ SYS_FCLOSE = 0x67 // 103 ++ SYS_FFLUSH = 0x68 // 104 ++ SYS_FOPEN = 0x69 // 105 ++ SYS_FSCANF = 0x6A // 106 ++ SYS_SETBUF = 0x6B // 107 ++ SYS_SETVBUF = 0x6C // 108 ++ SYS_FPRINTF = 0x6D // 109 ++ SYS_SSCANF = 0x6E // 110 ++ SYS_PRINTF = 0x6F // 111 ++ SYS_SCANF = 0x70 // 112 ++ SYS_SPRINTF = 0x71 // 113 ++ SYS_FGETC = 0x72 // 114 ++ SYS_VFPRINTF = 0x73 // 115 ++ SYS_VPRINTF = 0x74 // 116 ++ SYS_VSPRINTF = 0x75 // 117 ++ SYS_GETC = 0x76 // 118 ++ SYS_FGETS = 0x77 // 119 ++ SYS_FPUTC = 0x78 // 120 ++ SYS_FPUTS = 0x79 // 121 ++ SYS_PUTCHAR = 0x7A // 122 ++ SYS_GETCHAR = 0x7B // 123 ++ SYS_GETS = 0x7C // 124 ++ SYS_PUTC = 0x7D // 125 ++ SYS_FWRITE = 0x7E // 126 ++ SYS_PUTS = 0x7F // 127 ++ SYS_UNGETC = 0x80 // 128 ++ SYS_FREAD = 0x81 // 129 ++ SYS_WCSTOMBS = 0x82 // 130 ++ SYS_MBTOWC = 0x83 // 131 ++ SYS_WCTOMB = 0x84 // 132 ++ SYS_MBSTOWCS = 0x85 // 133 ++ SYS_WCSCPY = 0x86 // 134 ++ SYS_WCSCAT = 0x87 // 135 ++ SYS_WCSCHR = 0x88 // 136 ++ SYS_WCSCMP = 0x89 // 137 ++ SYS_WCSNCMP = 0x8A // 138 ++ SYS_WCSCSPN = 0x8B // 139 ++ SYS_WCSLEN = 0x8C // 140 ++ SYS_WCSNCAT = 0x8D // 141 ++ SYS_WCSSPN = 0x8E // 142 ++ SYS_WCSNCPY = 0x8F // 143 ++ SYS_ABS = 0x90 // 144 ++ SYS_DIV = 0x91 // 145 ++ SYS_LABS = 0x92 // 146 ++ SYS_STRNCPY = 0x93 // 147 ++ SYS_MEMCPY = 0x94 // 148 ++ SYS_MEMMOVE = 0x95 // 149 ++ SYS_STRCPY = 0x96 // 150 ++ SYS_STRCMP = 0x97 // 151 ++ SYS_STRCAT = 0x98 // 152 ++ SYS_STRNCAT = 0x99 // 153 ++ SYS_MEMCMP = 0x9A // 154 ++ SYS_MEMCHR = 0x9B // 155 ++ SYS_STRCOLL = 0x9C // 156 ++ SYS_STRNCMP = 0x9D // 157 ++ SYS_STRXFRM = 0x9E // 158 ++ SYS_STRRCHR = 0x9F // 159 ++ SYS_STRCHR = 0xA0 // 160 ++ SYS_STRCSPN = 0xA1 // 161 ++ SYS_STRPBRK = 0xA2 // 162 ++ SYS_MEMSET = 0xA3 // 163 ++ SYS_STRSPN = 0xA4 // 164 ++ SYS_STRSTR = 0xA5 // 165 ++ SYS_STRTOK = 0xA6 // 166 ++ SYS_DIFFTIME = 0xA7 // 167 ++ SYS_STRERROR = 0xA8 // 168 ++ SYS_STRLEN = 0xA9 // 169 ++ SYS_CLOCK = 0xAA // 170 ++ SYS_CTIME = 0xAB // 171 ++ SYS_MKTIME = 0xAC // 172 ++ SYS_TIME = 0xAD // 173 ++ SYS_ASCTIME = 0xAE // 174 ++ SYS_MBLEN = 0xAF // 175 ++ SYS_GMTIME = 0xB0 // 176 ++ SYS_LOCALTIM = 0xB1 // 177 ++ SYS_LOCALTIME = 0xB1 // 177 ++ SYS_STRFTIME = 0xB2 // 178 ++ SYS___GETCB = 0xB4 // 180 ++ SYS_FUPDATE = 0xB5 // 181 ++ SYS___FUPDT = 0xB5 // 181 ++ SYS_CLRMEMF = 0xBD // 189 ++ SYS___CLRMF = 0xBD // 189 ++ SYS_FETCHEP = 0xBF // 191 ++ SYS___FTCHEP = 0xBF // 191 ++ SYS_FLDATA = 0xC1 // 193 ++ SYS___FLDATA = 0xC1 // 193 ++ SYS_DYNFREE = 0xC2 // 194 ++ SYS___DYNFRE = 0xC2 // 194 ++ SYS_DYNALLOC = 0xC3 // 195 ++ SYS___DYNALL = 0xC3 // 195 ++ SYS___CDUMP = 0xC4 // 196 ++ SYS_CSNAP = 0xC5 // 197 ++ SYS___CSNAP = 0xC5 // 197 ++ SYS_CTRACE = 0xC6 // 198 ++ SYS___CTRACE = 0xC6 // 198 ++ SYS___CTEST = 0xC7 // 199 ++ SYS_SETENV = 0xC8 // 200 ++ SYS___SETENV = 0xC8 // 200 ++ SYS_CLEARENV = 0xC9 // 201 ++ SYS___CLRENV = 0xC9 // 201 ++ SYS___REGCOMP_STD = 0xEA // 234 ++ SYS_NL_LANGINFO = 0xFC // 252 ++ SYS_GETSYNTX = 0xFD // 253 ++ SYS_ISBLANK = 0xFE // 254 ++ SYS___ISBLNK = 0xFE // 254 ++ SYS_ISWALNUM = 0xFF // 255 ++ SYS_ISWALPHA = 0x100 // 256 ++ SYS_ISWBLANK = 0x101 // 257 ++ SYS___ISWBLK = 0x101 // 257 ++ SYS_ISWCNTRL = 0x102 // 258 ++ SYS_ISWDIGIT = 0x103 // 259 ++ SYS_ISWGRAPH = 0x104 // 260 ++ SYS_ISWLOWER = 0x105 // 261 ++ SYS_ISWPRINT = 0x106 // 262 ++ SYS_ISWPUNCT = 0x107 // 263 ++ SYS_ISWSPACE = 0x108 // 264 ++ SYS_ISWUPPER = 0x109 // 265 ++ SYS_ISWXDIGI = 0x10A // 266 ++ SYS_ISWXDIGIT = 0x10A // 266 ++ SYS_WCTYPE = 0x10B // 267 ++ SYS_ISWCTYPE = 0x10C // 268 ++ SYS_TOWLOWER = 0x10D // 269 ++ SYS_TOWUPPER = 0x10E // 270 ++ SYS_MBSINIT = 0x10F // 271 ++ SYS_WCTOB = 0x110 // 272 ++ SYS_MBRLEN = 0x111 // 273 ++ SYS_MBRTOWC = 0x112 // 274 ++ SYS_MBSRTOWC = 0x113 // 275 ++ SYS_MBSRTOWCS = 0x113 // 275 ++ SYS_WCRTOMB = 0x114 // 276 ++ SYS_WCSRTOMB = 0x115 // 277 ++ SYS_WCSRTOMBS = 0x115 // 277 ++ SYS___CSID = 0x116 // 278 ++ SYS___WCSID = 0x117 // 279 ++ SYS_STRPTIME = 0x118 // 280 ++ SYS___STRPTM = 0x118 // 280 ++ SYS_STRFMON = 0x119 // 281 ++ SYS___RPMTCH = 0x11A // 282 ++ SYS_WCSSTR = 0x11B // 283 ++ SYS_WCSTOK = 0x12C // 300 ++ SYS_WCSTOL = 0x12D // 301 ++ SYS_WCSTOD = 0x12E // 302 ++ SYS_WCSTOUL = 0x12F // 303 ++ SYS_WCSCOLL = 0x130 // 304 ++ SYS_WCSXFRM = 0x131 // 305 ++ SYS_WCSWIDTH = 0x132 // 306 ++ SYS_WCWIDTH = 0x133 // 307 ++ SYS_WCSFTIME = 0x134 // 308 ++ SYS_SWPRINTF = 0x135 // 309 ++ SYS_VSWPRINT = 0x136 // 310 ++ SYS_VSWPRINTF = 0x136 // 310 ++ SYS_SWSCANF = 0x137 // 311 ++ SYS_REGCOMP = 0x138 // 312 ++ SYS_REGEXEC = 0x139 // 313 ++ SYS_REGFREE = 0x13A // 314 ++ SYS_REGERROR = 0x13B // 315 ++ SYS_FGETWC = 0x13C // 316 ++ SYS_FGETWS = 0x13D // 317 ++ SYS_FPUTWC = 0x13E // 318 ++ SYS_FPUTWS = 0x13F // 319 ++ SYS_GETWC = 0x140 // 320 ++ SYS_GETWCHAR = 0x141 // 321 ++ SYS_PUTWC = 0x142 // 322 ++ SYS_PUTWCHAR = 0x143 // 323 ++ SYS_UNGETWC = 0x144 // 324 ++ SYS_ICONV_OPEN = 0x145 // 325 ++ SYS_ICONV = 0x146 // 326 ++ SYS_ICONV_CLOSE = 0x147 // 327 ++ SYS_ISMCCOLLEL = 0x14C // 332 ++ SYS_STRTOCOLL = 0x14D // 333 ++ SYS_COLLTOSTR = 0x14E // 334 ++ SYS_COLLEQUIV = 0x14F // 335 ++ SYS_COLLRANGE = 0x150 // 336 ++ SYS_CCLASS = 0x151 // 337 ++ SYS_COLLORDER = 0x152 // 338 ++ SYS___DEMANGLE = 0x154 // 340 ++ SYS_FDOPEN = 0x155 // 341 ++ SYS___ERRNO = 0x156 // 342 ++ SYS___ERRNO2 = 0x157 // 343 ++ SYS___TERROR = 0x158 // 344 ++ SYS_MAXCOLL = 0x169 // 361 ++ SYS_GETMCCOLL = 0x16A // 362 ++ SYS_GETWMCCOLL = 0x16B // 363 ++ SYS___ERR2AD = 0x16C // 364 ++ SYS_DLLQUERYFN = 0x16D // 365 ++ SYS_DLLQUERYVAR = 0x16E // 366 ++ SYS_DLLFREE = 0x16F // 367 ++ SYS_DLLLOAD = 0x170 // 368 ++ SYS__EXIT = 0x174 // 372 ++ SYS_ACCESS = 0x175 // 373 ++ SYS_ALARM = 0x176 // 374 ++ SYS_CFGETISPEED = 0x177 // 375 ++ SYS_CFGETOSPEED = 0x178 // 376 ++ SYS_CFSETISPEED = 0x179 // 377 ++ SYS_CFSETOSPEED = 0x17A // 378 ++ SYS_CHDIR = 0x17B // 379 ++ SYS_CHMOD = 0x17C // 380 ++ SYS_CHOWN = 0x17D // 381 ++ SYS_CLOSE = 0x17E // 382 ++ SYS_CLOSEDIR = 0x17F // 383 ++ SYS_CREAT = 0x180 // 384 ++ SYS_CTERMID = 0x181 // 385 ++ SYS_DUP = 0x182 // 386 ++ SYS_DUP2 = 0x183 // 387 ++ SYS_EXECL = 0x184 // 388 ++ SYS_EXECLE = 0x185 // 389 ++ SYS_EXECLP = 0x186 // 390 ++ SYS_EXECV = 0x187 // 391 ++ SYS_EXECVE = 0x188 // 392 ++ SYS_EXECVP = 0x189 // 393 ++ SYS_FCHMOD = 0x18A // 394 ++ SYS_FCHOWN = 0x18B // 395 ++ SYS_FCNTL = 0x18C // 396 ++ SYS_FILENO = 0x18D // 397 ++ SYS_FORK = 0x18E // 398 ++ SYS_FPATHCONF = 0x18F // 399 ++ SYS_FSTAT = 0x190 // 400 ++ SYS_FSYNC = 0x191 // 401 ++ SYS_FTRUNCATE = 0x192 // 402 ++ SYS_GETCWD = 0x193 // 403 ++ SYS_GETEGID = 0x194 // 404 ++ SYS_GETEUID = 0x195 // 405 ++ SYS_GETGID = 0x196 // 406 ++ SYS_GETGRGID = 0x197 // 407 ++ SYS_GETGRNAM = 0x198 // 408 ++ SYS_GETGROUPS = 0x199 // 409 ++ SYS_GETLOGIN = 0x19A // 410 ++ SYS_W_GETMNTENT = 0x19B // 411 ++ SYS_GETPGRP = 0x19C // 412 ++ SYS_GETPID = 0x19D // 413 ++ SYS_GETPPID = 0x19E // 414 ++ SYS_GETPWNAM = 0x19F // 415 ++ SYS_GETPWUID = 0x1A0 // 416 ++ SYS_GETUID = 0x1A1 // 417 ++ SYS_W_IOCTL = 0x1A2 // 418 ++ SYS_ISATTY = 0x1A3 // 419 ++ SYS_KILL = 0x1A4 // 420 ++ SYS_LINK = 0x1A5 // 421 ++ SYS_LSEEK = 0x1A6 // 422 ++ SYS_LSTAT = 0x1A7 // 423 ++ SYS_MKDIR = 0x1A8 // 424 ++ SYS_MKFIFO = 0x1A9 // 425 ++ SYS_MKNOD = 0x1AA // 426 ++ SYS_MOUNT = 0x1AB // 427 ++ SYS_OPEN = 0x1AC // 428 ++ SYS_OPENDIR = 0x1AD // 429 ++ SYS_PATHCONF = 0x1AE // 430 ++ SYS_PAUSE = 0x1AF // 431 ++ SYS_PIPE = 0x1B0 // 432 ++ SYS_W_GETPSENT = 0x1B1 // 433 ++ SYS_READ = 0x1B2 // 434 ++ SYS_READDIR = 0x1B3 // 435 ++ SYS_READLINK = 0x1B4 // 436 ++ SYS_REWINDDIR = 0x1B5 // 437 ++ SYS_RMDIR = 0x1B6 // 438 ++ SYS_SETEGID = 0x1B7 // 439 ++ SYS_SETEUID = 0x1B8 // 440 ++ SYS_SETGID = 0x1B9 // 441 ++ SYS_SETPGID = 0x1BA // 442 ++ SYS_SETSID = 0x1BB // 443 ++ SYS_SETUID = 0x1BC // 444 ++ SYS_SIGACTION = 0x1BD // 445 ++ SYS_SIGADDSET = 0x1BE // 446 ++ SYS_SIGDELSET = 0x1BF // 447 ++ SYS_SIGEMPTYSET = 0x1C0 // 448 ++ SYS_SIGFILLSET = 0x1C1 // 449 ++ SYS_SIGISMEMBER = 0x1C2 // 450 ++ SYS_SIGLONGJMP = 0x1C3 // 451 ++ SYS_SIGPENDING = 0x1C4 // 452 ++ SYS_SIGPROCMASK = 0x1C5 // 453 ++ SYS_SIGSETJMP = 0x1C6 // 454 ++ SYS_SIGSUSPEND = 0x1C7 // 455 ++ SYS_SLEEP = 0x1C8 // 456 ++ SYS_STAT = 0x1C9 // 457 ++ SYS_W_STATFS = 0x1CA // 458 ++ SYS_SYMLINK = 0x1CB // 459 ++ SYS_SYSCONF = 0x1CC // 460 ++ SYS_TCDRAIN = 0x1CD // 461 ++ SYS_TCFLOW = 0x1CE // 462 ++ SYS_TCFLUSH = 0x1CF // 463 ++ SYS_TCGETATTR = 0x1D0 // 464 ++ SYS_TCGETPGRP = 0x1D1 // 465 ++ SYS_TCSENDBREAK = 0x1D2 // 466 ++ SYS_TCSETATTR = 0x1D3 // 467 ++ SYS_TCSETPGRP = 0x1D4 // 468 ++ SYS_TIMES = 0x1D5 // 469 ++ SYS_TTYNAME = 0x1D6 // 470 ++ SYS_TZSET = 0x1D7 // 471 ++ SYS_UMASK = 0x1D8 // 472 ++ SYS_UMOUNT = 0x1D9 // 473 ++ SYS_UNAME = 0x1DA // 474 ++ SYS_UNLINK = 0x1DB // 475 ++ SYS_UTIME = 0x1DC // 476 ++ SYS_WAIT = 0x1DD // 477 ++ SYS_WAITPID = 0x1DE // 478 ++ SYS_WRITE = 0x1DF // 479 ++ SYS_CHAUDIT = 0x1E0 // 480 ++ SYS_FCHAUDIT = 0x1E1 // 481 ++ SYS_GETGROUPSBYNAME = 0x1E2 // 482 ++ SYS_SIGWAIT = 0x1E3 // 483 ++ SYS_PTHREAD_EXIT = 0x1E4 // 484 ++ SYS_PTHREAD_KILL = 0x1E5 // 485 ++ SYS_PTHREAD_ATTR_INIT = 0x1E6 // 486 ++ SYS_PTHREAD_ATTR_DESTROY = 0x1E7 // 487 ++ SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 // 488 ++ SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 // 489 ++ SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA // 490 ++ SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB // 491 ++ SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC // 492 ++ SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED // 493 ++ SYS_PTHREAD_CANCEL = 0x1EE // 494 ++ SYS_PTHREAD_CLEANUP_PUSH = 0x1EF // 495 ++ SYS_PTHREAD_CLEANUP_POP = 0x1F0 // 496 ++ SYS_PTHREAD_CONDATTR_INIT = 0x1F1 // 497 ++ SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 // 498 ++ SYS_PTHREAD_COND_INIT = 0x1F3 // 499 ++ SYS_PTHREAD_COND_DESTROY = 0x1F4 // 500 ++ SYS_PTHREAD_COND_SIGNAL = 0x1F5 // 501 ++ SYS_PTHREAD_COND_BROADCAST = 0x1F6 // 502 ++ SYS_PTHREAD_COND_WAIT = 0x1F7 // 503 ++ SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 // 504 ++ SYS_PTHREAD_CREATE = 0x1F9 // 505 ++ SYS_PTHREAD_DETACH = 0x1FA // 506 ++ SYS_PTHREAD_EQUAL = 0x1FB // 507 ++ SYS_PTHREAD_GETSPECIFIC = 0x1FC // 508 ++ SYS_PTHREAD_JOIN = 0x1FD // 509 ++ SYS_PTHREAD_KEY_CREATE = 0x1FE // 510 ++ SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF // 511 ++ SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 // 512 ++ SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 // 513 ++ SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 // 514 ++ SYS_PTHREAD_MUTEX_INIT = 0x203 // 515 ++ SYS_PTHREAD_MUTEX_DESTROY = 0x204 // 516 ++ SYS_PTHREAD_MUTEX_LOCK = 0x205 // 517 ++ SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 // 518 ++ SYS_PTHREAD_MUTEX_UNLOCK = 0x207 // 519 ++ SYS_PTHREAD_ONCE = 0x209 // 521 ++ SYS_PTHREAD_SELF = 0x20A // 522 ++ SYS_PTHREAD_SETINTR = 0x20B // 523 ++ SYS_PTHREAD_SETINTRTYPE = 0x20C // 524 ++ SYS_PTHREAD_SETSPECIFIC = 0x20D // 525 ++ SYS_PTHREAD_TESTINTR = 0x20E // 526 ++ SYS_PTHREAD_YIELD = 0x20F // 527 ++ SYS_TW_OPEN = 0x210 // 528 ++ SYS_TW_FCNTL = 0x211 // 529 ++ SYS_PTHREAD_JOIN_D4_NP = 0x212 // 530 ++ SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 // 531 ++ SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 // 532 ++ SYS_EXTLINK_NP = 0x215 // 533 ++ SYS___PASSWD = 0x216 // 534 ++ SYS_SETGROUPS = 0x217 // 535 ++ SYS_INITGROUPS = 0x218 // 536 ++ SYS_WCSPBRK = 0x23F // 575 ++ SYS_WCSRCHR = 0x240 // 576 ++ SYS_SVC99 = 0x241 // 577 ++ SYS___SVC99 = 0x241 // 577 ++ SYS_WCSWCS = 0x242 // 578 ++ SYS_LOCALECO = 0x243 // 579 ++ SYS_LOCALECONV = 0x243 // 579 ++ SYS___LIBREL = 0x244 // 580 ++ SYS_RELEASE = 0x245 // 581 ++ SYS___RLSE = 0x245 // 581 ++ SYS_FLOCATE = 0x246 // 582 ++ SYS___FLOCT = 0x246 // 582 ++ SYS_FDELREC = 0x247 // 583 ++ SYS___FDLREC = 0x247 // 583 ++ SYS_FETCH = 0x248 // 584 ++ SYS___FETCH = 0x248 // 584 ++ SYS_QSORT = 0x249 // 585 ++ SYS_GETENV = 0x24A // 586 ++ SYS_SYSTEM = 0x24B // 587 ++ SYS_BSEARCH = 0x24C // 588 ++ SYS_LDIV = 0x24D // 589 ++ SYS___THROW = 0x25E // 606 ++ SYS___RETHROW = 0x25F // 607 ++ SYS___CLEANUPCATCH = 0x260 // 608 ++ SYS___CATCHMATCH = 0x261 // 609 ++ SYS___CLEAN2UPCATCH = 0x262 // 610 ++ SYS_PUTENV = 0x26A // 618 ++ SYS___GETENV = 0x26F // 623 ++ SYS_GETPRIORITY = 0x270 // 624 ++ SYS_NICE = 0x271 // 625 ++ SYS_SETPRIORITY = 0x272 // 626 ++ SYS_GETITIMER = 0x273 // 627 ++ SYS_SETITIMER = 0x274 // 628 ++ SYS_MSGCTL = 0x275 // 629 ++ SYS_MSGGET = 0x276 // 630 ++ SYS_MSGRCV = 0x277 // 631 ++ SYS_MSGSND = 0x278 // 632 ++ SYS_MSGXRCV = 0x279 // 633 ++ SYS___MSGXR = 0x279 // 633 ++ SYS_SEMCTL = 0x27A // 634 ++ SYS_SEMGET = 0x27B // 635 ++ SYS_SEMOP = 0x27C // 636 ++ SYS_SHMAT = 0x27D // 637 ++ SYS_SHMCTL = 0x27E // 638 ++ SYS_SHMDT = 0x27F // 639 ++ SYS_SHMGET = 0x280 // 640 ++ SYS___GETIPC = 0x281 // 641 ++ SYS_SETGRENT = 0x282 // 642 ++ SYS_GETGRENT = 0x283 // 643 ++ SYS_ENDGRENT = 0x284 // 644 ++ SYS_SETPWENT = 0x285 // 645 ++ SYS_GETPWENT = 0x286 // 646 ++ SYS_ENDPWENT = 0x287 // 647 ++ SYS_BSD_SIGNAL = 0x288 // 648 ++ SYS_KILLPG = 0x289 // 649 ++ SYS_SIGALTSTACK = 0x28A // 650 ++ SYS_SIGHOLD = 0x28B // 651 ++ SYS_SIGIGNORE = 0x28C // 652 ++ SYS_SIGINTERRUPT = 0x28D // 653 ++ SYS_SIGPAUSE = 0x28E // 654 ++ SYS_SIGRELSE = 0x28F // 655 ++ SYS_SIGSET = 0x290 // 656 ++ SYS_SIGSTACK = 0x291 // 657 ++ SYS_GETRLIMIT = 0x292 // 658 ++ SYS_SETRLIMIT = 0x293 // 659 ++ SYS_GETRUSAGE = 0x294 // 660 ++ SYS_MMAP = 0x295 // 661 ++ SYS_MPROTECT = 0x296 // 662 ++ SYS_MSYNC = 0x297 // 663 ++ SYS_MUNMAP = 0x298 // 664 ++ SYS_CONFSTR = 0x299 // 665 ++ SYS_GETOPT = 0x29A // 666 ++ SYS_LCHOWN = 0x29B // 667 ++ SYS_TRUNCATE = 0x29C // 668 ++ SYS_GETSUBOPT = 0x29D // 669 ++ SYS_SETPGRP = 0x29E // 670 ++ SYS___GDERR = 0x29F // 671 ++ SYS___TZONE = 0x2A0 // 672 ++ SYS___DLGHT = 0x2A1 // 673 ++ SYS___OPARGF = 0x2A2 // 674 ++ SYS___OPOPTF = 0x2A3 // 675 ++ SYS___OPINDF = 0x2A4 // 676 ++ SYS___OPERRF = 0x2A5 // 677 ++ SYS_GETDATE = 0x2A6 // 678 ++ SYS_WAIT3 = 0x2A7 // 679 ++ SYS_WAITID = 0x2A8 // 680 ++ SYS___CATTRM = 0x2A9 // 681 ++ SYS___GDTRM = 0x2AA // 682 ++ SYS___RNDTRM = 0x2AB // 683 ++ SYS_CRYPT = 0x2AC // 684 ++ SYS_ENCRYPT = 0x2AD // 685 ++ SYS_SETKEY = 0x2AE // 686 ++ SYS___CNVBLK = 0x2AF // 687 ++ SYS___CRYTRM = 0x2B0 // 688 ++ SYS___ECRTRM = 0x2B1 // 689 ++ SYS_DRAND48 = 0x2B2 // 690 ++ SYS_ERAND48 = 0x2B3 // 691 ++ SYS_FSTATVFS = 0x2B4 // 692 ++ SYS_STATVFS = 0x2B5 // 693 ++ SYS_CATCLOSE = 0x2B6 // 694 ++ SYS_CATGETS = 0x2B7 // 695 ++ SYS_CATOPEN = 0x2B8 // 696 ++ SYS_BCMP = 0x2B9 // 697 ++ SYS_BCOPY = 0x2BA // 698 ++ SYS_BZERO = 0x2BB // 699 ++ SYS_FFS = 0x2BC // 700 ++ SYS_INDEX = 0x2BD // 701 ++ SYS_RINDEX = 0x2BE // 702 ++ SYS_STRCASECMP = 0x2BF // 703 ++ SYS_STRDUP = 0x2C0 // 704 ++ SYS_STRNCASECMP = 0x2C1 // 705 ++ SYS_INITSTATE = 0x2C2 // 706 ++ SYS_SETSTATE = 0x2C3 // 707 ++ SYS_RANDOM = 0x2C4 // 708 ++ SYS_SRANDOM = 0x2C5 // 709 ++ SYS_HCREATE = 0x2C6 // 710 ++ SYS_HDESTROY = 0x2C7 // 711 ++ SYS_HSEARCH = 0x2C8 // 712 ++ SYS_LFIND = 0x2C9 // 713 ++ SYS_LSEARCH = 0x2CA // 714 ++ SYS_TDELETE = 0x2CB // 715 ++ SYS_TFIND = 0x2CC // 716 ++ SYS_TSEARCH = 0x2CD // 717 ++ SYS_TWALK = 0x2CE // 718 ++ SYS_INSQUE = 0x2CF // 719 ++ SYS_REMQUE = 0x2D0 // 720 ++ SYS_POPEN = 0x2D1 // 721 ++ SYS_PCLOSE = 0x2D2 // 722 ++ SYS_SWAB = 0x2D3 // 723 ++ SYS_MEMCCPY = 0x2D4 // 724 ++ SYS_GETPAGESIZE = 0x2D8 // 728 ++ SYS_FCHDIR = 0x2D9 // 729 ++ SYS___OCLCK = 0x2DA // 730 ++ SYS___ATOE = 0x2DB // 731 ++ SYS___ATOE_L = 0x2DC // 732 ++ SYS___ETOA = 0x2DD // 733 ++ SYS___ETOA_L = 0x2DE // 734 ++ SYS_SETUTXENT = 0x2DF // 735 ++ SYS_GETUTXENT = 0x2E0 // 736 ++ SYS_ENDUTXENT = 0x2E1 // 737 ++ SYS_GETUTXID = 0x2E2 // 738 ++ SYS_GETUTXLINE = 0x2E3 // 739 ++ SYS_PUTUTXLINE = 0x2E4 // 740 ++ SYS_FMTMSG = 0x2E5 // 741 ++ SYS_JRAND48 = 0x2E6 // 742 ++ SYS_LRAND48 = 0x2E7 // 743 ++ SYS_MRAND48 = 0x2E8 // 744 ++ SYS_NRAND48 = 0x2E9 // 745 ++ SYS_LCONG48 = 0x2EA // 746 ++ SYS_SRAND48 = 0x2EB // 747 ++ SYS_SEED48 = 0x2EC // 748 ++ SYS_ISASCII = 0x2ED // 749 ++ SYS_TOASCII = 0x2EE // 750 ++ SYS_A64L = 0x2EF // 751 ++ SYS_L64A = 0x2F0 // 752 ++ SYS_UALARM = 0x2F1 // 753 ++ SYS_USLEEP = 0x2F2 // 754 ++ SYS___UTXTRM = 0x2F3 // 755 ++ SYS___SRCTRM = 0x2F4 // 756 ++ SYS_FTIME = 0x2F5 // 757 ++ SYS_GETTIMEOFDAY = 0x2F6 // 758 ++ SYS_DBM_CLEARERR = 0x2F7 // 759 ++ SYS_DBM_CLOSE = 0x2F8 // 760 ++ SYS_DBM_DELETE = 0x2F9 // 761 ++ SYS_DBM_ERROR = 0x2FA // 762 ++ SYS_DBM_FETCH = 0x2FB // 763 ++ SYS_DBM_FIRSTKEY = 0x2FC // 764 ++ SYS_DBM_NEXTKEY = 0x2FD // 765 ++ SYS_DBM_OPEN = 0x2FE // 766 ++ SYS_DBM_STORE = 0x2FF // 767 ++ SYS___NDMTRM = 0x300 // 768 ++ SYS_FTOK = 0x301 // 769 ++ SYS_BASENAME = 0x302 // 770 ++ SYS_DIRNAME = 0x303 // 771 ++ SYS_GETDTABLESIZE = 0x304 // 772 ++ SYS_MKSTEMP = 0x305 // 773 ++ SYS_MKTEMP = 0x306 // 774 ++ SYS_NFTW = 0x307 // 775 ++ SYS_GETWD = 0x308 // 776 ++ SYS_LOCKF = 0x309 // 777 ++ SYS__LONGJMP = 0x30D // 781 ++ SYS__SETJMP = 0x30E // 782 ++ SYS_VFORK = 0x30F // 783 ++ SYS_WORDEXP = 0x310 // 784 ++ SYS_WORDFREE = 0x311 // 785 ++ SYS_GETPGID = 0x312 // 786 ++ SYS_GETSID = 0x313 // 787 ++ SYS___UTMPXNAME = 0x314 // 788 ++ SYS_CUSERID = 0x315 // 789 ++ SYS_GETPASS = 0x316 // 790 ++ SYS_FNMATCH = 0x317 // 791 ++ SYS_FTW = 0x318 // 792 ++ SYS_GETW = 0x319 // 793 ++ SYS_GLOB = 0x31A // 794 ++ SYS_GLOBFREE = 0x31B // 795 ++ SYS_PUTW = 0x31C // 796 ++ SYS_SEEKDIR = 0x31D // 797 ++ SYS_TELLDIR = 0x31E // 798 ++ SYS_TEMPNAM = 0x31F // 799 ++ SYS_ACOSH = 0x320 // 800 ++ SYS_ASINH = 0x321 // 801 ++ SYS_ATANH = 0x322 // 802 ++ SYS_CBRT = 0x323 // 803 ++ SYS_EXPM1 = 0x324 // 804 ++ SYS_ILOGB = 0x325 // 805 ++ SYS_LOGB = 0x326 // 806 ++ SYS_LOG1P = 0x327 // 807 ++ SYS_NEXTAFTER = 0x328 // 808 ++ SYS_RINT = 0x329 // 809 ++ SYS_REMAINDER = 0x32A // 810 ++ SYS_SCALB = 0x32B // 811 ++ SYS_LGAMMA = 0x32C // 812 ++ SYS_TTYSLOT = 0x32D // 813 ++ SYS_GETTIMEOFDAY_R = 0x32E // 814 ++ SYS_SYNC = 0x32F // 815 ++ SYS_SPAWN = 0x330 // 816 ++ SYS_SPAWNP = 0x331 // 817 ++ SYS_GETLOGIN_UU = 0x332 // 818 ++ SYS_ECVT = 0x333 // 819 ++ SYS_FCVT = 0x334 // 820 ++ SYS_GCVT = 0x335 // 821 ++ SYS_ACCEPT = 0x336 // 822 ++ SYS_BIND = 0x337 // 823 ++ SYS_CONNECT = 0x338 // 824 ++ SYS_ENDHOSTENT = 0x339 // 825 ++ SYS_ENDPROTOENT = 0x33A // 826 ++ SYS_ENDSERVENT = 0x33B // 827 ++ SYS_GETHOSTBYADDR_R = 0x33C // 828 ++ SYS_GETHOSTBYADDR = 0x33D // 829 ++ SYS_GETHOSTBYNAME_R = 0x33E // 830 ++ SYS_GETHOSTBYNAME = 0x33F // 831 ++ SYS_GETHOSTENT = 0x340 // 832 ++ SYS_GETHOSTID = 0x341 // 833 ++ SYS_GETHOSTNAME = 0x342 // 834 ++ SYS_GETNETBYADDR = 0x343 // 835 ++ SYS_GETNETBYNAME = 0x344 // 836 ++ SYS_GETNETENT = 0x345 // 837 ++ SYS_GETPEERNAME = 0x346 // 838 ++ SYS_GETPROTOBYNAME = 0x347 // 839 ++ SYS_GETPROTOBYNUMBER = 0x348 // 840 ++ SYS_GETPROTOENT = 0x349 // 841 ++ SYS_GETSERVBYNAME = 0x34A // 842 ++ SYS_GETSERVBYPORT = 0x34B // 843 ++ SYS_GETSERVENT = 0x34C // 844 ++ SYS_GETSOCKNAME = 0x34D // 845 ++ SYS_GETSOCKOPT = 0x34E // 846 ++ SYS_INET_ADDR = 0x34F // 847 ++ SYS_INET_LNAOF = 0x350 // 848 ++ SYS_INET_MAKEADDR = 0x351 // 849 ++ SYS_INET_NETOF = 0x352 // 850 ++ SYS_INET_NETWORK = 0x353 // 851 ++ SYS_INET_NTOA = 0x354 // 852 ++ SYS_IOCTL = 0x355 // 853 ++ SYS_LISTEN = 0x356 // 854 ++ SYS_READV = 0x357 // 855 ++ SYS_RECV = 0x358 // 856 ++ SYS_RECVFROM = 0x359 // 857 ++ SYS_SELECT = 0x35B // 859 ++ SYS_SELECTEX = 0x35C // 860 ++ SYS_SEND = 0x35D // 861 ++ SYS_SENDTO = 0x35F // 863 ++ SYS_SETHOSTENT = 0x360 // 864 ++ SYS_SETNETENT = 0x361 // 865 ++ SYS_SETPEER = 0x362 // 866 ++ SYS_SETPROTOENT = 0x363 // 867 ++ SYS_SETSERVENT = 0x364 // 868 ++ SYS_SETSOCKOPT = 0x365 // 869 ++ SYS_SHUTDOWN = 0x366 // 870 ++ SYS_SOCKET = 0x367 // 871 ++ SYS_SOCKETPAIR = 0x368 // 872 ++ SYS_WRITEV = 0x369 // 873 ++ SYS_CHROOT = 0x36A // 874 ++ SYS_W_STATVFS = 0x36B // 875 ++ SYS_ULIMIT = 0x36C // 876 ++ SYS_ISNAN = 0x36D // 877 ++ SYS_UTIMES = 0x36E // 878 ++ SYS___H_ERRNO = 0x36F // 879 ++ SYS_ENDNETENT = 0x370 // 880 ++ SYS_CLOSELOG = 0x371 // 881 ++ SYS_OPENLOG = 0x372 // 882 ++ SYS_SETLOGMASK = 0x373 // 883 ++ SYS_SYSLOG = 0x374 // 884 ++ SYS_PTSNAME = 0x375 // 885 ++ SYS_SETREUID = 0x376 // 886 ++ SYS_SETREGID = 0x377 // 887 ++ SYS_REALPATH = 0x378 // 888 ++ SYS___SIGNGAM = 0x379 // 889 ++ SYS_GRANTPT = 0x37A // 890 ++ SYS_UNLOCKPT = 0x37B // 891 ++ SYS_TCGETSID = 0x37C // 892 ++ SYS___TCGETCP = 0x37D // 893 ++ SYS___TCSETCP = 0x37E // 894 ++ SYS___TCSETTABLES = 0x37F // 895 ++ SYS_POLL = 0x380 // 896 ++ SYS_REXEC = 0x381 // 897 ++ SYS___ISASCII2 = 0x382 // 898 ++ SYS___TOASCII2 = 0x383 // 899 ++ SYS_CHPRIORITY = 0x384 // 900 ++ SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 // 901 ++ SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 // 902 ++ SYS_PTHREAD_SET_LIMIT_NP = 0x387 // 903 ++ SYS___STNETENT = 0x388 // 904 ++ SYS___STPROTOENT = 0x389 // 905 ++ SYS___STSERVENT = 0x38A // 906 ++ SYS___STHOSTENT = 0x38B // 907 ++ SYS_NLIST = 0x38C // 908 ++ SYS___IPDBCS = 0x38D // 909 ++ SYS___IPDSPX = 0x38E // 910 ++ SYS___IPMSGC = 0x38F // 911 ++ SYS___SELECT1 = 0x390 // 912 ++ SYS_PTHREAD_SECURITY_NP = 0x391 // 913 ++ SYS___CHECK_RESOURCE_AUTH_NP = 0x392 // 914 ++ SYS___CONVERT_ID_NP = 0x393 // 915 ++ SYS___OPENVMREL = 0x394 // 916 ++ SYS_WMEMCHR = 0x395 // 917 ++ SYS_WMEMCMP = 0x396 // 918 ++ SYS_WMEMCPY = 0x397 // 919 ++ SYS_WMEMMOVE = 0x398 // 920 ++ SYS_WMEMSET = 0x399 // 921 ++ SYS___FPUTWC = 0x400 // 1024 ++ SYS___PUTWC = 0x401 // 1025 ++ SYS___PWCHAR = 0x402 // 1026 ++ SYS___WCSFTM = 0x403 // 1027 ++ SYS___WCSTOK = 0x404 // 1028 ++ SYS___WCWDTH = 0x405 // 1029 ++ SYS_T_ACCEPT = 0x409 // 1033 ++ SYS_T_ALLOC = 0x40A // 1034 ++ SYS_T_BIND = 0x40B // 1035 ++ SYS_T_CLOSE = 0x40C // 1036 ++ SYS_T_CONNECT = 0x40D // 1037 ++ SYS_T_ERROR = 0x40E // 1038 ++ SYS_T_FREE = 0x40F // 1039 ++ SYS_T_GETINFO = 0x410 // 1040 ++ SYS_T_GETPROTADDR = 0x411 // 1041 ++ SYS_T_GETSTATE = 0x412 // 1042 ++ SYS_T_LISTEN = 0x413 // 1043 ++ SYS_T_LOOK = 0x414 // 1044 ++ SYS_T_OPEN = 0x415 // 1045 ++ SYS_T_OPTMGMT = 0x416 // 1046 ++ SYS_T_RCV = 0x417 // 1047 ++ SYS_T_RCVCONNECT = 0x418 // 1048 ++ SYS_T_RCVDIS = 0x419 // 1049 ++ SYS_T_RCVREL = 0x41A // 1050 ++ SYS_T_RCVUDATA = 0x41B // 1051 ++ SYS_T_RCVUDERR = 0x41C // 1052 ++ SYS_T_SND = 0x41D // 1053 ++ SYS_T_SNDDIS = 0x41E // 1054 ++ SYS_T_SNDREL = 0x41F // 1055 ++ SYS_T_SNDUDATA = 0x420 // 1056 ++ SYS_T_STRERROR = 0x421 // 1057 ++ SYS_T_SYNC = 0x422 // 1058 ++ SYS_T_UNBIND = 0x423 // 1059 ++ SYS___T_ERRNO = 0x424 // 1060 ++ SYS___RECVMSG2 = 0x425 // 1061 ++ SYS___SENDMSG2 = 0x426 // 1062 ++ SYS_FATTACH = 0x427 // 1063 ++ SYS_FDETACH = 0x428 // 1064 ++ SYS_GETMSG = 0x429 // 1065 ++ SYS_GETPMSG = 0x42A // 1066 ++ SYS_ISASTREAM = 0x42B // 1067 ++ SYS_PUTMSG = 0x42C // 1068 ++ SYS_PUTPMSG = 0x42D // 1069 ++ SYS___ISPOSIXON = 0x42E // 1070 ++ SYS___OPENMVSREL = 0x42F // 1071 ++ SYS_GETCONTEXT = 0x430 // 1072 ++ SYS_SETCONTEXT = 0x431 // 1073 ++ SYS_MAKECONTEXT = 0x432 // 1074 ++ SYS_SWAPCONTEXT = 0x433 // 1075 ++ SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 // 1076 ++ SYS_GETCLIENTID = 0x470 // 1136 ++ SYS___GETCLIENTID = 0x471 // 1137 ++ SYS_GETSTABLESIZE = 0x472 // 1138 ++ SYS_GETIBMOPT = 0x473 // 1139 ++ SYS_GETIBMSOCKOPT = 0x474 // 1140 ++ SYS_GIVESOCKET = 0x475 // 1141 ++ SYS_IBMSFLUSH = 0x476 // 1142 ++ SYS_MAXDESC = 0x477 // 1143 ++ SYS_SETIBMOPT = 0x478 // 1144 ++ SYS_SETIBMSOCKOPT = 0x479 // 1145 ++ SYS_SOCK_DEBUG = 0x47A // 1146 ++ SYS_SOCK_DO_TESTSTOR = 0x47D // 1149 ++ SYS_TAKESOCKET = 0x47E // 1150 ++ SYS___SERVER_INIT = 0x47F // 1151 ++ SYS___SERVER_PWU = 0x480 // 1152 ++ SYS_PTHREAD_TAG_NP = 0x481 // 1153 ++ SYS___CONSOLE = 0x482 // 1154 ++ SYS___WSINIT = 0x483 // 1155 ++ SYS___IPTCPN = 0x489 // 1161 ++ SYS___SMF_RECORD = 0x48A // 1162 ++ SYS___IPHOST = 0x48B // 1163 ++ SYS___IPNODE = 0x48C // 1164 ++ SYS___SERVER_CLASSIFY_CREATE = 0x48D // 1165 ++ SYS___SERVER_CLASSIFY_DESTROY = 0x48E // 1166 ++ SYS___SERVER_CLASSIFY_RESET = 0x48F // 1167 ++ SYS___SERVER_CLASSIFY = 0x490 // 1168 ++ SYS___HEAPRPT = 0x496 // 1174 ++ SYS___FNWSA = 0x49B // 1179 ++ SYS___SPAWN2 = 0x49D // 1181 ++ SYS___SPAWNP2 = 0x49E // 1182 ++ SYS___GDRR = 0x4A1 // 1185 ++ SYS___HRRNO = 0x4A2 // 1186 ++ SYS___OPRG = 0x4A3 // 1187 ++ SYS___OPRR = 0x4A4 // 1188 ++ SYS___OPND = 0x4A5 // 1189 ++ SYS___OPPT = 0x4A6 // 1190 ++ SYS___SIGGM = 0x4A7 // 1191 ++ SYS___DGHT = 0x4A8 // 1192 ++ SYS___TZNE = 0x4A9 // 1193 ++ SYS___TZZN = 0x4AA // 1194 ++ SYS___TRRNO = 0x4AF // 1199 ++ SYS___ENVN = 0x4B0 // 1200 ++ SYS___MLOCKALL = 0x4B1 // 1201 ++ SYS_CREATEWO = 0x4B2 // 1202 ++ SYS_CREATEWORKUNIT = 0x4B2 // 1202 ++ SYS_CONTINUE = 0x4B3 // 1203 ++ SYS_CONTINUEWORKUNIT = 0x4B3 // 1203 ++ SYS_CONNECTW = 0x4B4 // 1204 ++ SYS_CONNECTWORKMGR = 0x4B4 // 1204 ++ SYS_CONNECTS = 0x4B5 // 1205 ++ SYS_CONNECTSERVER = 0x4B5 // 1205 ++ SYS_DISCONNE = 0x4B6 // 1206 ++ SYS_DISCONNECTSERVER = 0x4B6 // 1206 ++ SYS_JOINWORK = 0x4B7 // 1207 ++ SYS_JOINWORKUNIT = 0x4B7 // 1207 ++ SYS_LEAVEWOR = 0x4B8 // 1208 ++ SYS_LEAVEWORKUNIT = 0x4B8 // 1208 ++ SYS_DELETEWO = 0x4B9 // 1209 ++ SYS_DELETEWORKUNIT = 0x4B9 // 1209 ++ SYS_QUERYMET = 0x4BA // 1210 ++ SYS_QUERYMETRICS = 0x4BA // 1210 ++ SYS_QUERYSCH = 0x4BB // 1211 ++ SYS_QUERYSCHENV = 0x4BB // 1211 ++ SYS_CHECKSCH = 0x4BC // 1212 ++ SYS_CHECKSCHENV = 0x4BC // 1212 ++ SYS___PID_AFFINITY = 0x4BD // 1213 ++ SYS___ASINH_B = 0x4BE // 1214 ++ SYS___ATAN_B = 0x4BF // 1215 ++ SYS___CBRT_B = 0x4C0 // 1216 ++ SYS___CEIL_B = 0x4C1 // 1217 ++ SYS_COPYSIGN = 0x4C2 // 1218 ++ SYS___COS_B = 0x4C3 // 1219 ++ SYS___ERF_B = 0x4C4 // 1220 ++ SYS___ERFC_B = 0x4C5 // 1221 ++ SYS___EXPM1_B = 0x4C6 // 1222 ++ SYS___FABS_B = 0x4C7 // 1223 ++ SYS_FINITE = 0x4C8 // 1224 ++ SYS___FLOOR_B = 0x4C9 // 1225 ++ SYS___FREXP_B = 0x4CA // 1226 ++ SYS___ILOGB_B = 0x4CB // 1227 ++ SYS___ISNAN_B = 0x4CC // 1228 ++ SYS___LDEXP_B = 0x4CD // 1229 ++ SYS___LOG1P_B = 0x4CE // 1230 ++ SYS___LOGB_B = 0x4CF // 1231 ++ SYS_MATHERR = 0x4D0 // 1232 ++ SYS___MODF_B = 0x4D1 // 1233 ++ SYS___NEXTAFTER_B = 0x4D2 // 1234 ++ SYS___RINT_B = 0x4D3 // 1235 ++ SYS_SCALBN = 0x4D4 // 1236 ++ SYS_SIGNIFIC = 0x4D5 // 1237 ++ SYS_SIGNIFICAND = 0x4D5 // 1237 ++ SYS___SIN_B = 0x4D6 // 1238 ++ SYS___TAN_B = 0x4D7 // 1239 ++ SYS___TANH_B = 0x4D8 // 1240 ++ SYS___ACOS_B = 0x4D9 // 1241 ++ SYS___ACOSH_B = 0x4DA // 1242 ++ SYS___ASIN_B = 0x4DB // 1243 ++ SYS___ATAN2_B = 0x4DC // 1244 ++ SYS___ATANH_B = 0x4DD // 1245 ++ SYS___COSH_B = 0x4DE // 1246 ++ SYS___EXP_B = 0x4DF // 1247 ++ SYS___FMOD_B = 0x4E0 // 1248 ++ SYS___GAMMA_B = 0x4E1 // 1249 ++ SYS_GAMMA_R = 0x4E2 // 1250 ++ SYS___HYPOT_B = 0x4E3 // 1251 ++ SYS___J0_B = 0x4E4 // 1252 ++ SYS___Y0_B = 0x4E5 // 1253 ++ SYS___J1_B = 0x4E6 // 1254 ++ SYS___Y1_B = 0x4E7 // 1255 ++ SYS___JN_B = 0x4E8 // 1256 ++ SYS___YN_B = 0x4E9 // 1257 ++ SYS___LGAMMA_B = 0x4EA // 1258 ++ SYS_LGAMMA_R = 0x4EB // 1259 ++ SYS___LOG_B = 0x4EC // 1260 ++ SYS___LOG10_B = 0x4ED // 1261 ++ SYS___POW_B = 0x4EE // 1262 ++ SYS___REMAINDER_B = 0x4EF // 1263 ++ SYS___SCALB_B = 0x4F0 // 1264 ++ SYS___SINH_B = 0x4F1 // 1265 ++ SYS___SQRT_B = 0x4F2 // 1266 ++ SYS___OPENDIR2 = 0x4F3 // 1267 ++ SYS___READDIR2 = 0x4F4 // 1268 ++ SYS___LOGIN = 0x4F5 // 1269 ++ SYS___OPEN_STAT = 0x4F6 // 1270 ++ SYS_ACCEPT_AND_RECV = 0x4F7 // 1271 ++ SYS___FP_SETMODE = 0x4F8 // 1272 ++ SYS___SIGACTIONSET = 0x4FB // 1275 ++ SYS___UCREATE = 0x4FC // 1276 ++ SYS___UMALLOC = 0x4FD // 1277 ++ SYS___UFREE = 0x4FE // 1278 ++ SYS___UHEAPREPORT = 0x4FF // 1279 ++ SYS___ISBFP = 0x500 // 1280 ++ SYS___FP_CAST = 0x501 // 1281 ++ SYS___CERTIFICATE = 0x502 // 1282 ++ SYS_SEND_FILE = 0x503 // 1283 ++ SYS_AIO_CANCEL = 0x504 // 1284 ++ SYS_AIO_ERROR = 0x505 // 1285 ++ SYS_AIO_READ = 0x506 // 1286 ++ SYS_AIO_RETURN = 0x507 // 1287 ++ SYS_AIO_SUSPEND = 0x508 // 1288 ++ SYS_AIO_WRITE = 0x509 // 1289 ++ SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A // 1290 ++ SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B // 1291 ++ SYS_PTHREAD_RWLOCK_DESTROY = 0x50C // 1292 ++ SYS_PTHREAD_RWLOCK_INIT = 0x50D // 1293 ++ SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E // 1294 ++ SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F // 1295 ++ SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 // 1296 ++ SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 // 1297 ++ SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 // 1298 ++ SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 // 1299 ++ SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 // 1300 ++ SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 // 1301 ++ SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 // 1302 ++ SYS___CTTBL = 0x517 // 1303 ++ SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 // 1304 ++ SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 // 1305 ++ SYS___FP_CLR_FLAG = 0x51A // 1306 ++ SYS___FP_READ_FLAG = 0x51B // 1307 ++ SYS___FP_RAISE_XCP = 0x51C // 1308 ++ SYS___FP_CLASS = 0x51D // 1309 ++ SYS___FP_FINITE = 0x51E // 1310 ++ SYS___FP_ISNAN = 0x51F // 1311 ++ SYS___FP_UNORDERED = 0x520 // 1312 ++ SYS___FP_READ_RND = 0x521 // 1313 ++ SYS___FP_READ_RND_B = 0x522 // 1314 ++ SYS___FP_SWAP_RND = 0x523 // 1315 ++ SYS___FP_SWAP_RND_B = 0x524 // 1316 ++ SYS___FP_LEVEL = 0x525 // 1317 ++ SYS___FP_BTOH = 0x526 // 1318 ++ SYS___FP_HTOB = 0x527 // 1319 ++ SYS___FPC_RD = 0x528 // 1320 ++ SYS___FPC_WR = 0x529 // 1321 ++ SYS___FPC_RW = 0x52A // 1322 ++ SYS___FPC_SM = 0x52B // 1323 ++ SYS___FPC_RS = 0x52C // 1324 ++ SYS_SIGTIMEDWAIT = 0x52D // 1325 ++ SYS_SIGWAITINFO = 0x52E // 1326 ++ SYS___CHKBFP = 0x52F // 1327 ++ SYS___W_PIOCTL = 0x59E // 1438 ++ SYS___OSENV = 0x59F // 1439 ++ SYS_EXPORTWO = 0x5A1 // 1441 ++ SYS_EXPORTWORKUNIT = 0x5A1 // 1441 ++ SYS_UNDOEXPO = 0x5A2 // 1442 ++ SYS_UNDOEXPORTWORKUNIT = 0x5A2 // 1442 ++ SYS_IMPORTWO = 0x5A3 // 1443 ++ SYS_IMPORTWORKUNIT = 0x5A3 // 1443 ++ SYS_UNDOIMPO = 0x5A4 // 1444 ++ SYS_UNDOIMPORTWORKUNIT = 0x5A4 // 1444 ++ SYS_EXTRACTW = 0x5A5 // 1445 ++ SYS_EXTRACTWORKUNIT = 0x5A5 // 1445 ++ SYS___CPL = 0x5A6 // 1446 ++ SYS___MAP_INIT = 0x5A7 // 1447 ++ SYS___MAP_SERVICE = 0x5A8 // 1448 ++ SYS_SIGQUEUE = 0x5A9 // 1449 ++ SYS___MOUNT = 0x5AA // 1450 ++ SYS___GETUSERID = 0x5AB // 1451 ++ SYS___IPDOMAINNAME = 0x5AC // 1452 ++ SYS_QUERYENC = 0x5AD // 1453 ++ SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD // 1453 ++ SYS_CONNECTE = 0x5AE // 1454 ++ SYS_CONNECTEXPORTIMPORT = 0x5AE // 1454 ++ SYS___FP_SWAPMODE = 0x5AF // 1455 ++ SYS_STRTOLL = 0x5B0 // 1456 ++ SYS_STRTOULL = 0x5B1 // 1457 ++ SYS___DSA_PREV = 0x5B2 // 1458 ++ SYS___EP_FIND = 0x5B3 // 1459 ++ SYS___SERVER_THREADS_QUERY = 0x5B4 // 1460 ++ SYS___MSGRCV_TIMED = 0x5B7 // 1463 ++ SYS___SEMOP_TIMED = 0x5B8 // 1464 ++ SYS___GET_CPUID = 0x5B9 // 1465 ++ SYS___GET_SYSTEM_SETTINGS = 0x5BA // 1466 ++ SYS_FTELLO = 0x5C8 // 1480 ++ SYS_FSEEKO = 0x5C9 // 1481 ++ SYS_LLDIV = 0x5CB // 1483 ++ SYS_WCSTOLL = 0x5CC // 1484 ++ SYS_WCSTOULL = 0x5CD // 1485 ++ SYS_LLABS = 0x5CE // 1486 ++ SYS___CONSOLE2 = 0x5D2 // 1490 ++ SYS_INET_NTOP = 0x5D3 // 1491 ++ SYS_INET_PTON = 0x5D4 // 1492 ++ SYS___RES = 0x5D6 // 1494 ++ SYS_RES_MKQUERY = 0x5D7 // 1495 ++ SYS_RES_INIT = 0x5D8 // 1496 ++ SYS_RES_QUERY = 0x5D9 // 1497 ++ SYS_RES_SEARCH = 0x5DA // 1498 ++ SYS_RES_SEND = 0x5DB // 1499 ++ SYS_RES_QUERYDOMAIN = 0x5DC // 1500 ++ SYS_DN_EXPAND = 0x5DD // 1501 ++ SYS_DN_SKIPNAME = 0x5DE // 1502 ++ SYS_DN_COMP = 0x5DF // 1503 ++ SYS_ASCTIME_R = 0x5E0 // 1504 ++ SYS_CTIME_R = 0x5E1 // 1505 ++ SYS_GMTIME_R = 0x5E2 // 1506 ++ SYS_LOCALTIME_R = 0x5E3 // 1507 ++ SYS_RAND_R = 0x5E4 // 1508 ++ SYS_STRTOK_R = 0x5E5 // 1509 ++ SYS_READDIR_R = 0x5E6 // 1510 ++ SYS_GETGRGID_R = 0x5E7 // 1511 ++ SYS_GETGRNAM_R = 0x5E8 // 1512 ++ SYS_GETLOGIN_R = 0x5E9 // 1513 ++ SYS_GETPWNAM_R = 0x5EA // 1514 ++ SYS_GETPWUID_R = 0x5EB // 1515 ++ SYS_TTYNAME_R = 0x5EC // 1516 ++ SYS_PTHREAD_ATFORK = 0x5ED // 1517 ++ SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE // 1518 ++ SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF // 1519 ++ SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 // 1520 ++ SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 // 1521 ++ SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 // 1522 ++ SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 // 1523 ++ SYS_PTHREAD_GETCONCURRENCY = 0x5F4 // 1524 ++ SYS_PTHREAD_KEY_DELETE = 0x5F5 // 1525 ++ SYS_PTHREAD_SETCONCURRENCY = 0x5F6 // 1526 ++ SYS_PTHREAD_SIGMASK = 0x5F7 // 1527 ++ SYS___DISCARDDATA = 0x5F8 // 1528 ++ SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 // 1529 ++ SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA // 1530 ++ SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531 ++ SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532 ++ SYS_PTHREAD_DETACH_U98 = 0x5FD // 1533 ++ SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE // 1534 ++ SYS_PTHREAD_SETCANCELSTATE = 0x5FF // 1535 ++ SYS_PTHREAD_SETCANCELTYPE = 0x600 // 1536 ++ SYS_PTHREAD_TESTCANCEL = 0x601 // 1537 ++ SYS___ATANF_B = 0x602 // 1538 ++ SYS___ATANL_B = 0x603 // 1539 ++ SYS___CEILF_B = 0x604 // 1540 ++ SYS___CEILL_B = 0x605 // 1541 ++ SYS___COSF_B = 0x606 // 1542 ++ SYS___COSL_B = 0x607 // 1543 ++ SYS___FABSF_B = 0x608 // 1544 ++ SYS___FABSL_B = 0x609 // 1545 ++ SYS___FLOORF_B = 0x60A // 1546 ++ SYS___FLOORL_B = 0x60B // 1547 ++ SYS___FREXPF_B = 0x60C // 1548 ++ SYS___FREXPL_B = 0x60D // 1549 ++ SYS___LDEXPF_B = 0x60E // 1550 ++ SYS___LDEXPL_B = 0x60F // 1551 ++ SYS___SINF_B = 0x610 // 1552 ++ SYS___SINL_B = 0x611 // 1553 ++ SYS___TANF_B = 0x612 // 1554 ++ SYS___TANL_B = 0x613 // 1555 ++ SYS___TANHF_B = 0x614 // 1556 ++ SYS___TANHL_B = 0x615 // 1557 ++ SYS___ACOSF_B = 0x616 // 1558 ++ SYS___ACOSL_B = 0x617 // 1559 ++ SYS___ASINF_B = 0x618 // 1560 ++ SYS___ASINL_B = 0x619 // 1561 ++ SYS___ATAN2F_B = 0x61A // 1562 ++ SYS___ATAN2L_B = 0x61B // 1563 ++ SYS___COSHF_B = 0x61C // 1564 ++ SYS___COSHL_B = 0x61D // 1565 ++ SYS___EXPF_B = 0x61E // 1566 ++ SYS___EXPL_B = 0x61F // 1567 ++ SYS___LOGF_B = 0x620 // 1568 ++ SYS___LOGL_B = 0x621 // 1569 ++ SYS___LOG10F_B = 0x622 // 1570 ++ SYS___LOG10L_B = 0x623 // 1571 ++ SYS___POWF_B = 0x624 // 1572 ++ SYS___POWL_B = 0x625 // 1573 ++ SYS___SINHF_B = 0x626 // 1574 ++ SYS___SINHL_B = 0x627 // 1575 ++ SYS___SQRTF_B = 0x628 // 1576 ++ SYS___SQRTL_B = 0x629 // 1577 ++ SYS___ABSF_B = 0x62A // 1578 ++ SYS___ABS_B = 0x62B // 1579 ++ SYS___ABSL_B = 0x62C // 1580 ++ SYS___FMODF_B = 0x62D // 1581 ++ SYS___FMODL_B = 0x62E // 1582 ++ SYS___MODFF_B = 0x62F // 1583 ++ SYS___MODFL_B = 0x630 // 1584 ++ SYS_ABSF = 0x631 // 1585 ++ SYS_ABSL = 0x632 // 1586 ++ SYS_ACOSF = 0x633 // 1587 ++ SYS_ACOSL = 0x634 // 1588 ++ SYS_ASINF = 0x635 // 1589 ++ SYS_ASINL = 0x636 // 1590 ++ SYS_ATAN2F = 0x637 // 1591 ++ SYS_ATAN2L = 0x638 // 1592 ++ SYS_ATANF = 0x639 // 1593 ++ SYS_ATANL = 0x63A // 1594 ++ SYS_CEILF = 0x63B // 1595 ++ SYS_CEILL = 0x63C // 1596 ++ SYS_COSF = 0x63D // 1597 ++ SYS_COSL = 0x63E // 1598 ++ SYS_COSHF = 0x63F // 1599 ++ SYS_COSHL = 0x640 // 1600 ++ SYS_EXPF = 0x641 // 1601 ++ SYS_EXPL = 0x642 // 1602 ++ SYS_TANHF = 0x643 // 1603 ++ SYS_TANHL = 0x644 // 1604 ++ SYS_LOG10F = 0x645 // 1605 ++ SYS_LOG10L = 0x646 // 1606 ++ SYS_LOGF = 0x647 // 1607 ++ SYS_LOGL = 0x648 // 1608 ++ SYS_POWF = 0x649 // 1609 ++ SYS_POWL = 0x64A // 1610 ++ SYS_SINF = 0x64B // 1611 ++ SYS_SINL = 0x64C // 1612 ++ SYS_SQRTF = 0x64D // 1613 ++ SYS_SQRTL = 0x64E // 1614 ++ SYS_SINHF = 0x64F // 1615 ++ SYS_SINHL = 0x650 // 1616 ++ SYS_TANF = 0x651 // 1617 ++ SYS_TANL = 0x652 // 1618 ++ SYS_FABSF = 0x653 // 1619 ++ SYS_FABSL = 0x654 // 1620 ++ SYS_FLOORF = 0x655 // 1621 ++ SYS_FLOORL = 0x656 // 1622 ++ SYS_FMODF = 0x657 // 1623 ++ SYS_FMODL = 0x658 // 1624 ++ SYS_FREXPF = 0x659 // 1625 ++ SYS_FREXPL = 0x65A // 1626 ++ SYS_LDEXPF = 0x65B // 1627 ++ SYS_LDEXPL = 0x65C // 1628 ++ SYS_MODFF = 0x65D // 1629 ++ SYS_MODFL = 0x65E // 1630 ++ SYS_BTOWC = 0x65F // 1631 ++ SYS___CHATTR = 0x660 // 1632 ++ SYS___FCHATTR = 0x661 // 1633 ++ SYS___TOCCSID = 0x662 // 1634 ++ SYS___CSNAMETYPE = 0x663 // 1635 ++ SYS___TOCSNAME = 0x664 // 1636 ++ SYS___CCSIDTYPE = 0x665 // 1637 ++ SYS___AE_CORRESTBL_QUERY = 0x666 // 1638 ++ SYS___AE_AUTOCONVERT_STATE = 0x667 // 1639 ++ SYS_DN_FIND = 0x668 // 1640 ++ SYS___GETHOSTBYADDR_A = 0x669 // 1641 ++ SYS___GETHOSTBYNAME_A = 0x66A // 1642 ++ SYS___RES_INIT_A = 0x66B // 1643 ++ SYS___GETHOSTBYADDR_R_A = 0x66C // 1644 ++ SYS___GETHOSTBYNAME_R_A = 0x66D // 1645 ++ SYS___CHARMAP_INIT_A = 0x66E // 1646 ++ SYS___MBLEN_A = 0x66F // 1647 ++ SYS___MBLEN_SB_A = 0x670 // 1648 ++ SYS___MBLEN_STD_A = 0x671 // 1649 ++ SYS___MBLEN_UTF = 0x672 // 1650 ++ SYS___MBSTOWCS_A = 0x673 // 1651 ++ SYS___MBSTOWCS_STD_A = 0x674 // 1652 ++ SYS___MBTOWC_A = 0x675 // 1653 ++ SYS___MBTOWC_ISO1 = 0x676 // 1654 ++ SYS___MBTOWC_SBCS = 0x677 // 1655 ++ SYS___MBTOWC_MBCS = 0x678 // 1656 ++ SYS___MBTOWC_UTF = 0x679 // 1657 ++ SYS___WCSTOMBS_A = 0x67A // 1658 ++ SYS___WCSTOMBS_STD_A = 0x67B // 1659 ++ SYS___WCSWIDTH_A = 0x67C // 1660 ++ SYS___GETGRGID_R_A = 0x67D // 1661 ++ SYS___WCSWIDTH_STD_A = 0x67E // 1662 ++ SYS___WCSWIDTH_ASIA = 0x67F // 1663 ++ SYS___CSID_A = 0x680 // 1664 ++ SYS___CSID_STD_A = 0x681 // 1665 ++ SYS___WCSID_A = 0x682 // 1666 ++ SYS___WCSID_STD_A = 0x683 // 1667 ++ SYS___WCTOMB_A = 0x684 // 1668 ++ SYS___WCTOMB_ISO1 = 0x685 // 1669 ++ SYS___WCTOMB_STD_A = 0x686 // 1670 ++ SYS___WCTOMB_UTF = 0x687 // 1671 ++ SYS___WCWIDTH_A = 0x688 // 1672 ++ SYS___GETGRNAM_R_A = 0x689 // 1673 ++ SYS___WCWIDTH_STD_A = 0x68A // 1674 ++ SYS___WCWIDTH_ASIA = 0x68B // 1675 ++ SYS___GETPWNAM_R_A = 0x68C // 1676 ++ SYS___GETPWUID_R_A = 0x68D // 1677 ++ SYS___GETLOGIN_R_A = 0x68E // 1678 ++ SYS___TTYNAME_R_A = 0x68F // 1679 ++ SYS___READDIR_R_A = 0x690 // 1680 ++ SYS___E2A_S = 0x691 // 1681 ++ SYS___FNMATCH_A = 0x692 // 1682 ++ SYS___FNMATCH_C_A = 0x693 // 1683 ++ SYS___EXECL_A = 0x694 // 1684 ++ SYS___FNMATCH_STD_A = 0x695 // 1685 ++ SYS___REGCOMP_A = 0x696 // 1686 ++ SYS___REGCOMP_STD_A = 0x697 // 1687 ++ SYS___REGERROR_A = 0x698 // 1688 ++ SYS___REGERROR_STD_A = 0x699 // 1689 ++ SYS___REGEXEC_A = 0x69A // 1690 ++ SYS___REGEXEC_STD_A = 0x69B // 1691 ++ SYS___REGFREE_A = 0x69C // 1692 ++ SYS___REGFREE_STD_A = 0x69D // 1693 ++ SYS___STRCOLL_A = 0x69E // 1694 ++ SYS___STRCOLL_C_A = 0x69F // 1695 ++ SYS___EXECLE_A = 0x6A0 // 1696 ++ SYS___STRCOLL_STD_A = 0x6A1 // 1697 ++ SYS___STRXFRM_A = 0x6A2 // 1698 ++ SYS___STRXFRM_C_A = 0x6A3 // 1699 ++ SYS___EXECLP_A = 0x6A4 // 1700 ++ SYS___STRXFRM_STD_A = 0x6A5 // 1701 ++ SYS___WCSCOLL_A = 0x6A6 // 1702 ++ SYS___WCSCOLL_C_A = 0x6A7 // 1703 ++ SYS___WCSCOLL_STD_A = 0x6A8 // 1704 ++ SYS___WCSXFRM_A = 0x6A9 // 1705 ++ SYS___WCSXFRM_C_A = 0x6AA // 1706 ++ SYS___WCSXFRM_STD_A = 0x6AB // 1707 ++ SYS___COLLATE_INIT_A = 0x6AC // 1708 ++ SYS___WCTYPE_A = 0x6AD // 1709 ++ SYS___GET_WCTYPE_STD_A = 0x6AE // 1710 ++ SYS___CTYPE_INIT_A = 0x6AF // 1711 ++ SYS___ISWCTYPE_A = 0x6B0 // 1712 ++ SYS___EXECV_A = 0x6B1 // 1713 ++ SYS___IS_WCTYPE_STD_A = 0x6B2 // 1714 ++ SYS___TOWLOWER_A = 0x6B3 // 1715 ++ SYS___TOWLOWER_STD_A = 0x6B4 // 1716 ++ SYS___TOWUPPER_A = 0x6B5 // 1717 ++ SYS___TOWUPPER_STD_A = 0x6B6 // 1718 ++ SYS___LOCALE_INIT_A = 0x6B7 // 1719 ++ SYS___LOCALECONV_A = 0x6B8 // 1720 ++ SYS___LOCALECONV_STD_A = 0x6B9 // 1721 ++ SYS___NL_LANGINFO_A = 0x6BA // 1722 ++ SYS___NL_LNAGINFO_STD_A = 0x6BB // 1723 ++ SYS___MONETARY_INIT_A = 0x6BC // 1724 ++ SYS___STRFMON_A = 0x6BD // 1725 ++ SYS___STRFMON_STD_A = 0x6BE // 1726 ++ SYS___GETADDRINFO_A = 0x6BF // 1727 ++ SYS___CATGETS_A = 0x6C0 // 1728 ++ SYS___EXECVE_A = 0x6C1 // 1729 ++ SYS___EXECVP_A = 0x6C2 // 1730 ++ SYS___SPAWN_A = 0x6C3 // 1731 ++ SYS___GETNAMEINFO_A = 0x6C4 // 1732 ++ SYS___SPAWNP_A = 0x6C5 // 1733 ++ SYS___NUMERIC_INIT_A = 0x6C6 // 1734 ++ SYS___RESP_INIT_A = 0x6C7 // 1735 ++ SYS___RPMATCH_A = 0x6C8 // 1736 ++ SYS___RPMATCH_C_A = 0x6C9 // 1737 ++ SYS___RPMATCH_STD_A = 0x6CA // 1738 ++ SYS___TIME_INIT_A = 0x6CB // 1739 ++ SYS___STRFTIME_A = 0x6CC // 1740 ++ SYS___STRFTIME_STD_A = 0x6CD // 1741 ++ SYS___STRPTIME_A = 0x6CE // 1742 ++ SYS___STRPTIME_STD_A = 0x6CF // 1743 ++ SYS___WCSFTIME_A = 0x6D0 // 1744 ++ SYS___WCSFTIME_STD_A = 0x6D1 // 1745 ++ SYS_____SPAWN2_A = 0x6D2 // 1746 ++ SYS_____SPAWNP2_A = 0x6D3 // 1747 ++ SYS___SYNTAX_INIT_A = 0x6D4 // 1748 ++ SYS___TOD_INIT_A = 0x6D5 // 1749 ++ SYS___NL_CSINFO_A = 0x6D6 // 1750 ++ SYS___NL_MONINFO_A = 0x6D7 // 1751 ++ SYS___NL_NUMINFO_A = 0x6D8 // 1752 ++ SYS___NL_RESPINFO_A = 0x6D9 // 1753 ++ SYS___NL_TIMINFO_A = 0x6DA // 1754 ++ SYS___IF_NAMETOINDEX_A = 0x6DB // 1755 ++ SYS___IF_INDEXTONAME_A = 0x6DC // 1756 ++ SYS___PRINTF_A = 0x6DD // 1757 ++ SYS___ICONV_OPEN_A = 0x6DE // 1758 ++ SYS___DLLLOAD_A = 0x6DF // 1759 ++ SYS___DLLQUERYFN_A = 0x6E0 // 1760 ++ SYS___DLLQUERYVAR_A = 0x6E1 // 1761 ++ SYS_____CHATTR_A = 0x6E2 // 1762 ++ SYS___E2A_L = 0x6E3 // 1763 ++ SYS_____TOCCSID_A = 0x6E4 // 1764 ++ SYS_____TOCSNAME_A = 0x6E5 // 1765 ++ SYS_____CCSIDTYPE_A = 0x6E6 // 1766 ++ SYS_____CSNAMETYPE_A = 0x6E7 // 1767 ++ SYS___CHMOD_A = 0x6E8 // 1768 ++ SYS___MKDIR_A = 0x6E9 // 1769 ++ SYS___STAT_A = 0x6EA // 1770 ++ SYS___STAT_O_A = 0x6EB // 1771 ++ SYS___MKFIFO_A = 0x6EC // 1772 ++ SYS_____OPEN_STAT_A = 0x6ED // 1773 ++ SYS___LSTAT_A = 0x6EE // 1774 ++ SYS___LSTAT_O_A = 0x6EF // 1775 ++ SYS___MKNOD_A = 0x6F0 // 1776 ++ SYS___MOUNT_A = 0x6F1 // 1777 ++ SYS___UMOUNT_A = 0x6F2 // 1778 ++ SYS___CHAUDIT_A = 0x6F4 // 1780 ++ SYS___W_GETMNTENT_A = 0x6F5 // 1781 ++ SYS___CREAT_A = 0x6F6 // 1782 ++ SYS___OPEN_A = 0x6F7 // 1783 ++ SYS___SETLOCALE_A = 0x6F9 // 1785 ++ SYS___FPRINTF_A = 0x6FA // 1786 ++ SYS___SPRINTF_A = 0x6FB // 1787 ++ SYS___VFPRINTF_A = 0x6FC // 1788 ++ SYS___VPRINTF_A = 0x6FD // 1789 ++ SYS___VSPRINTF_A = 0x6FE // 1790 ++ SYS___VSWPRINTF_A = 0x6FF // 1791 ++ SYS___SWPRINTF_A = 0x700 // 1792 ++ SYS___FSCANF_A = 0x701 // 1793 ++ SYS___SCANF_A = 0x702 // 1794 ++ SYS___SSCANF_A = 0x703 // 1795 ++ SYS___SWSCANF_A = 0x704 // 1796 ++ SYS___ATOF_A = 0x705 // 1797 ++ SYS___ATOI_A = 0x706 // 1798 ++ SYS___ATOL_A = 0x707 // 1799 ++ SYS___STRTOD_A = 0x708 // 1800 ++ SYS___STRTOL_A = 0x709 // 1801 ++ SYS___STRTOUL_A = 0x70A // 1802 ++ SYS_____AE_CORRESTBL_QUERY_A = 0x70B // 1803 ++ SYS___A64L_A = 0x70C // 1804 ++ SYS___ECVT_A = 0x70D // 1805 ++ SYS___FCVT_A = 0x70E // 1806 ++ SYS___GCVT_A = 0x70F // 1807 ++ SYS___L64A_A = 0x710 // 1808 ++ SYS___STRERROR_A = 0x711 // 1809 ++ SYS___PERROR_A = 0x712 // 1810 ++ SYS___FETCH_A = 0x713 // 1811 ++ SYS___GETENV_A = 0x714 // 1812 ++ SYS___MKSTEMP_A = 0x717 // 1815 ++ SYS___PTSNAME_A = 0x718 // 1816 ++ SYS___PUTENV_A = 0x719 // 1817 ++ SYS___REALPATH_A = 0x71A // 1818 ++ SYS___SETENV_A = 0x71B // 1819 ++ SYS___SYSTEM_A = 0x71C // 1820 ++ SYS___GETOPT_A = 0x71D // 1821 ++ SYS___CATOPEN_A = 0x71E // 1822 ++ SYS___ACCESS_A = 0x71F // 1823 ++ SYS___CHDIR_A = 0x720 // 1824 ++ SYS___CHOWN_A = 0x721 // 1825 ++ SYS___CHROOT_A = 0x722 // 1826 ++ SYS___GETCWD_A = 0x723 // 1827 ++ SYS___GETWD_A = 0x724 // 1828 ++ SYS___LCHOWN_A = 0x725 // 1829 ++ SYS___LINK_A = 0x726 // 1830 ++ SYS___PATHCONF_A = 0x727 // 1831 ++ SYS___IF_NAMEINDEX_A = 0x728 // 1832 ++ SYS___READLINK_A = 0x729 // 1833 ++ SYS___RMDIR_A = 0x72A // 1834 ++ SYS___STATVFS_A = 0x72B // 1835 ++ SYS___SYMLINK_A = 0x72C // 1836 ++ SYS___TRUNCATE_A = 0x72D // 1837 ++ SYS___UNLINK_A = 0x72E // 1838 ++ SYS___GAI_STRERROR_A = 0x72F // 1839 ++ SYS___EXTLINK_NP_A = 0x730 // 1840 ++ SYS___ISALNUM_A = 0x731 // 1841 ++ SYS___ISALPHA_A = 0x732 // 1842 ++ SYS___A2E_S = 0x733 // 1843 ++ SYS___ISCNTRL_A = 0x734 // 1844 ++ SYS___ISDIGIT_A = 0x735 // 1845 ++ SYS___ISGRAPH_A = 0x736 // 1846 ++ SYS___ISLOWER_A = 0x737 // 1847 ++ SYS___ISPRINT_A = 0x738 // 1848 ++ SYS___ISPUNCT_A = 0x739 // 1849 ++ SYS___ISSPACE_A = 0x73A // 1850 ++ SYS___ISUPPER_A = 0x73B // 1851 ++ SYS___ISXDIGIT_A = 0x73C // 1852 ++ SYS___TOLOWER_A = 0x73D // 1853 ++ SYS___TOUPPER_A = 0x73E // 1854 ++ SYS___ISWALNUM_A = 0x73F // 1855 ++ SYS___ISWALPHA_A = 0x740 // 1856 ++ SYS___A2E_L = 0x741 // 1857 ++ SYS___ISWCNTRL_A = 0x742 // 1858 ++ SYS___ISWDIGIT_A = 0x743 // 1859 ++ SYS___ISWGRAPH_A = 0x744 // 1860 ++ SYS___ISWLOWER_A = 0x745 // 1861 ++ SYS___ISWPRINT_A = 0x746 // 1862 ++ SYS___ISWPUNCT_A = 0x747 // 1863 ++ SYS___ISWSPACE_A = 0x748 // 1864 ++ SYS___ISWUPPER_A = 0x749 // 1865 ++ SYS___ISWXDIGIT_A = 0x74A // 1866 ++ SYS___CONFSTR_A = 0x74B // 1867 ++ SYS___FTOK_A = 0x74C // 1868 ++ SYS___MKTEMP_A = 0x74D // 1869 ++ SYS___FDOPEN_A = 0x74E // 1870 ++ SYS___FLDATA_A = 0x74F // 1871 ++ SYS___REMOVE_A = 0x750 // 1872 ++ SYS___RENAME_A = 0x751 // 1873 ++ SYS___TMPNAM_A = 0x752 // 1874 ++ SYS___FOPEN_A = 0x753 // 1875 ++ SYS___FREOPEN_A = 0x754 // 1876 ++ SYS___CUSERID_A = 0x755 // 1877 ++ SYS___POPEN_A = 0x756 // 1878 ++ SYS___TEMPNAM_A = 0x757 // 1879 ++ SYS___FTW_A = 0x758 // 1880 ++ SYS___GETGRENT_A = 0x759 // 1881 ++ SYS___GETGRGID_A = 0x75A // 1882 ++ SYS___GETGRNAM_A = 0x75B // 1883 ++ SYS___GETGROUPSBYNAME_A = 0x75C // 1884 ++ SYS___GETHOSTENT_A = 0x75D // 1885 ++ SYS___GETHOSTNAME_A = 0x75E // 1886 ++ SYS___GETLOGIN_A = 0x75F // 1887 ++ SYS___INET_NTOP_A = 0x760 // 1888 ++ SYS___GETPASS_A = 0x761 // 1889 ++ SYS___GETPWENT_A = 0x762 // 1890 ++ SYS___GETPWNAM_A = 0x763 // 1891 ++ SYS___GETPWUID_A = 0x764 // 1892 ++ SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 // 1893 ++ SYS___CHECKSCHENV_A = 0x766 // 1894 ++ SYS___CONNECTSERVER_A = 0x767 // 1895 ++ SYS___CONNECTWORKMGR_A = 0x768 // 1896 ++ SYS_____CONSOLE_A = 0x769 // 1897 ++ SYS___CREATEWORKUNIT_A = 0x76A // 1898 ++ SYS___CTERMID_A = 0x76B // 1899 ++ SYS___FMTMSG_A = 0x76C // 1900 ++ SYS___INITGROUPS_A = 0x76D // 1901 ++ SYS_____LOGIN_A = 0x76E // 1902 ++ SYS___MSGRCV_A = 0x76F // 1903 ++ SYS___MSGSND_A = 0x770 // 1904 ++ SYS___MSGXRCV_A = 0x771 // 1905 ++ SYS___NFTW_A = 0x772 // 1906 ++ SYS_____PASSWD_A = 0x773 // 1907 ++ SYS___PTHREAD_SECURITY_NP_A = 0x774 // 1908 ++ SYS___QUERYMETRICS_A = 0x775 // 1909 ++ SYS___QUERYSCHENV = 0x776 // 1910 ++ SYS___READV_A = 0x777 // 1911 ++ SYS_____SERVER_CLASSIFY_A = 0x778 // 1912 ++ SYS_____SERVER_INIT_A = 0x779 // 1913 ++ SYS_____SERVER_PWU_A = 0x77A // 1914 ++ SYS___STRCASECMP_A = 0x77B // 1915 ++ SYS___STRNCASECMP_A = 0x77C // 1916 ++ SYS___TTYNAME_A = 0x77D // 1917 ++ SYS___UNAME_A = 0x77E // 1918 ++ SYS___UTIMES_A = 0x77F // 1919 ++ SYS___W_GETPSENT_A = 0x780 // 1920 ++ SYS___WRITEV_A = 0x781 // 1921 ++ SYS___W_STATFS_A = 0x782 // 1922 ++ SYS___W_STATVFS_A = 0x783 // 1923 ++ SYS___FPUTC_A = 0x784 // 1924 ++ SYS___PUTCHAR_A = 0x785 // 1925 ++ SYS___PUTS_A = 0x786 // 1926 ++ SYS___FGETS_A = 0x787 // 1927 ++ SYS___GETS_A = 0x788 // 1928 ++ SYS___FPUTS_A = 0x789 // 1929 ++ SYS___FREAD_A = 0x78A // 1930 ++ SYS___FWRITE_A = 0x78B // 1931 ++ SYS___OPEN_O_A = 0x78C // 1932 ++ SYS___ISASCII = 0x78D // 1933 ++ SYS___CREAT_O_A = 0x78E // 1934 ++ SYS___ENVNA = 0x78F // 1935 ++ SYS___PUTC_A = 0x790 // 1936 ++ SYS___AE_THREAD_SETMODE = 0x791 // 1937 ++ SYS___AE_THREAD_SWAPMODE = 0x792 // 1938 ++ SYS___GETNETBYADDR_A = 0x793 // 1939 ++ SYS___GETNETBYNAME_A = 0x794 // 1940 ++ SYS___GETNETENT_A = 0x795 // 1941 ++ SYS___GETPROTOBYNAME_A = 0x796 // 1942 ++ SYS___GETPROTOBYNUMBER_A = 0x797 // 1943 ++ SYS___GETPROTOENT_A = 0x798 // 1944 ++ SYS___GETSERVBYNAME_A = 0x799 // 1945 ++ SYS___GETSERVBYPORT_A = 0x79A // 1946 ++ SYS___GETSERVENT_A = 0x79B // 1947 ++ SYS___ASCTIME_A = 0x79C // 1948 ++ SYS___CTIME_A = 0x79D // 1949 ++ SYS___GETDATE_A = 0x79E // 1950 ++ SYS___TZSET_A = 0x79F // 1951 ++ SYS___UTIME_A = 0x7A0 // 1952 ++ SYS___ASCTIME_R_A = 0x7A1 // 1953 ++ SYS___CTIME_R_A = 0x7A2 // 1954 ++ SYS___STRTOLL_A = 0x7A3 // 1955 ++ SYS___STRTOULL_A = 0x7A4 // 1956 ++ SYS___FPUTWC_A = 0x7A5 // 1957 ++ SYS___PUTWC_A = 0x7A6 // 1958 ++ SYS___PUTWCHAR_A = 0x7A7 // 1959 ++ SYS___FPUTWS_A = 0x7A8 // 1960 ++ SYS___UNGETWC_A = 0x7A9 // 1961 ++ SYS___FGETWC_A = 0x7AA // 1962 ++ SYS___GETWC_A = 0x7AB // 1963 ++ SYS___GETWCHAR_A = 0x7AC // 1964 ++ SYS___FGETWS_A = 0x7AD // 1965 ++ SYS___GETTIMEOFDAY_A = 0x7AE // 1966 ++ SYS___GMTIME_A = 0x7AF // 1967 ++ SYS___GMTIME_R_A = 0x7B0 // 1968 ++ SYS___LOCALTIME_A = 0x7B1 // 1969 ++ SYS___LOCALTIME_R_A = 0x7B2 // 1970 ++ SYS___MKTIME_A = 0x7B3 // 1971 ++ SYS___TZZNA = 0x7B4 // 1972 ++ SYS_UNATEXIT = 0x7B5 // 1973 ++ SYS___CEE3DMP_A = 0x7B6 // 1974 ++ SYS___CDUMP_A = 0x7B7 // 1975 ++ SYS___CSNAP_A = 0x7B8 // 1976 ++ SYS___CTEST_A = 0x7B9 // 1977 ++ SYS___CTRACE_A = 0x7BA // 1978 ++ SYS___VSWPRNTF2_A = 0x7BB // 1979 ++ SYS___INET_PTON_A = 0x7BC // 1980 ++ SYS___SYSLOG_A = 0x7BD // 1981 ++ SYS___CRYPT_A = 0x7BE // 1982 ++ SYS_____OPENDIR2_A = 0x7BF // 1983 ++ SYS_____READDIR2_A = 0x7C0 // 1984 ++ SYS___OPENDIR_A = 0x7C2 // 1986 ++ SYS___READDIR_A = 0x7C3 // 1987 ++ SYS_PREAD = 0x7C7 // 1991 ++ SYS_PWRITE = 0x7C8 // 1992 ++ SYS_M_CREATE_LAYOUT = 0x7C9 // 1993 ++ SYS_M_DESTROY_LAYOUT = 0x7CA // 1994 ++ SYS_M_GETVALUES_LAYOUT = 0x7CB // 1995 ++ SYS_M_SETVALUES_LAYOUT = 0x7CC // 1996 ++ SYS_M_TRANSFORM_LAYOUT = 0x7CD // 1997 ++ SYS_M_WTRANSFORM_LAYOUT = 0x7CE // 1998 ++ SYS_FWPRINTF = 0x7D1 // 2001 ++ SYS_WPRINTF = 0x7D2 // 2002 ++ SYS_VFWPRINT = 0x7D3 // 2003 ++ SYS_VFWPRINTF = 0x7D3 // 2003 ++ SYS_VWPRINTF = 0x7D4 // 2004 ++ SYS_FWSCANF = 0x7D5 // 2005 ++ SYS_WSCANF = 0x7D6 // 2006 ++ SYS_WCTRANS = 0x7D7 // 2007 ++ SYS_TOWCTRAN = 0x7D8 // 2008 ++ SYS_TOWCTRANS = 0x7D8 // 2008 ++ SYS___WCSTOD_A = 0x7D9 // 2009 ++ SYS___WCSTOL_A = 0x7DA // 2010 ++ SYS___WCSTOUL_A = 0x7DB // 2011 ++ SYS___BASENAME_A = 0x7DC // 2012 ++ SYS___DIRNAME_A = 0x7DD // 2013 ++ SYS___GLOB_A = 0x7DE // 2014 ++ SYS_FWIDE = 0x7DF // 2015 ++ SYS___OSNAME = 0x7E0 // 2016 ++ SYS_____OSNAME_A = 0x7E1 // 2017 ++ SYS___BTOWC_A = 0x7E4 // 2020 ++ SYS___WCTOB_A = 0x7E5 // 2021 ++ SYS___DBM_OPEN_A = 0x7E6 // 2022 ++ SYS___VFPRINTF2_A = 0x7E7 // 2023 ++ SYS___VPRINTF2_A = 0x7E8 // 2024 ++ SYS___VSPRINTF2_A = 0x7E9 // 2025 ++ SYS___CEIL_H = 0x7EA // 2026 ++ SYS___FLOOR_H = 0x7EB // 2027 ++ SYS___MODF_H = 0x7EC // 2028 ++ SYS___FABS_H = 0x7ED // 2029 ++ SYS___J0_H = 0x7EE // 2030 ++ SYS___J1_H = 0x7EF // 2031 ++ SYS___JN_H = 0x7F0 // 2032 ++ SYS___Y0_H = 0x7F1 // 2033 ++ SYS___Y1_H = 0x7F2 // 2034 ++ SYS___YN_H = 0x7F3 // 2035 ++ SYS___CEILF_H = 0x7F4 // 2036 ++ SYS___CEILL_H = 0x7F5 // 2037 ++ SYS___FLOORF_H = 0x7F6 // 2038 ++ SYS___FLOORL_H = 0x7F7 // 2039 ++ SYS___MODFF_H = 0x7F8 // 2040 ++ SYS___MODFL_H = 0x7F9 // 2041 ++ SYS___FABSF_H = 0x7FA // 2042 ++ SYS___FABSL_H = 0x7FB // 2043 ++ SYS___MALLOC24 = 0x7FC // 2044 ++ SYS___MALLOC31 = 0x7FD // 2045 ++ SYS_ACL_INIT = 0x7FE // 2046 ++ SYS_ACL_FREE = 0x7FF // 2047 ++ SYS_ACL_FIRST_ENTRY = 0x800 // 2048 ++ SYS_ACL_GET_ENTRY = 0x801 // 2049 ++ SYS_ACL_VALID = 0x802 // 2050 ++ SYS_ACL_CREATE_ENTRY = 0x803 // 2051 ++ SYS_ACL_DELETE_ENTRY = 0x804 // 2052 ++ SYS_ACL_UPDATE_ENTRY = 0x805 // 2053 ++ SYS_ACL_DELETE_FD = 0x806 // 2054 ++ SYS_ACL_DELETE_FILE = 0x807 // 2055 ++ SYS_ACL_GET_FD = 0x808 // 2056 ++ SYS_ACL_GET_FILE = 0x809 // 2057 ++ SYS_ACL_SET_FD = 0x80A // 2058 ++ SYS_ACL_SET_FILE = 0x80B // 2059 ++ SYS_ACL_FROM_TEXT = 0x80C // 2060 ++ SYS_ACL_TO_TEXT = 0x80D // 2061 ++ SYS_ACL_SORT = 0x80E // 2062 ++ SYS___SHUTDOWN_REGISTRATION = 0x80F // 2063 ++ SYS___ERFL_B = 0x810 // 2064 ++ SYS___ERFCL_B = 0x811 // 2065 ++ SYS___LGAMMAL_B = 0x812 // 2066 ++ SYS___SETHOOKEVENTS = 0x813 // 2067 ++ SYS_IF_NAMETOINDEX = 0x814 // 2068 ++ SYS_IF_INDEXTONAME = 0x815 // 2069 ++ SYS_IF_NAMEINDEX = 0x816 // 2070 ++ SYS_IF_FREENAMEINDEX = 0x817 // 2071 ++ SYS_GETADDRINFO = 0x818 // 2072 ++ SYS_GETNAMEINFO = 0x819 // 2073 ++ SYS_FREEADDRINFO = 0x81A // 2074 ++ SYS_GAI_STRERROR = 0x81B // 2075 ++ SYS_REXEC_AF = 0x81C // 2076 ++ SYS___POE = 0x81D // 2077 ++ SYS___DYNALLOC_A = 0x81F // 2079 ++ SYS___DYNFREE_A = 0x820 // 2080 ++ SYS___RES_QUERY_A = 0x821 // 2081 ++ SYS___RES_SEARCH_A = 0x822 // 2082 ++ SYS___RES_QUERYDOMAIN_A = 0x823 // 2083 ++ SYS___RES_MKQUERY_A = 0x824 // 2084 ++ SYS___RES_SEND_A = 0x825 // 2085 ++ SYS___DN_EXPAND_A = 0x826 // 2086 ++ SYS___DN_SKIPNAME_A = 0x827 // 2087 ++ SYS___DN_COMP_A = 0x828 // 2088 ++ SYS___DN_FIND_A = 0x829 // 2089 ++ SYS___NLIST_A = 0x82A // 2090 ++ SYS_____TCGETCP_A = 0x82B // 2091 ++ SYS_____TCSETCP_A = 0x82C // 2092 ++ SYS_____W_PIOCTL_A = 0x82E // 2094 ++ SYS___INET_ADDR_A = 0x82F // 2095 ++ SYS___INET_NTOA_A = 0x830 // 2096 ++ SYS___INET_NETWORK_A = 0x831 // 2097 ++ SYS___ACCEPT_A = 0x832 // 2098 ++ SYS___ACCEPT_AND_RECV_A = 0x833 // 2099 ++ SYS___BIND_A = 0x834 // 2100 ++ SYS___CONNECT_A = 0x835 // 2101 ++ SYS___GETPEERNAME_A = 0x836 // 2102 ++ SYS___GETSOCKNAME_A = 0x837 // 2103 ++ SYS___RECVFROM_A = 0x838 // 2104 ++ SYS___SENDTO_A = 0x839 // 2105 ++ SYS___SENDMSG_A = 0x83A // 2106 ++ SYS___RECVMSG_A = 0x83B // 2107 ++ SYS_____LCHATTR_A = 0x83C // 2108 ++ SYS___CABEND = 0x83D // 2109 ++ SYS___LE_CIB_GET = 0x83E // 2110 ++ SYS___SET_LAA_FOR_JIT = 0x83F // 2111 ++ SYS___LCHATTR = 0x840 // 2112 ++ SYS___WRITEDOWN = 0x841 // 2113 ++ SYS_PTHREAD_MUTEX_INIT2 = 0x842 // 2114 ++ SYS___ACOSHF_B = 0x843 // 2115 ++ SYS___ACOSHL_B = 0x844 // 2116 ++ SYS___ASINHF_B = 0x845 // 2117 ++ SYS___ASINHL_B = 0x846 // 2118 ++ SYS___ATANHF_B = 0x847 // 2119 ++ SYS___ATANHL_B = 0x848 // 2120 ++ SYS___CBRTF_B = 0x849 // 2121 ++ SYS___CBRTL_B = 0x84A // 2122 ++ SYS___COPYSIGNF_B = 0x84B // 2123 ++ SYS___COPYSIGNL_B = 0x84C // 2124 ++ SYS___COTANF_B = 0x84D // 2125 ++ SYS___COTAN_B = 0x84E // 2126 ++ SYS___COTANL_B = 0x84F // 2127 ++ SYS___EXP2F_B = 0x850 // 2128 ++ SYS___EXP2L_B = 0x851 // 2129 ++ SYS___EXPM1F_B = 0x852 // 2130 ++ SYS___EXPM1L_B = 0x853 // 2131 ++ SYS___FDIMF_B = 0x854 // 2132 ++ SYS___FDIM_B = 0x855 // 2133 ++ SYS___FDIML_B = 0x856 // 2134 ++ SYS___HYPOTF_B = 0x857 // 2135 ++ SYS___HYPOTL_B = 0x858 // 2136 ++ SYS___LOG1PF_B = 0x859 // 2137 ++ SYS___LOG1PL_B = 0x85A // 2138 ++ SYS___LOG2F_B = 0x85B // 2139 ++ SYS___LOG2_B = 0x85C // 2140 ++ SYS___LOG2L_B = 0x85D // 2141 ++ SYS___REMAINDERF_B = 0x85E // 2142 ++ SYS___REMAINDERL_B = 0x85F // 2143 ++ SYS___REMQUOF_B = 0x860 // 2144 ++ SYS___REMQUO_B = 0x861 // 2145 ++ SYS___REMQUOL_B = 0x862 // 2146 ++ SYS___TGAMMAF_B = 0x863 // 2147 ++ SYS___TGAMMA_B = 0x864 // 2148 ++ SYS___TGAMMAL_B = 0x865 // 2149 ++ SYS___TRUNCF_B = 0x866 // 2150 ++ SYS___TRUNC_B = 0x867 // 2151 ++ SYS___TRUNCL_B = 0x868 // 2152 ++ SYS___LGAMMAF_B = 0x869 // 2153 ++ SYS___LROUNDF_B = 0x86A // 2154 ++ SYS___LROUND_B = 0x86B // 2155 ++ SYS___ERFF_B = 0x86C // 2156 ++ SYS___ERFCF_B = 0x86D // 2157 ++ SYS_ACOSHF = 0x86E // 2158 ++ SYS_ACOSHL = 0x86F // 2159 ++ SYS_ASINHF = 0x870 // 2160 ++ SYS_ASINHL = 0x871 // 2161 ++ SYS_ATANHF = 0x872 // 2162 ++ SYS_ATANHL = 0x873 // 2163 ++ SYS_CBRTF = 0x874 // 2164 ++ SYS_CBRTL = 0x875 // 2165 ++ SYS_COPYSIGNF = 0x876 // 2166 ++ SYS_CPYSIGNF = 0x876 // 2166 ++ SYS_COPYSIGNL = 0x877 // 2167 ++ SYS_CPYSIGNL = 0x877 // 2167 ++ SYS_COTANF = 0x878 // 2168 ++ SYS___COTANF = 0x878 // 2168 ++ SYS_COTAN = 0x879 // 2169 ++ SYS___COTAN = 0x879 // 2169 ++ SYS_COTANL = 0x87A // 2170 ++ SYS___COTANL = 0x87A // 2170 ++ SYS_EXP2F = 0x87B // 2171 ++ SYS_EXP2L = 0x87C // 2172 ++ SYS_EXPM1F = 0x87D // 2173 ++ SYS_EXPM1L = 0x87E // 2174 ++ SYS_FDIMF = 0x87F // 2175 ++ SYS_FDIM = 0x881 // 2177 ++ SYS_FDIML = 0x882 // 2178 ++ SYS_HYPOTF = 0x883 // 2179 ++ SYS_HYPOTL = 0x884 // 2180 ++ SYS_LOG1PF = 0x885 // 2181 ++ SYS_LOG1PL = 0x886 // 2182 ++ SYS_LOG2F = 0x887 // 2183 ++ SYS_LOG2 = 0x888 // 2184 ++ SYS_LOG2L = 0x889 // 2185 ++ SYS_REMAINDERF = 0x88A // 2186 ++ SYS_REMAINDF = 0x88A // 2186 ++ SYS_REMAINDERL = 0x88B // 2187 ++ SYS_REMAINDL = 0x88B // 2187 ++ SYS_REMQUOF = 0x88C // 2188 ++ SYS_REMQUO = 0x88D // 2189 ++ SYS_REMQUOL = 0x88E // 2190 ++ SYS_TGAMMAF = 0x88F // 2191 ++ SYS_TGAMMA = 0x890 // 2192 ++ SYS_TGAMMAL = 0x891 // 2193 ++ SYS_TRUNCF = 0x892 // 2194 ++ SYS_TRUNC = 0x893 // 2195 ++ SYS_TRUNCL = 0x894 // 2196 ++ SYS_LGAMMAF = 0x895 // 2197 ++ SYS_LGAMMAL = 0x896 // 2198 ++ SYS_LROUNDF = 0x897 // 2199 ++ SYS_LROUND = 0x898 // 2200 ++ SYS_ERFF = 0x899 // 2201 ++ SYS_ERFL = 0x89A // 2202 ++ SYS_ERFCF = 0x89B // 2203 ++ SYS_ERFCL = 0x89C // 2204 ++ SYS___EXP2_B = 0x89D // 2205 ++ SYS_EXP2 = 0x89E // 2206 ++ SYS___FAR_JUMP = 0x89F // 2207 ++ SYS___TCGETATTR_A = 0x8A1 // 2209 ++ SYS___TCSETATTR_A = 0x8A2 // 2210 ++ SYS___SUPERKILL = 0x8A4 // 2212 ++ SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 // 2213 ++ SYS___LE_MSG_ADD_INSERT = 0x8A6 // 2214 ++ SYS___LE_MSG_GET = 0x8A7 // 2215 ++ SYS___LE_MSG_GET_AND_WRITE = 0x8A8 // 2216 ++ SYS___LE_MSG_WRITE = 0x8A9 // 2217 ++ SYS___ITOA = 0x8AA // 2218 ++ SYS___UTOA = 0x8AB // 2219 ++ SYS___LTOA = 0x8AC // 2220 ++ SYS___ULTOA = 0x8AD // 2221 ++ SYS___LLTOA = 0x8AE // 2222 ++ SYS___ULLTOA = 0x8AF // 2223 ++ SYS___ITOA_A = 0x8B0 // 2224 ++ SYS___UTOA_A = 0x8B1 // 2225 ++ SYS___LTOA_A = 0x8B2 // 2226 ++ SYS___ULTOA_A = 0x8B3 // 2227 ++ SYS___LLTOA_A = 0x8B4 // 2228 ++ SYS___ULLTOA_A = 0x8B5 // 2229 ++ SYS_____GETENV_A = 0x8C3 // 2243 ++ SYS___REXEC_A = 0x8C4 // 2244 ++ SYS___REXEC_AF_A = 0x8C5 // 2245 ++ SYS___GETUTXENT_A = 0x8C6 // 2246 ++ SYS___GETUTXID_A = 0x8C7 // 2247 ++ SYS___GETUTXLINE_A = 0x8C8 // 2248 ++ SYS___PUTUTXLINE_A = 0x8C9 // 2249 ++ SYS_____UTMPXNAME_A = 0x8CA // 2250 ++ SYS___PUTC_UNLOCKED_A = 0x8CB // 2251 ++ SYS___PUTCHAR_UNLOCKED_A = 0x8CC // 2252 ++ SYS___SNPRINTF_A = 0x8CD // 2253 ++ SYS___VSNPRINTF_A = 0x8CE // 2254 ++ SYS___DLOPEN_A = 0x8D0 // 2256 ++ SYS___DLSYM_A = 0x8D1 // 2257 ++ SYS___DLERROR_A = 0x8D2 // 2258 ++ SYS_FLOCKFILE = 0x8D3 // 2259 ++ SYS_FTRYLOCKFILE = 0x8D4 // 2260 ++ SYS_FUNLOCKFILE = 0x8D5 // 2261 ++ SYS_GETC_UNLOCKED = 0x8D6 // 2262 ++ SYS_GETCHAR_UNLOCKED = 0x8D7 // 2263 ++ SYS_PUTC_UNLOCKED = 0x8D8 // 2264 ++ SYS_PUTCHAR_UNLOCKED = 0x8D9 // 2265 ++ SYS_SNPRINTF = 0x8DA // 2266 ++ SYS_VSNPRINTF = 0x8DB // 2267 ++ SYS_DLOPEN = 0x8DD // 2269 ++ SYS_DLSYM = 0x8DE // 2270 ++ SYS_DLCLOSE = 0x8DF // 2271 ++ SYS_DLERROR = 0x8E0 // 2272 ++ SYS___SET_EXCEPTION_HANDLER = 0x8E2 // 2274 ++ SYS___RESET_EXCEPTION_HANDLER = 0x8E3 // 2275 ++ SYS___VHM_EVENT = 0x8E4 // 2276 ++ SYS___ABS_H = 0x8E6 // 2278 ++ SYS___ABSF_H = 0x8E7 // 2279 ++ SYS___ABSL_H = 0x8E8 // 2280 ++ SYS___ACOS_H = 0x8E9 // 2281 ++ SYS___ACOSF_H = 0x8EA // 2282 ++ SYS___ACOSL_H = 0x8EB // 2283 ++ SYS___ACOSH_H = 0x8EC // 2284 ++ SYS___ASIN_H = 0x8ED // 2285 ++ SYS___ASINF_H = 0x8EE // 2286 ++ SYS___ASINL_H = 0x8EF // 2287 ++ SYS___ASINH_H = 0x8F0 // 2288 ++ SYS___ATAN_H = 0x8F1 // 2289 ++ SYS___ATANF_H = 0x8F2 // 2290 ++ SYS___ATANL_H = 0x8F3 // 2291 ++ SYS___ATANH_H = 0x8F4 // 2292 ++ SYS___ATANHF_H = 0x8F5 // 2293 ++ SYS___ATANHL_H = 0x8F6 // 2294 ++ SYS___ATAN2_H = 0x8F7 // 2295 ++ SYS___ATAN2F_H = 0x8F8 // 2296 ++ SYS___ATAN2L_H = 0x8F9 // 2297 ++ SYS___CBRT_H = 0x8FA // 2298 ++ SYS___COPYSIGNF_H = 0x8FB // 2299 ++ SYS___COPYSIGNL_H = 0x8FC // 2300 ++ SYS___COS_H = 0x8FD // 2301 ++ SYS___COSF_H = 0x8FE // 2302 ++ SYS___COSL_H = 0x8FF // 2303 ++ SYS___COSHF_H = 0x900 // 2304 ++ SYS___COSHL_H = 0x901 // 2305 ++ SYS___COTAN_H = 0x902 // 2306 ++ SYS___COTANF_H = 0x903 // 2307 ++ SYS___COTANL_H = 0x904 // 2308 ++ SYS___ERF_H = 0x905 // 2309 ++ SYS___ERFF_H = 0x906 // 2310 ++ SYS___ERFL_H = 0x907 // 2311 ++ SYS___ERFC_H = 0x908 // 2312 ++ SYS___ERFCF_H = 0x909 // 2313 ++ SYS___ERFCL_H = 0x90A // 2314 ++ SYS___EXP_H = 0x90B // 2315 ++ SYS___EXPF_H = 0x90C // 2316 ++ SYS___EXPL_H = 0x90D // 2317 ++ SYS___EXPM1_H = 0x90E // 2318 ++ SYS___FDIM_H = 0x90F // 2319 ++ SYS___FDIMF_H = 0x910 // 2320 ++ SYS___FDIML_H = 0x911 // 2321 ++ SYS___FMOD_H = 0x912 // 2322 ++ SYS___FMODF_H = 0x913 // 2323 ++ SYS___FMODL_H = 0x914 // 2324 ++ SYS___GAMMA_H = 0x915 // 2325 ++ SYS___HYPOT_H = 0x916 // 2326 ++ SYS___ILOGB_H = 0x917 // 2327 ++ SYS___LGAMMA_H = 0x918 // 2328 ++ SYS___LGAMMAF_H = 0x919 // 2329 ++ SYS___LOG_H = 0x91A // 2330 ++ SYS___LOGF_H = 0x91B // 2331 ++ SYS___LOGL_H = 0x91C // 2332 ++ SYS___LOGB_H = 0x91D // 2333 ++ SYS___LOG2_H = 0x91E // 2334 ++ SYS___LOG2F_H = 0x91F // 2335 ++ SYS___LOG2L_H = 0x920 // 2336 ++ SYS___LOG1P_H = 0x921 // 2337 ++ SYS___LOG10_H = 0x922 // 2338 ++ SYS___LOG10F_H = 0x923 // 2339 ++ SYS___LOG10L_H = 0x924 // 2340 ++ SYS___LROUND_H = 0x925 // 2341 ++ SYS___LROUNDF_H = 0x926 // 2342 ++ SYS___NEXTAFTER_H = 0x927 // 2343 ++ SYS___POW_H = 0x928 // 2344 ++ SYS___POWF_H = 0x929 // 2345 ++ SYS___POWL_H = 0x92A // 2346 ++ SYS___REMAINDER_H = 0x92B // 2347 ++ SYS___RINT_H = 0x92C // 2348 ++ SYS___SCALB_H = 0x92D // 2349 ++ SYS___SIN_H = 0x92E // 2350 ++ SYS___SINF_H = 0x92F // 2351 ++ SYS___SINL_H = 0x930 // 2352 ++ SYS___SINH_H = 0x931 // 2353 ++ SYS___SINHF_H = 0x932 // 2354 ++ SYS___SINHL_H = 0x933 // 2355 ++ SYS___SQRT_H = 0x934 // 2356 ++ SYS___SQRTF_H = 0x935 // 2357 ++ SYS___SQRTL_H = 0x936 // 2358 ++ SYS___TAN_H = 0x937 // 2359 ++ SYS___TANF_H = 0x938 // 2360 ++ SYS___TANL_H = 0x939 // 2361 ++ SYS___TANH_H = 0x93A // 2362 ++ SYS___TANHF_H = 0x93B // 2363 ++ SYS___TANHL_H = 0x93C // 2364 ++ SYS___TGAMMA_H = 0x93D // 2365 ++ SYS___TGAMMAF_H = 0x93E // 2366 ++ SYS___TRUNC_H = 0x93F // 2367 ++ SYS___TRUNCF_H = 0x940 // 2368 ++ SYS___TRUNCL_H = 0x941 // 2369 ++ SYS___COSH_H = 0x942 // 2370 ++ SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 // 2371 ++ SYS_VFSCANF = 0x944 // 2372 ++ SYS_VSCANF = 0x946 // 2374 ++ SYS_VSSCANF = 0x948 // 2376 ++ SYS_VFWSCANF = 0x94A // 2378 ++ SYS_VWSCANF = 0x94C // 2380 ++ SYS_VSWSCANF = 0x94E // 2382 ++ SYS_IMAXABS = 0x950 // 2384 ++ SYS_IMAXDIV = 0x951 // 2385 ++ SYS_STRTOIMAX = 0x952 // 2386 ++ SYS_STRTOUMAX = 0x953 // 2387 ++ SYS_WCSTOIMAX = 0x954 // 2388 ++ SYS_WCSTOUMAX = 0x955 // 2389 ++ SYS_ATOLL = 0x956 // 2390 ++ SYS_STRTOF = 0x957 // 2391 ++ SYS_STRTOLD = 0x958 // 2392 ++ SYS_WCSTOF = 0x959 // 2393 ++ SYS_WCSTOLD = 0x95A // 2394 ++ SYS_INET6_RTH_SPACE = 0x95B // 2395 ++ SYS_INET6_RTH_INIT = 0x95C // 2396 ++ SYS_INET6_RTH_ADD = 0x95D // 2397 ++ SYS_INET6_RTH_REVERSE = 0x95E // 2398 ++ SYS_INET6_RTH_SEGMENTS = 0x95F // 2399 ++ SYS_INET6_RTH_GETADDR = 0x960 // 2400 ++ SYS_INET6_OPT_INIT = 0x961 // 2401 ++ SYS_INET6_OPT_APPEND = 0x962 // 2402 ++ SYS_INET6_OPT_FINISH = 0x963 // 2403 ++ SYS_INET6_OPT_SET_VAL = 0x964 // 2404 ++ SYS_INET6_OPT_NEXT = 0x965 // 2405 ++ SYS_INET6_OPT_FIND = 0x966 // 2406 ++ SYS_INET6_OPT_GET_VAL = 0x967 // 2407 ++ SYS___POW_I = 0x987 // 2439 ++ SYS___POW_I_B = 0x988 // 2440 ++ SYS___POW_I_H = 0x989 // 2441 ++ SYS___POW_II = 0x98A // 2442 ++ SYS___POW_II_B = 0x98B // 2443 ++ SYS___POW_II_H = 0x98C // 2444 ++ SYS_CABS = 0x98E // 2446 ++ SYS___CABS_B = 0x98F // 2447 ++ SYS___CABS_H = 0x990 // 2448 ++ SYS_CABSF = 0x991 // 2449 ++ SYS___CABSF_B = 0x992 // 2450 ++ SYS___CABSF_H = 0x993 // 2451 ++ SYS_CABSL = 0x994 // 2452 ++ SYS___CABSL_B = 0x995 // 2453 ++ SYS___CABSL_H = 0x996 // 2454 ++ SYS_CACOS = 0x997 // 2455 ++ SYS___CACOS_B = 0x998 // 2456 ++ SYS___CACOS_H = 0x999 // 2457 ++ SYS_CACOSF = 0x99A // 2458 ++ SYS___CACOSF_B = 0x99B // 2459 ++ SYS___CACOSF_H = 0x99C // 2460 ++ SYS_CACOSL = 0x99D // 2461 ++ SYS___CACOSL_B = 0x99E // 2462 ++ SYS___CACOSL_H = 0x99F // 2463 ++ SYS_CACOSH = 0x9A0 // 2464 ++ SYS___CACOSH_B = 0x9A1 // 2465 ++ SYS___CACOSH_H = 0x9A2 // 2466 ++ SYS_CACOSHF = 0x9A3 // 2467 ++ SYS___CACOSHF_B = 0x9A4 // 2468 ++ SYS___CACOSHF_H = 0x9A5 // 2469 ++ SYS_CACOSHL = 0x9A6 // 2470 ++ SYS___CACOSHL_B = 0x9A7 // 2471 ++ SYS___CACOSHL_H = 0x9A8 // 2472 ++ SYS_CARG = 0x9A9 // 2473 ++ SYS___CARG_B = 0x9AA // 2474 ++ SYS___CARG_H = 0x9AB // 2475 ++ SYS_CARGF = 0x9AC // 2476 ++ SYS___CARGF_B = 0x9AD // 2477 ++ SYS___CARGF_H = 0x9AE // 2478 ++ SYS_CARGL = 0x9AF // 2479 ++ SYS___CARGL_B = 0x9B0 // 2480 ++ SYS___CARGL_H = 0x9B1 // 2481 ++ SYS_CASIN = 0x9B2 // 2482 ++ SYS___CASIN_B = 0x9B3 // 2483 ++ SYS___CASIN_H = 0x9B4 // 2484 ++ SYS_CASINF = 0x9B5 // 2485 ++ SYS___CASINF_B = 0x9B6 // 2486 ++ SYS___CASINF_H = 0x9B7 // 2487 ++ SYS_CASINL = 0x9B8 // 2488 ++ SYS___CASINL_B = 0x9B9 // 2489 ++ SYS___CASINL_H = 0x9BA // 2490 ++ SYS_CASINH = 0x9BB // 2491 ++ SYS___CASINH_B = 0x9BC // 2492 ++ SYS___CASINH_H = 0x9BD // 2493 ++ SYS_CASINHF = 0x9BE // 2494 ++ SYS___CASINHF_B = 0x9BF // 2495 ++ SYS___CASINHF_H = 0x9C0 // 2496 ++ SYS_CASINHL = 0x9C1 // 2497 ++ SYS___CASINHL_B = 0x9C2 // 2498 ++ SYS___CASINHL_H = 0x9C3 // 2499 ++ SYS_CATAN = 0x9C4 // 2500 ++ SYS___CATAN_B = 0x9C5 // 2501 ++ SYS___CATAN_H = 0x9C6 // 2502 ++ SYS_CATANF = 0x9C7 // 2503 ++ SYS___CATANF_B = 0x9C8 // 2504 ++ SYS___CATANF_H = 0x9C9 // 2505 ++ SYS_CATANL = 0x9CA // 2506 ++ SYS___CATANL_B = 0x9CB // 2507 ++ SYS___CATANL_H = 0x9CC // 2508 ++ SYS_CATANH = 0x9CD // 2509 ++ SYS___CATANH_B = 0x9CE // 2510 ++ SYS___CATANH_H = 0x9CF // 2511 ++ SYS_CATANHF = 0x9D0 // 2512 ++ SYS___CATANHF_B = 0x9D1 // 2513 ++ SYS___CATANHF_H = 0x9D2 // 2514 ++ SYS_CATANHL = 0x9D3 // 2515 ++ SYS___CATANHL_B = 0x9D4 // 2516 ++ SYS___CATANHL_H = 0x9D5 // 2517 ++ SYS_CCOS = 0x9D6 // 2518 ++ SYS___CCOS_B = 0x9D7 // 2519 ++ SYS___CCOS_H = 0x9D8 // 2520 ++ SYS_CCOSF = 0x9D9 // 2521 ++ SYS___CCOSF_B = 0x9DA // 2522 ++ SYS___CCOSF_H = 0x9DB // 2523 ++ SYS_CCOSL = 0x9DC // 2524 ++ SYS___CCOSL_B = 0x9DD // 2525 ++ SYS___CCOSL_H = 0x9DE // 2526 ++ SYS_CCOSH = 0x9DF // 2527 ++ SYS___CCOSH_B = 0x9E0 // 2528 ++ SYS___CCOSH_H = 0x9E1 // 2529 ++ SYS_CCOSHF = 0x9E2 // 2530 ++ SYS___CCOSHF_B = 0x9E3 // 2531 ++ SYS___CCOSHF_H = 0x9E4 // 2532 ++ SYS_CCOSHL = 0x9E5 // 2533 ++ SYS___CCOSHL_B = 0x9E6 // 2534 ++ SYS___CCOSHL_H = 0x9E7 // 2535 ++ SYS_CEXP = 0x9E8 // 2536 ++ SYS___CEXP_B = 0x9E9 // 2537 ++ SYS___CEXP_H = 0x9EA // 2538 ++ SYS_CEXPF = 0x9EB // 2539 ++ SYS___CEXPF_B = 0x9EC // 2540 ++ SYS___CEXPF_H = 0x9ED // 2541 ++ SYS_CEXPL = 0x9EE // 2542 ++ SYS___CEXPL_B = 0x9EF // 2543 ++ SYS___CEXPL_H = 0x9F0 // 2544 ++ SYS_CIMAG = 0x9F1 // 2545 ++ SYS___CIMAG_B = 0x9F2 // 2546 ++ SYS___CIMAG_H = 0x9F3 // 2547 ++ SYS_CIMAGF = 0x9F4 // 2548 ++ SYS___CIMAGF_B = 0x9F5 // 2549 ++ SYS___CIMAGF_H = 0x9F6 // 2550 ++ SYS_CIMAGL = 0x9F7 // 2551 ++ SYS___CIMAGL_B = 0x9F8 // 2552 ++ SYS___CIMAGL_H = 0x9F9 // 2553 ++ SYS___CLOG = 0x9FA // 2554 ++ SYS___CLOG_B = 0x9FB // 2555 ++ SYS___CLOG_H = 0x9FC // 2556 ++ SYS_CLOGF = 0x9FD // 2557 ++ SYS___CLOGF_B = 0x9FE // 2558 ++ SYS___CLOGF_H = 0x9FF // 2559 ++ SYS_CLOGL = 0xA00 // 2560 ++ SYS___CLOGL_B = 0xA01 // 2561 ++ SYS___CLOGL_H = 0xA02 // 2562 ++ SYS_CONJ = 0xA03 // 2563 ++ SYS___CONJ_B = 0xA04 // 2564 ++ SYS___CONJ_H = 0xA05 // 2565 ++ SYS_CONJF = 0xA06 // 2566 ++ SYS___CONJF_B = 0xA07 // 2567 ++ SYS___CONJF_H = 0xA08 // 2568 ++ SYS_CONJL = 0xA09 // 2569 ++ SYS___CONJL_B = 0xA0A // 2570 ++ SYS___CONJL_H = 0xA0B // 2571 ++ SYS_CPOW = 0xA0C // 2572 ++ SYS___CPOW_B = 0xA0D // 2573 ++ SYS___CPOW_H = 0xA0E // 2574 ++ SYS_CPOWF = 0xA0F // 2575 ++ SYS___CPOWF_B = 0xA10 // 2576 ++ SYS___CPOWF_H = 0xA11 // 2577 ++ SYS_CPOWL = 0xA12 // 2578 ++ SYS___CPOWL_B = 0xA13 // 2579 ++ SYS___CPOWL_H = 0xA14 // 2580 ++ SYS_CPROJ = 0xA15 // 2581 ++ SYS___CPROJ_B = 0xA16 // 2582 ++ SYS___CPROJ_H = 0xA17 // 2583 ++ SYS_CPROJF = 0xA18 // 2584 ++ SYS___CPROJF_B = 0xA19 // 2585 ++ SYS___CPROJF_H = 0xA1A // 2586 ++ SYS_CPROJL = 0xA1B // 2587 ++ SYS___CPROJL_B = 0xA1C // 2588 ++ SYS___CPROJL_H = 0xA1D // 2589 ++ SYS_CREAL = 0xA1E // 2590 ++ SYS___CREAL_B = 0xA1F // 2591 ++ SYS___CREAL_H = 0xA20 // 2592 ++ SYS_CREALF = 0xA21 // 2593 ++ SYS___CREALF_B = 0xA22 // 2594 ++ SYS___CREALF_H = 0xA23 // 2595 ++ SYS_CREALL = 0xA24 // 2596 ++ SYS___CREALL_B = 0xA25 // 2597 ++ SYS___CREALL_H = 0xA26 // 2598 ++ SYS_CSIN = 0xA27 // 2599 ++ SYS___CSIN_B = 0xA28 // 2600 ++ SYS___CSIN_H = 0xA29 // 2601 ++ SYS_CSINF = 0xA2A // 2602 ++ SYS___CSINF_B = 0xA2B // 2603 ++ SYS___CSINF_H = 0xA2C // 2604 ++ SYS_CSINL = 0xA2D // 2605 ++ SYS___CSINL_B = 0xA2E // 2606 ++ SYS___CSINL_H = 0xA2F // 2607 ++ SYS_CSINH = 0xA30 // 2608 ++ SYS___CSINH_B = 0xA31 // 2609 ++ SYS___CSINH_H = 0xA32 // 2610 ++ SYS_CSINHF = 0xA33 // 2611 ++ SYS___CSINHF_B = 0xA34 // 2612 ++ SYS___CSINHF_H = 0xA35 // 2613 ++ SYS_CSINHL = 0xA36 // 2614 ++ SYS___CSINHL_B = 0xA37 // 2615 ++ SYS___CSINHL_H = 0xA38 // 2616 ++ SYS_CSQRT = 0xA39 // 2617 ++ SYS___CSQRT_B = 0xA3A // 2618 ++ SYS___CSQRT_H = 0xA3B // 2619 ++ SYS_CSQRTF = 0xA3C // 2620 ++ SYS___CSQRTF_B = 0xA3D // 2621 ++ SYS___CSQRTF_H = 0xA3E // 2622 ++ SYS_CSQRTL = 0xA3F // 2623 ++ SYS___CSQRTL_B = 0xA40 // 2624 ++ SYS___CSQRTL_H = 0xA41 // 2625 ++ SYS_CTAN = 0xA42 // 2626 ++ SYS___CTAN_B = 0xA43 // 2627 ++ SYS___CTAN_H = 0xA44 // 2628 ++ SYS_CTANF = 0xA45 // 2629 ++ SYS___CTANF_B = 0xA46 // 2630 ++ SYS___CTANF_H = 0xA47 // 2631 ++ SYS_CTANL = 0xA48 // 2632 ++ SYS___CTANL_B = 0xA49 // 2633 ++ SYS___CTANL_H = 0xA4A // 2634 ++ SYS_CTANH = 0xA4B // 2635 ++ SYS___CTANH_B = 0xA4C // 2636 ++ SYS___CTANH_H = 0xA4D // 2637 ++ SYS_CTANHF = 0xA4E // 2638 ++ SYS___CTANHF_B = 0xA4F // 2639 ++ SYS___CTANHF_H = 0xA50 // 2640 ++ SYS_CTANHL = 0xA51 // 2641 ++ SYS___CTANHL_B = 0xA52 // 2642 ++ SYS___CTANHL_H = 0xA53 // 2643 ++ SYS___ACOSHF_H = 0xA54 // 2644 ++ SYS___ACOSHL_H = 0xA55 // 2645 ++ SYS___ASINHF_H = 0xA56 // 2646 ++ SYS___ASINHL_H = 0xA57 // 2647 ++ SYS___CBRTF_H = 0xA58 // 2648 ++ SYS___CBRTL_H = 0xA59 // 2649 ++ SYS___COPYSIGN_B = 0xA5A // 2650 ++ SYS___EXPM1F_H = 0xA5B // 2651 ++ SYS___EXPM1L_H = 0xA5C // 2652 ++ SYS___EXP2_H = 0xA5D // 2653 ++ SYS___EXP2F_H = 0xA5E // 2654 ++ SYS___EXP2L_H = 0xA5F // 2655 ++ SYS___LOG1PF_H = 0xA60 // 2656 ++ SYS___LOG1PL_H = 0xA61 // 2657 ++ SYS___LGAMMAL_H = 0xA62 // 2658 ++ SYS_FMA = 0xA63 // 2659 ++ SYS___FMA_B = 0xA64 // 2660 ++ SYS___FMA_H = 0xA65 // 2661 ++ SYS_FMAF = 0xA66 // 2662 ++ SYS___FMAF_B = 0xA67 // 2663 ++ SYS___FMAF_H = 0xA68 // 2664 ++ SYS_FMAL = 0xA69 // 2665 ++ SYS___FMAL_B = 0xA6A // 2666 ++ SYS___FMAL_H = 0xA6B // 2667 ++ SYS_FMAX = 0xA6C // 2668 ++ SYS___FMAX_B = 0xA6D // 2669 ++ SYS___FMAX_H = 0xA6E // 2670 ++ SYS_FMAXF = 0xA6F // 2671 ++ SYS___FMAXF_B = 0xA70 // 2672 ++ SYS___FMAXF_H = 0xA71 // 2673 ++ SYS_FMAXL = 0xA72 // 2674 ++ SYS___FMAXL_B = 0xA73 // 2675 ++ SYS___FMAXL_H = 0xA74 // 2676 ++ SYS_FMIN = 0xA75 // 2677 ++ SYS___FMIN_B = 0xA76 // 2678 ++ SYS___FMIN_H = 0xA77 // 2679 ++ SYS_FMINF = 0xA78 // 2680 ++ SYS___FMINF_B = 0xA79 // 2681 ++ SYS___FMINF_H = 0xA7A // 2682 ++ SYS_FMINL = 0xA7B // 2683 ++ SYS___FMINL_B = 0xA7C // 2684 ++ SYS___FMINL_H = 0xA7D // 2685 ++ SYS_ILOGBF = 0xA7E // 2686 ++ SYS___ILOGBF_B = 0xA7F // 2687 ++ SYS___ILOGBF_H = 0xA80 // 2688 ++ SYS_ILOGBL = 0xA81 // 2689 ++ SYS___ILOGBL_B = 0xA82 // 2690 ++ SYS___ILOGBL_H = 0xA83 // 2691 ++ SYS_LLRINT = 0xA84 // 2692 ++ SYS___LLRINT_B = 0xA85 // 2693 ++ SYS___LLRINT_H = 0xA86 // 2694 ++ SYS_LLRINTF = 0xA87 // 2695 ++ SYS___LLRINTF_B = 0xA88 // 2696 ++ SYS___LLRINTF_H = 0xA89 // 2697 ++ SYS_LLRINTL = 0xA8A // 2698 ++ SYS___LLRINTL_B = 0xA8B // 2699 ++ SYS___LLRINTL_H = 0xA8C // 2700 ++ SYS_LLROUND = 0xA8D // 2701 ++ SYS___LLROUND_B = 0xA8E // 2702 ++ SYS___LLROUND_H = 0xA8F // 2703 ++ SYS_LLROUNDF = 0xA90 // 2704 ++ SYS___LLROUNDF_B = 0xA91 // 2705 ++ SYS___LLROUNDF_H = 0xA92 // 2706 ++ SYS_LLROUNDL = 0xA93 // 2707 ++ SYS___LLROUNDL_B = 0xA94 // 2708 ++ SYS___LLROUNDL_H = 0xA95 // 2709 ++ SYS_LOGBF = 0xA96 // 2710 ++ SYS___LOGBF_B = 0xA97 // 2711 ++ SYS___LOGBF_H = 0xA98 // 2712 ++ SYS_LOGBL = 0xA99 // 2713 ++ SYS___LOGBL_B = 0xA9A // 2714 ++ SYS___LOGBL_H = 0xA9B // 2715 ++ SYS_LRINT = 0xA9C // 2716 ++ SYS___LRINT_B = 0xA9D // 2717 ++ SYS___LRINT_H = 0xA9E // 2718 ++ SYS_LRINTF = 0xA9F // 2719 ++ SYS___LRINTF_B = 0xAA0 // 2720 ++ SYS___LRINTF_H = 0xAA1 // 2721 ++ SYS_LRINTL = 0xAA2 // 2722 ++ SYS___LRINTL_B = 0xAA3 // 2723 ++ SYS___LRINTL_H = 0xAA4 // 2724 ++ SYS_LROUNDL = 0xAA5 // 2725 ++ SYS___LROUNDL_B = 0xAA6 // 2726 ++ SYS___LROUNDL_H = 0xAA7 // 2727 ++ SYS_NAN = 0xAA8 // 2728 ++ SYS___NAN_B = 0xAA9 // 2729 ++ SYS_NANF = 0xAAA // 2730 ++ SYS___NANF_B = 0xAAB // 2731 ++ SYS_NANL = 0xAAC // 2732 ++ SYS___NANL_B = 0xAAD // 2733 ++ SYS_NEARBYINT = 0xAAE // 2734 ++ SYS___NEARBYINT_B = 0xAAF // 2735 ++ SYS___NEARBYINT_H = 0xAB0 // 2736 ++ SYS_NEARBYINTF = 0xAB1 // 2737 ++ SYS___NEARBYINTF_B = 0xAB2 // 2738 ++ SYS___NEARBYINTF_H = 0xAB3 // 2739 ++ SYS_NEARBYINTL = 0xAB4 // 2740 ++ SYS___NEARBYINTL_B = 0xAB5 // 2741 ++ SYS___NEARBYINTL_H = 0xAB6 // 2742 ++ SYS_NEXTAFTERF = 0xAB7 // 2743 ++ SYS___NEXTAFTERF_B = 0xAB8 // 2744 ++ SYS___NEXTAFTERF_H = 0xAB9 // 2745 ++ SYS_NEXTAFTERL = 0xABA // 2746 ++ SYS___NEXTAFTERL_B = 0xABB // 2747 ++ SYS___NEXTAFTERL_H = 0xABC // 2748 ++ SYS_NEXTTOWARD = 0xABD // 2749 ++ SYS___NEXTTOWARD_B = 0xABE // 2750 ++ SYS___NEXTTOWARD_H = 0xABF // 2751 ++ SYS_NEXTTOWARDF = 0xAC0 // 2752 ++ SYS___NEXTTOWARDF_B = 0xAC1 // 2753 ++ SYS___NEXTTOWARDF_H = 0xAC2 // 2754 ++ SYS_NEXTTOWARDL = 0xAC3 // 2755 ++ SYS___NEXTTOWARDL_B = 0xAC4 // 2756 ++ SYS___NEXTTOWARDL_H = 0xAC5 // 2757 ++ SYS___REMAINDERF_H = 0xAC6 // 2758 ++ SYS___REMAINDERL_H = 0xAC7 // 2759 ++ SYS___REMQUO_H = 0xAC8 // 2760 ++ SYS___REMQUOF_H = 0xAC9 // 2761 ++ SYS___REMQUOL_H = 0xACA // 2762 ++ SYS_RINTF = 0xACB // 2763 ++ SYS___RINTF_B = 0xACC // 2764 ++ SYS_RINTL = 0xACD // 2765 ++ SYS___RINTL_B = 0xACE // 2766 ++ SYS_ROUND = 0xACF // 2767 ++ SYS___ROUND_B = 0xAD0 // 2768 ++ SYS___ROUND_H = 0xAD1 // 2769 ++ SYS_ROUNDF = 0xAD2 // 2770 ++ SYS___ROUNDF_B = 0xAD3 // 2771 ++ SYS___ROUNDF_H = 0xAD4 // 2772 ++ SYS_ROUNDL = 0xAD5 // 2773 ++ SYS___ROUNDL_B = 0xAD6 // 2774 ++ SYS___ROUNDL_H = 0xAD7 // 2775 ++ SYS_SCALBLN = 0xAD8 // 2776 ++ SYS___SCALBLN_B = 0xAD9 // 2777 ++ SYS___SCALBLN_H = 0xADA // 2778 ++ SYS_SCALBLNF = 0xADB // 2779 ++ SYS___SCALBLNF_B = 0xADC // 2780 ++ SYS___SCALBLNF_H = 0xADD // 2781 ++ SYS_SCALBLNL = 0xADE // 2782 ++ SYS___SCALBLNL_B = 0xADF // 2783 ++ SYS___SCALBLNL_H = 0xAE0 // 2784 ++ SYS___SCALBN_B = 0xAE1 // 2785 ++ SYS___SCALBN_H = 0xAE2 // 2786 ++ SYS_SCALBNF = 0xAE3 // 2787 ++ SYS___SCALBNF_B = 0xAE4 // 2788 ++ SYS___SCALBNF_H = 0xAE5 // 2789 ++ SYS_SCALBNL = 0xAE6 // 2790 ++ SYS___SCALBNL_B = 0xAE7 // 2791 ++ SYS___SCALBNL_H = 0xAE8 // 2792 ++ SYS___TGAMMAL_H = 0xAE9 // 2793 ++ SYS_FECLEAREXCEPT = 0xAEA // 2794 ++ SYS_FEGETENV = 0xAEB // 2795 ++ SYS_FEGETEXCEPTFLAG = 0xAEC // 2796 ++ SYS_FEGETROUND = 0xAED // 2797 ++ SYS_FEHOLDEXCEPT = 0xAEE // 2798 ++ SYS_FERAISEEXCEPT = 0xAEF // 2799 ++ SYS_FESETENV = 0xAF0 // 2800 ++ SYS_FESETEXCEPTFLAG = 0xAF1 // 2801 ++ SYS_FESETROUND = 0xAF2 // 2802 ++ SYS_FETESTEXCEPT = 0xAF3 // 2803 ++ SYS_FEUPDATEENV = 0xAF4 // 2804 ++ SYS___COPYSIGN_H = 0xAF5 // 2805 ++ SYS___HYPOTF_H = 0xAF6 // 2806 ++ SYS___HYPOTL_H = 0xAF7 // 2807 ++ SYS___CLASS = 0xAFA // 2810 ++ SYS___CLASS_B = 0xAFB // 2811 ++ SYS___CLASS_H = 0xAFC // 2812 ++ SYS___ISBLANK_A = 0xB2E // 2862 ++ SYS___ISWBLANK_A = 0xB2F // 2863 ++ SYS___LROUND_FIXUP = 0xB30 // 2864 ++ SYS___LROUNDF_FIXUP = 0xB31 // 2865 ++ SYS_SCHED_YIELD = 0xB32 // 2866 ++ SYS_STRERROR_R = 0xB33 // 2867 ++ SYS_UNSETENV = 0xB34 // 2868 ++ SYS___LGAMMA_H_C99 = 0xB38 // 2872 ++ SYS___LGAMMA_B_C99 = 0xB39 // 2873 ++ SYS___LGAMMA_R_C99 = 0xB3A // 2874 ++ SYS___FTELL2 = 0xB3B // 2875 ++ SYS___FSEEK2 = 0xB3C // 2876 ++ SYS___STATIC_REINIT = 0xB3D // 2877 ++ SYS_PTHREAD_ATTR_GETSTACK = 0xB3E // 2878 ++ SYS_PTHREAD_ATTR_SETSTACK = 0xB3F // 2879 ++ SYS___TGAMMA_H_C99 = 0xB78 // 2936 ++ SYS___TGAMMAF_H_C99 = 0xB79 // 2937 ++ SYS___LE_TRACEBACK = 0xB7A // 2938 ++ SYS___MUST_STAY_CLEAN = 0xB7C // 2940 ++ SYS___O_ENV = 0xB7D // 2941 ++ SYS_ACOSD32 = 0xB7E // 2942 ++ SYS_ACOSD64 = 0xB7F // 2943 ++ SYS_ACOSD128 = 0xB80 // 2944 ++ SYS_ACOSHD32 = 0xB81 // 2945 ++ SYS_ACOSHD64 = 0xB82 // 2946 ++ SYS_ACOSHD128 = 0xB83 // 2947 ++ SYS_ASIND32 = 0xB84 // 2948 ++ SYS_ASIND64 = 0xB85 // 2949 ++ SYS_ASIND128 = 0xB86 // 2950 ++ SYS_ASINHD32 = 0xB87 // 2951 ++ SYS_ASINHD64 = 0xB88 // 2952 ++ SYS_ASINHD128 = 0xB89 // 2953 ++ SYS_ATAND32 = 0xB8A // 2954 ++ SYS_ATAND64 = 0xB8B // 2955 ++ SYS_ATAND128 = 0xB8C // 2956 ++ SYS_ATAN2D32 = 0xB8D // 2957 ++ SYS_ATAN2D64 = 0xB8E // 2958 ++ SYS_ATAN2D128 = 0xB8F // 2959 ++ SYS_ATANHD32 = 0xB90 // 2960 ++ SYS_ATANHD64 = 0xB91 // 2961 ++ SYS_ATANHD128 = 0xB92 // 2962 ++ SYS_CBRTD32 = 0xB93 // 2963 ++ SYS_CBRTD64 = 0xB94 // 2964 ++ SYS_CBRTD128 = 0xB95 // 2965 ++ SYS_CEILD32 = 0xB96 // 2966 ++ SYS_CEILD64 = 0xB97 // 2967 ++ SYS_CEILD128 = 0xB98 // 2968 ++ SYS___CLASS2 = 0xB99 // 2969 ++ SYS___CLASS2_B = 0xB9A // 2970 ++ SYS___CLASS2_H = 0xB9B // 2971 ++ SYS_COPYSIGND32 = 0xB9C // 2972 ++ SYS_COPYSIGND64 = 0xB9D // 2973 ++ SYS_COPYSIGND128 = 0xB9E // 2974 ++ SYS_COSD32 = 0xB9F // 2975 ++ SYS_COSD64 = 0xBA0 // 2976 ++ SYS_COSD128 = 0xBA1 // 2977 ++ SYS_COSHD32 = 0xBA2 // 2978 ++ SYS_COSHD64 = 0xBA3 // 2979 ++ SYS_COSHD128 = 0xBA4 // 2980 ++ SYS_ERFD32 = 0xBA5 // 2981 ++ SYS_ERFD64 = 0xBA6 // 2982 ++ SYS_ERFD128 = 0xBA7 // 2983 ++ SYS_ERFCD32 = 0xBA8 // 2984 ++ SYS_ERFCD64 = 0xBA9 // 2985 ++ SYS_ERFCD128 = 0xBAA // 2986 ++ SYS_EXPD32 = 0xBAB // 2987 ++ SYS_EXPD64 = 0xBAC // 2988 ++ SYS_EXPD128 = 0xBAD // 2989 ++ SYS_EXP2D32 = 0xBAE // 2990 ++ SYS_EXP2D64 = 0xBAF // 2991 ++ SYS_EXP2D128 = 0xBB0 // 2992 ++ SYS_EXPM1D32 = 0xBB1 // 2993 ++ SYS_EXPM1D64 = 0xBB2 // 2994 ++ SYS_EXPM1D128 = 0xBB3 // 2995 ++ SYS_FABSD32 = 0xBB4 // 2996 ++ SYS_FABSD64 = 0xBB5 // 2997 ++ SYS_FABSD128 = 0xBB6 // 2998 ++ SYS_FDIMD32 = 0xBB7 // 2999 ++ SYS_FDIMD64 = 0xBB8 // 3000 ++ SYS_FDIMD128 = 0xBB9 // 3001 ++ SYS_FE_DEC_GETROUND = 0xBBA // 3002 ++ SYS_FE_DEC_SETROUND = 0xBBB // 3003 ++ SYS_FLOORD32 = 0xBBC // 3004 ++ SYS_FLOORD64 = 0xBBD // 3005 ++ SYS_FLOORD128 = 0xBBE // 3006 ++ SYS_FMAD32 = 0xBBF // 3007 ++ SYS_FMAD64 = 0xBC0 // 3008 ++ SYS_FMAD128 = 0xBC1 // 3009 ++ SYS_FMAXD32 = 0xBC2 // 3010 ++ SYS_FMAXD64 = 0xBC3 // 3011 ++ SYS_FMAXD128 = 0xBC4 // 3012 ++ SYS_FMIND32 = 0xBC5 // 3013 ++ SYS_FMIND64 = 0xBC6 // 3014 ++ SYS_FMIND128 = 0xBC7 // 3015 ++ SYS_FMODD32 = 0xBC8 // 3016 ++ SYS_FMODD64 = 0xBC9 // 3017 ++ SYS_FMODD128 = 0xBCA // 3018 ++ SYS___FP_CAST_D = 0xBCB // 3019 ++ SYS_FREXPD32 = 0xBCC // 3020 ++ SYS_FREXPD64 = 0xBCD // 3021 ++ SYS_FREXPD128 = 0xBCE // 3022 ++ SYS_HYPOTD32 = 0xBCF // 3023 ++ SYS_HYPOTD64 = 0xBD0 // 3024 ++ SYS_HYPOTD128 = 0xBD1 // 3025 ++ SYS_ILOGBD32 = 0xBD2 // 3026 ++ SYS_ILOGBD64 = 0xBD3 // 3027 ++ SYS_ILOGBD128 = 0xBD4 // 3028 ++ SYS_LDEXPD32 = 0xBD5 // 3029 ++ SYS_LDEXPD64 = 0xBD6 // 3030 ++ SYS_LDEXPD128 = 0xBD7 // 3031 ++ SYS_LGAMMAD32 = 0xBD8 // 3032 ++ SYS_LGAMMAD64 = 0xBD9 // 3033 ++ SYS_LGAMMAD128 = 0xBDA // 3034 ++ SYS_LLRINTD32 = 0xBDB // 3035 ++ SYS_LLRINTD64 = 0xBDC // 3036 ++ SYS_LLRINTD128 = 0xBDD // 3037 ++ SYS_LLROUNDD32 = 0xBDE // 3038 ++ SYS_LLROUNDD64 = 0xBDF // 3039 ++ SYS_LLROUNDD128 = 0xBE0 // 3040 ++ SYS_LOGD32 = 0xBE1 // 3041 ++ SYS_LOGD64 = 0xBE2 // 3042 ++ SYS_LOGD128 = 0xBE3 // 3043 ++ SYS_LOG10D32 = 0xBE4 // 3044 ++ SYS_LOG10D64 = 0xBE5 // 3045 ++ SYS_LOG10D128 = 0xBE6 // 3046 ++ SYS_LOG1PD32 = 0xBE7 // 3047 ++ SYS_LOG1PD64 = 0xBE8 // 3048 ++ SYS_LOG1PD128 = 0xBE9 // 3049 ++ SYS_LOG2D32 = 0xBEA // 3050 ++ SYS_LOG2D64 = 0xBEB // 3051 ++ SYS_LOG2D128 = 0xBEC // 3052 ++ SYS_LOGBD32 = 0xBED // 3053 ++ SYS_LOGBD64 = 0xBEE // 3054 ++ SYS_LOGBD128 = 0xBEF // 3055 ++ SYS_LRINTD32 = 0xBF0 // 3056 ++ SYS_LRINTD64 = 0xBF1 // 3057 ++ SYS_LRINTD128 = 0xBF2 // 3058 ++ SYS_LROUNDD32 = 0xBF3 // 3059 ++ SYS_LROUNDD64 = 0xBF4 // 3060 ++ SYS_LROUNDD128 = 0xBF5 // 3061 ++ SYS_MODFD32 = 0xBF6 // 3062 ++ SYS_MODFD64 = 0xBF7 // 3063 ++ SYS_MODFD128 = 0xBF8 // 3064 ++ SYS_NAND32 = 0xBF9 // 3065 ++ SYS_NAND64 = 0xBFA // 3066 ++ SYS_NAND128 = 0xBFB // 3067 ++ SYS_NEARBYINTD32 = 0xBFC // 3068 ++ SYS_NEARBYINTD64 = 0xBFD // 3069 ++ SYS_NEARBYINTD128 = 0xBFE // 3070 ++ SYS_NEXTAFTERD32 = 0xBFF // 3071 ++ SYS_NEXTAFTERD64 = 0xC00 // 3072 ++ SYS_NEXTAFTERD128 = 0xC01 // 3073 ++ SYS_NEXTTOWARDD32 = 0xC02 // 3074 ++ SYS_NEXTTOWARDD64 = 0xC03 // 3075 ++ SYS_NEXTTOWARDD128 = 0xC04 // 3076 ++ SYS_POWD32 = 0xC05 // 3077 ++ SYS_POWD64 = 0xC06 // 3078 ++ SYS_POWD128 = 0xC07 // 3079 ++ SYS_QUANTIZED32 = 0xC08 // 3080 ++ SYS_QUANTIZED64 = 0xC09 // 3081 ++ SYS_QUANTIZED128 = 0xC0A // 3082 ++ SYS_REMAINDERD32 = 0xC0B // 3083 ++ SYS_REMAINDERD64 = 0xC0C // 3084 ++ SYS_REMAINDERD128 = 0xC0D // 3085 ++ SYS___REMQUOD32 = 0xC0E // 3086 ++ SYS___REMQUOD64 = 0xC0F // 3087 ++ SYS___REMQUOD128 = 0xC10 // 3088 ++ SYS_RINTD32 = 0xC11 // 3089 ++ SYS_RINTD64 = 0xC12 // 3090 ++ SYS_RINTD128 = 0xC13 // 3091 ++ SYS_ROUNDD32 = 0xC14 // 3092 ++ SYS_ROUNDD64 = 0xC15 // 3093 ++ SYS_ROUNDD128 = 0xC16 // 3094 ++ SYS_SAMEQUANTUMD32 = 0xC17 // 3095 ++ SYS_SAMEQUANTUMD64 = 0xC18 // 3096 ++ SYS_SAMEQUANTUMD128 = 0xC19 // 3097 ++ SYS_SCALBLND32 = 0xC1A // 3098 ++ SYS_SCALBLND64 = 0xC1B // 3099 ++ SYS_SCALBLND128 = 0xC1C // 3100 ++ SYS_SCALBND32 = 0xC1D // 3101 ++ SYS_SCALBND64 = 0xC1E // 3102 ++ SYS_SCALBND128 = 0xC1F // 3103 ++ SYS_SIND32 = 0xC20 // 3104 ++ SYS_SIND64 = 0xC21 // 3105 ++ SYS_SIND128 = 0xC22 // 3106 ++ SYS_SINHD32 = 0xC23 // 3107 ++ SYS_SINHD64 = 0xC24 // 3108 ++ SYS_SINHD128 = 0xC25 // 3109 ++ SYS_SQRTD32 = 0xC26 // 3110 ++ SYS_SQRTD64 = 0xC27 // 3111 ++ SYS_SQRTD128 = 0xC28 // 3112 ++ SYS_STRTOD32 = 0xC29 // 3113 ++ SYS_STRTOD64 = 0xC2A // 3114 ++ SYS_STRTOD128 = 0xC2B // 3115 ++ SYS_TAND32 = 0xC2C // 3116 ++ SYS_TAND64 = 0xC2D // 3117 ++ SYS_TAND128 = 0xC2E // 3118 ++ SYS_TANHD32 = 0xC2F // 3119 ++ SYS_TANHD64 = 0xC30 // 3120 ++ SYS_TANHD128 = 0xC31 // 3121 ++ SYS_TGAMMAD32 = 0xC32 // 3122 ++ SYS_TGAMMAD64 = 0xC33 // 3123 ++ SYS_TGAMMAD128 = 0xC34 // 3124 ++ SYS_TRUNCD32 = 0xC3E // 3134 ++ SYS_TRUNCD64 = 0xC3F // 3135 ++ SYS_TRUNCD128 = 0xC40 // 3136 ++ SYS_WCSTOD32 = 0xC41 // 3137 ++ SYS_WCSTOD64 = 0xC42 // 3138 ++ SYS_WCSTOD128 = 0xC43 // 3139 ++ SYS___CODEPAGE_INFO = 0xC64 // 3172 ++ SYS_POSIX_OPENPT = 0xC66 // 3174 ++ SYS_PSELECT = 0xC67 // 3175 ++ SYS_SOCKATMARK = 0xC68 // 3176 ++ SYS_AIO_FSYNC = 0xC69 // 3177 ++ SYS_LIO_LISTIO = 0xC6A // 3178 ++ SYS___ATANPID32 = 0xC6B // 3179 ++ SYS___ATANPID64 = 0xC6C // 3180 ++ SYS___ATANPID128 = 0xC6D // 3181 ++ SYS___COSPID32 = 0xC6E // 3182 ++ SYS___COSPID64 = 0xC6F // 3183 ++ SYS___COSPID128 = 0xC70 // 3184 ++ SYS___SINPID32 = 0xC71 // 3185 ++ SYS___SINPID64 = 0xC72 // 3186 ++ SYS___SINPID128 = 0xC73 // 3187 ++ SYS_SETIPV4SOURCEFILTER = 0xC76 // 3190 ++ SYS_GETIPV4SOURCEFILTER = 0xC77 // 3191 ++ SYS_SETSOURCEFILTER = 0xC78 // 3192 ++ SYS_GETSOURCEFILTER = 0xC79 // 3193 ++ SYS_FWRITE_UNLOCKED = 0xC7A // 3194 ++ SYS_FREAD_UNLOCKED = 0xC7B // 3195 ++ SYS_FGETS_UNLOCKED = 0xC7C // 3196 ++ SYS_GETS_UNLOCKED = 0xC7D // 3197 ++ SYS_FPUTS_UNLOCKED = 0xC7E // 3198 ++ SYS_PUTS_UNLOCKED = 0xC7F // 3199 ++ SYS_FGETC_UNLOCKED = 0xC80 // 3200 ++ SYS_FPUTC_UNLOCKED = 0xC81 // 3201 ++ SYS_DLADDR = 0xC82 // 3202 ++ SYS_SHM_OPEN = 0xC8C // 3212 ++ SYS_SHM_UNLINK = 0xC8D // 3213 ++ SYS___CLASS2F = 0xC91 // 3217 ++ SYS___CLASS2L = 0xC92 // 3218 ++ SYS___CLASS2F_B = 0xC93 // 3219 ++ SYS___CLASS2F_H = 0xC94 // 3220 ++ SYS___CLASS2L_B = 0xC95 // 3221 ++ SYS___CLASS2L_H = 0xC96 // 3222 ++ SYS___CLASS2D32 = 0xC97 // 3223 ++ SYS___CLASS2D64 = 0xC98 // 3224 ++ SYS___CLASS2D128 = 0xC99 // 3225 ++ SYS___TOCSNAME2 = 0xC9A // 3226 ++ SYS___D1TOP = 0xC9B // 3227 ++ SYS___D2TOP = 0xC9C // 3228 ++ SYS___D4TOP = 0xC9D // 3229 ++ SYS___PTOD1 = 0xC9E // 3230 ++ SYS___PTOD2 = 0xC9F // 3231 ++ SYS___PTOD4 = 0xCA0 // 3232 ++ SYS_CLEARERR_UNLOCKED = 0xCA1 // 3233 ++ SYS_FDELREC_UNLOCKED = 0xCA2 // 3234 ++ SYS_FEOF_UNLOCKED = 0xCA3 // 3235 ++ SYS_FERROR_UNLOCKED = 0xCA4 // 3236 ++ SYS_FFLUSH_UNLOCKED = 0xCA5 // 3237 ++ SYS_FGETPOS_UNLOCKED = 0xCA6 // 3238 ++ SYS_FGETWC_UNLOCKED = 0xCA7 // 3239 ++ SYS_FGETWS_UNLOCKED = 0xCA8 // 3240 ++ SYS_FILENO_UNLOCKED = 0xCA9 // 3241 ++ SYS_FLDATA_UNLOCKED = 0xCAA // 3242 ++ SYS_FLOCATE_UNLOCKED = 0xCAB // 3243 ++ SYS_FPRINTF_UNLOCKED = 0xCAC // 3244 ++ SYS_FPUTWC_UNLOCKED = 0xCAD // 3245 ++ SYS_FPUTWS_UNLOCKED = 0xCAE // 3246 ++ SYS_FSCANF_UNLOCKED = 0xCAF // 3247 ++ SYS_FSEEK_UNLOCKED = 0xCB0 // 3248 ++ SYS_FSEEKO_UNLOCKED = 0xCB1 // 3249 ++ SYS_FSETPOS_UNLOCKED = 0xCB3 // 3251 ++ SYS_FTELL_UNLOCKED = 0xCB4 // 3252 ++ SYS_FTELLO_UNLOCKED = 0xCB5 // 3253 ++ SYS_FUPDATE_UNLOCKED = 0xCB7 // 3255 ++ SYS_FWIDE_UNLOCKED = 0xCB8 // 3256 ++ SYS_FWPRINTF_UNLOCKED = 0xCB9 // 3257 ++ SYS_FWSCANF_UNLOCKED = 0xCBA // 3258 ++ SYS_GETWC_UNLOCKED = 0xCBB // 3259 ++ SYS_GETWCHAR_UNLOCKED = 0xCBC // 3260 ++ SYS_PERROR_UNLOCKED = 0xCBD // 3261 ++ SYS_PRINTF_UNLOCKED = 0xCBE // 3262 ++ SYS_PUTWC_UNLOCKED = 0xCBF // 3263 ++ SYS_PUTWCHAR_UNLOCKED = 0xCC0 // 3264 ++ SYS_REWIND_UNLOCKED = 0xCC1 // 3265 ++ SYS_SCANF_UNLOCKED = 0xCC2 // 3266 ++ SYS_UNGETC_UNLOCKED = 0xCC3 // 3267 ++ SYS_UNGETWC_UNLOCKED = 0xCC4 // 3268 ++ SYS_VFPRINTF_UNLOCKED = 0xCC5 // 3269 ++ SYS_VFSCANF_UNLOCKED = 0xCC7 // 3271 ++ SYS_VFWPRINTF_UNLOCKED = 0xCC9 // 3273 ++ SYS_VFWSCANF_UNLOCKED = 0xCCB // 3275 ++ SYS_VPRINTF_UNLOCKED = 0xCCD // 3277 ++ SYS_VSCANF_UNLOCKED = 0xCCF // 3279 ++ SYS_VWPRINTF_UNLOCKED = 0xCD1 // 3281 ++ SYS_VWSCANF_UNLOCKED = 0xCD3 // 3283 ++ SYS_WPRINTF_UNLOCKED = 0xCD5 // 3285 ++ SYS_WSCANF_UNLOCKED = 0xCD6 // 3286 ++ SYS_ASCTIME64 = 0xCD7 // 3287 ++ SYS_ASCTIME64_R = 0xCD8 // 3288 ++ SYS_CTIME64 = 0xCD9 // 3289 ++ SYS_CTIME64_R = 0xCDA // 3290 ++ SYS_DIFFTIME64 = 0xCDB // 3291 ++ SYS_GMTIME64 = 0xCDC // 3292 ++ SYS_GMTIME64_R = 0xCDD // 3293 ++ SYS_LOCALTIME64 = 0xCDE // 3294 ++ SYS_LOCALTIME64_R = 0xCDF // 3295 ++ SYS_MKTIME64 = 0xCE0 // 3296 ++ SYS_TIME64 = 0xCE1 // 3297 ++ SYS___LOGIN_APPLID = 0xCE2 // 3298 ++ SYS___PASSWD_APPLID = 0xCE3 // 3299 ++ SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 // 3300 ++ SYS___GETTHENT = 0xCE5 // 3301 ++ SYS_FREEIFADDRS = 0xCE6 // 3302 ++ SYS_GETIFADDRS = 0xCE7 // 3303 ++ SYS_POSIX_FALLOCATE = 0xCE8 // 3304 ++ SYS_POSIX_MEMALIGN = 0xCE9 // 3305 ++ SYS_SIZEOF_ALLOC = 0xCEA // 3306 ++ SYS_RESIZE_ALLOC = 0xCEB // 3307 ++ SYS_FREAD_NOUPDATE = 0xCEC // 3308 ++ SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED // 3309 ++ SYS_FGETPOS64 = 0xCEE // 3310 ++ SYS_FSEEK64 = 0xCEF // 3311 ++ SYS_FSEEKO64 = 0xCF0 // 3312 ++ SYS_FSETPOS64 = 0xCF1 // 3313 ++ SYS_FTELL64 = 0xCF2 // 3314 ++ SYS_FTELLO64 = 0xCF3 // 3315 ++ SYS_FGETPOS64_UNLOCKED = 0xCF4 // 3316 ++ SYS_FSEEK64_UNLOCKED = 0xCF5 // 3317 ++ SYS_FSEEKO64_UNLOCKED = 0xCF6 // 3318 ++ SYS_FSETPOS64_UNLOCKED = 0xCF7 // 3319 ++ SYS_FTELL64_UNLOCKED = 0xCF8 // 3320 ++ SYS_FTELLO64_UNLOCKED = 0xCF9 // 3321 ++ SYS_FOPEN_UNLOCKED = 0xCFA // 3322 ++ SYS_FREOPEN_UNLOCKED = 0xCFB // 3323 ++ SYS_FDOPEN_UNLOCKED = 0xCFC // 3324 ++ SYS_TMPFILE_UNLOCKED = 0xCFD // 3325 ++ SYS___MOSERVICES = 0xD3D // 3389 ++ SYS___GETTOD = 0xD3E // 3390 ++ SYS_C16RTOMB = 0xD40 // 3392 ++ SYS_C32RTOMB = 0xD41 // 3393 ++ SYS_MBRTOC16 = 0xD42 // 3394 ++ SYS_MBRTOC32 = 0xD43 // 3395 ++ SYS_QUANTEXPD32 = 0xD44 // 3396 ++ SYS_QUANTEXPD64 = 0xD45 // 3397 ++ SYS_QUANTEXPD128 = 0xD46 // 3398 ++ SYS___LOCALE_CTL = 0xD47 // 3399 ++ SYS___SMF_RECORD2 = 0xD48 // 3400 ++ SYS_FOPEN64 = 0xD49 // 3401 ++ SYS_FOPEN64_UNLOCKED = 0xD4A // 3402 ++ SYS_FREOPEN64 = 0xD4B // 3403 ++ SYS_FREOPEN64_UNLOCKED = 0xD4C // 3404 ++ SYS_TMPFILE64 = 0xD4D // 3405 ++ SYS_TMPFILE64_UNLOCKED = 0xD4E // 3406 ++ SYS_GETDATE64 = 0xD4F // 3407 ++ SYS_GETTIMEOFDAY64 = 0xD50 // 3408 ++ SYS_BIND2ADDRSEL = 0xD59 // 3417 ++ SYS_INET6_IS_SRCADDR = 0xD5A // 3418 ++ SYS___GETGRGID1 = 0xD5B // 3419 ++ SYS___GETGRNAM1 = 0xD5C // 3420 ++ SYS___FBUFSIZE = 0xD60 // 3424 ++ SYS___FPENDING = 0xD61 // 3425 ++ SYS___FLBF = 0xD62 // 3426 ++ SYS___FREADABLE = 0xD63 // 3427 ++ SYS___FWRITABLE = 0xD64 // 3428 ++ SYS___FREADING = 0xD65 // 3429 ++ SYS___FWRITING = 0xD66 // 3430 ++ SYS___FSETLOCKING = 0xD67 // 3431 ++ SYS__FLUSHLBF = 0xD68 // 3432 ++ SYS___FPURGE = 0xD69 // 3433 ++ SYS___FREADAHEAD = 0xD6A // 3434 ++ SYS___FSETERR = 0xD6B // 3435 ++ SYS___FPENDING_UNLOCKED = 0xD6C // 3436 ++ SYS___FREADING_UNLOCKED = 0xD6D // 3437 ++ SYS___FWRITING_UNLOCKED = 0xD6E // 3438 ++ SYS__FLUSHLBF_UNLOCKED = 0xD6F // 3439 ++ SYS___FPURGE_UNLOCKED = 0xD70 // 3440 ++ SYS___FREADAHEAD_UNLOCKED = 0xD71 // 3441 ++ SYS___LE_CEEGTJS = 0xD72 // 3442 ++ SYS___LE_RECORD_DUMP = 0xD73 // 3443 ++ SYS_FSTAT64 = 0xD74 // 3444 ++ SYS_LSTAT64 = 0xD75 // 3445 ++ SYS_STAT64 = 0xD76 // 3446 ++ SYS___READDIR2_64 = 0xD77 // 3447 ++ SYS___OPEN_STAT64 = 0xD78 // 3448 ++ SYS_FTW64 = 0xD79 // 3449 ++ SYS_NFTW64 = 0xD7A // 3450 ++ SYS_UTIME64 = 0xD7B // 3451 ++ SYS_UTIMES64 = 0xD7C // 3452 ++ SYS___GETIPC64 = 0xD7D // 3453 ++ SYS_MSGCTL64 = 0xD7E // 3454 ++ SYS_SEMCTL64 = 0xD7F // 3455 ++ SYS_SHMCTL64 = 0xD80 // 3456 ++ SYS_MSGXRCV64 = 0xD81 // 3457 ++ SYS___MGXR64 = 0xD81 // 3457 ++ SYS_W_GETPSENT64 = 0xD82 // 3458 ++ SYS_PTHREAD_COND_TIMEDWAIT64 = 0xD83 // 3459 ++ SYS_FTIME64 = 0xD85 // 3461 ++ SYS_GETUTXENT64 = 0xD86 // 3462 ++ SYS_GETUTXID64 = 0xD87 // 3463 ++ SYS_GETUTXLINE64 = 0xD88 // 3464 ++ SYS_PUTUTXLINE64 = 0xD89 // 3465 ++ SYS_NEWLOCALE = 0xD8A // 3466 ++ SYS_FREELOCALE = 0xD8B // 3467 ++ SYS_USELOCALE = 0xD8C // 3468 ++ SYS_DUPLOCALE = 0xD8D // 3469 ++ SYS___CHATTR64 = 0xD9C // 3484 ++ SYS___LCHATTR64 = 0xD9D // 3485 ++ SYS___FCHATTR64 = 0xD9E // 3486 ++ SYS_____CHATTR64_A = 0xD9F // 3487 ++ SYS_____LCHATTR64_A = 0xDA0 // 3488 ++ SYS___LE_CEEUSGD = 0xDA1 // 3489 ++ SYS___LE_IFAM_CON = 0xDA2 // 3490 ++ SYS___LE_IFAM_DSC = 0xDA3 // 3491 ++ SYS___LE_IFAM_GET = 0xDA4 // 3492 ++ SYS___LE_IFAM_QRY = 0xDA5 // 3493 ++ SYS_ALIGNED_ALLOC = 0xDA6 // 3494 ++ SYS_ACCEPT4 = 0xDA7 // 3495 ++ SYS___ACCEPT4_A = 0xDA8 // 3496 ++ SYS_COPYFILERANGE = 0xDA9 // 3497 ++ SYS_GETLINE = 0xDAA // 3498 ++ SYS___GETLINE_A = 0xDAB // 3499 ++ SYS_DIRFD = 0xDAC // 3500 ++ SYS_CLOCK_GETTIME = 0xDAD // 3501 ++ SYS_DUP3 = 0xDAE // 3502 ++ SYS_EPOLL_CREATE = 0xDAF // 3503 ++ SYS_EPOLL_CREATE1 = 0xDB0 // 3504 ++ SYS_EPOLL_CTL = 0xDB1 // 3505 ++ SYS_EPOLL_WAIT = 0xDB2 // 3506 ++ SYS_EPOLL_PWAIT = 0xDB3 // 3507 ++ SYS_EVENTFD = 0xDB4 // 3508 ++ SYS_STATFS = 0xDB5 // 3509 ++ SYS___STATFS_A = 0xDB6 // 3510 ++ SYS_FSTATFS = 0xDB7 // 3511 ++ SYS_INOTIFY_INIT = 0xDB8 // 3512 ++ SYS_INOTIFY_INIT1 = 0xDB9 // 3513 ++ SYS_INOTIFY_ADD_WATCH = 0xDBA // 3514 ++ SYS___INOTIFY_ADD_WATCH_A = 0xDBB // 3515 ++ SYS_INOTIFY_RM_WATCH = 0xDBC // 3516 ++ SYS_PIPE2 = 0xDBD // 3517 ++ SYS_PIVOT_ROOT = 0xDBE // 3518 ++ SYS___PIVOT_ROOT_A = 0xDBF // 3519 ++ SYS_PRCTL = 0xDC0 // 3520 ++ SYS_PRLIMIT = 0xDC1 // 3521 ++ SYS_SETHOSTNAME = 0xDC2 // 3522 ++ SYS___SETHOSTNAME_A = 0xDC3 // 3523 ++ SYS_SETRESUID = 0xDC4 // 3524 ++ SYS_SETRESGID = 0xDC5 // 3525 ++ SYS_PTHREAD_CONDATTR_GETCLOCK = 0xDC6 // 3526 ++ SYS_FLOCK = 0xDC7 // 3527 ++ SYS_FGETXATTR = 0xDC8 // 3528 ++ SYS___FGETXATTR_A = 0xDC9 // 3529 ++ SYS_FLISTXATTR = 0xDCA // 3530 ++ SYS___FLISTXATTR_A = 0xDCB // 3531 ++ SYS_FREMOVEXATTR = 0xDCC // 3532 ++ SYS___FREMOVEXATTR_A = 0xDCD // 3533 ++ SYS_FSETXATTR = 0xDCE // 3534 ++ SYS___FSETXATTR_A = 0xDCF // 3535 ++ SYS_GETXATTR = 0xDD0 // 3536 ++ SYS___GETXATTR_A = 0xDD1 // 3537 ++ SYS_LGETXATTR = 0xDD2 // 3538 ++ SYS___LGETXATTR_A = 0xDD3 // 3539 ++ SYS_LISTXATTR = 0xDD4 // 3540 ++ SYS___LISTXATTR_A = 0xDD5 // 3541 ++ SYS_LLISTXATTR = 0xDD6 // 3542 ++ SYS___LLISTXATTR_A = 0xDD7 // 3543 ++ SYS_LREMOVEXATTR = 0xDD8 // 3544 ++ SYS___LREMOVEXATTR_A = 0xDD9 // 3545 ++ SYS_LSETXATTR = 0xDDA // 3546 ++ SYS___LSETXATTR_A = 0xDDB // 3547 ++ SYS_REMOVEXATTR = 0xDDC // 3548 ++ SYS___REMOVEXATTR_A = 0xDDD // 3549 ++ SYS_SETXATTR = 0xDDE // 3550 ++ SYS___SETXATTR_A = 0xDDF // 3551 ++ SYS_FDATASYNC = 0xDE0 // 3552 ++ SYS_SYNCFS = 0xDE1 // 3553 ++ SYS_FUTIMES = 0xDE2 // 3554 ++ SYS_FUTIMESAT = 0xDE3 // 3555 ++ SYS___FUTIMESAT_A = 0xDE4 // 3556 ++ SYS_LUTIMES = 0xDE5 // 3557 ++ SYS___LUTIMES_A = 0xDE6 // 3558 ++ SYS_INET_ATON = 0xDE7 // 3559 ++ SYS_GETRANDOM = 0xDE8 // 3560 ++ SYS_GETTID = 0xDE9 // 3561 ++ SYS_MEMFD_CREATE = 0xDEA // 3562 ++ SYS___MEMFD_CREATE_A = 0xDEB // 3563 ++ SYS_FACCESSAT = 0xDEC // 3564 ++ SYS___FACCESSAT_A = 0xDED // 3565 ++ SYS_FCHMODAT = 0xDEE // 3566 ++ SYS___FCHMODAT_A = 0xDEF // 3567 ++ SYS_FCHOWNAT = 0xDF0 // 3568 ++ SYS___FCHOWNAT_A = 0xDF1 // 3569 ++ SYS_FSTATAT = 0xDF2 // 3570 ++ SYS___FSTATAT_A = 0xDF3 // 3571 ++ SYS_LINKAT = 0xDF4 // 3572 ++ SYS___LINKAT_A = 0xDF5 // 3573 ++ SYS_MKDIRAT = 0xDF6 // 3574 ++ SYS___MKDIRAT_A = 0xDF7 // 3575 ++ SYS_MKFIFOAT = 0xDF8 // 3576 ++ SYS___MKFIFOAT_A = 0xDF9 // 3577 ++ SYS_MKNODAT = 0xDFA // 3578 ++ SYS___MKNODAT_A = 0xDFB // 3579 ++ SYS_OPENAT = 0xDFC // 3580 ++ SYS___OPENAT_A = 0xDFD // 3581 ++ SYS_READLINKAT = 0xDFE // 3582 ++ SYS___READLINKAT_A = 0xDFF // 3583 ++ SYS_RENAMEAT = 0xE00 // 3584 ++ SYS___RENAMEAT_A = 0xE01 // 3585 ++ SYS_RENAMEAT2 = 0xE02 // 3586 ++ SYS___RENAMEAT2_A = 0xE03 // 3587 ++ SYS_SYMLINKAT = 0xE04 // 3588 ++ SYS___SYMLINKAT_A = 0xE05 // 3589 ++ SYS_UNLINKAT = 0xE06 // 3590 ++ SYS___UNLINKAT_A = 0xE07 // 3591 ++ SYS_SYSINFO = 0xE08 // 3592 ++ SYS_WAIT4 = 0xE0A // 3594 ++ SYS_CLONE = 0xE0B // 3595 ++ SYS_UNSHARE = 0xE0C // 3596 ++ SYS_SETNS = 0xE0D // 3597 ++ SYS_CAPGET = 0xE0E // 3598 ++ SYS_CAPSET = 0xE0F // 3599 ++ SYS_STRCHRNUL = 0xE10 // 3600 ++ SYS_PTHREAD_CONDATTR_SETCLOCK = 0xE12 // 3602 ++ SYS_OPEN_BY_HANDLE_AT = 0xE13 // 3603 ++ SYS___OPEN_BY_HANDLE_AT_A = 0xE14 // 3604 ++ SYS___INET_ATON_A = 0xE15 // 3605 ++ SYS_MOUNT1 = 0xE16 // 3606 ++ SYS___MOUNT1_A = 0xE17 // 3607 ++ SYS_UMOUNT1 = 0xE18 // 3608 ++ SYS___UMOUNT1_A = 0xE19 // 3609 ++ SYS_UMOUNT2 = 0xE1A // 3610 ++ SYS___UMOUNT2_A = 0xE1B // 3611 ++ SYS___PRCTL_A = 0xE1C // 3612 ++ SYS_LOCALTIME_R2 = 0xE1D // 3613 ++ SYS___LOCALTIME_R2_A = 0xE1E // 3614 ++ SYS_OPENAT2 = 0xE1F // 3615 ++ SYS___OPENAT2_A = 0xE20 // 3616 ++ SYS___LE_CEEMICT = 0xE21 // 3617 ++ SYS_GETENTROPY = 0xE22 // 3618 ++ SYS_NANOSLEEP = 0xE23 // 3619 ++ SYS_UTIMENSAT = 0xE24 // 3620 ++ SYS___UTIMENSAT_A = 0xE25 // 3621 ++ SYS_ASPRINTF = 0xE26 // 3622 ++ SYS___ASPRINTF_A = 0xE27 // 3623 ++ SYS_VASPRINTF = 0xE28 // 3624 ++ SYS___VASPRINTF_A = 0xE29 // 3625 ++ SYS_DPRINTF = 0xE2A // 3626 ++ SYS___DPRINTF_A = 0xE2B // 3627 ++ SYS_GETOPT_LONG = 0xE2C // 3628 ++ SYS___GETOPT_LONG_A = 0xE2D // 3629 ++ SYS_PSIGNAL = 0xE2E // 3630 ++ SYS___PSIGNAL_A = 0xE2F // 3631 ++ SYS_PSIGNAL_UNLOCKED = 0xE30 // 3632 ++ SYS___PSIGNAL_UNLOCKED_A = 0xE31 // 3633 ++ SYS_FSTATAT_O = 0xE32 // 3634 ++ SYS___FSTATAT_O_A = 0xE33 // 3635 ++ SYS_FSTATAT64 = 0xE34 // 3636 ++ SYS___FSTATAT64_A = 0xE35 // 3637 ++ SYS___CHATTRAT = 0xE36 // 3638 ++ SYS_____CHATTRAT_A = 0xE37 // 3639 ++ SYS___CHATTRAT64 = 0xE38 // 3640 ++ SYS_____CHATTRAT64_A = 0xE39 // 3641 ++ SYS_MADVISE = 0xE3A // 3642 ++ SYS___AUTHENTICATE = 0xE3B // 3643 ++ + ) +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +index 091d107f3a..17c53bd9b3 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +@@ -306,6 +306,19 @@ type XVSockPgen struct { + + type _Socklen uint32 + ++type SaeAssocID uint32 ++ ++type SaeConnID uint32 ++ ++type SaEndpoints struct { ++ Srcif uint32 ++ Srcaddr *RawSockaddr ++ Srcaddrlen uint32 ++ Dstaddr *RawSockaddr ++ Dstaddrlen uint32 ++ _ [4]byte ++} ++ + type Xucred struct { + Version uint32 + Uid uint32 +@@ -449,11 +462,14 @@ type FdSet struct { + + const ( + SizeofIfMsghdr = 0x70 ++ SizeofIfMsghdr2 = 0xa0 + SizeofIfData = 0x60 ++ SizeofIfData64 = 0x80 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c ++ SizeofRtMsghdr2 = 0x5c + SizeofRtMetrics = 0x38 + ) + +@@ -467,6 +483,20 @@ type IfMsghdr struct { + Data IfData + } + ++type IfMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Snd_len int32 ++ Snd_maxlen int32 ++ Snd_drops int32 ++ Timer int32 ++ Data IfData64 ++} ++ + type IfData struct { + Type uint8 + Typelen uint8 +@@ -499,6 +529,34 @@ type IfData struct { + Reserved2 uint32 + } + ++type IfData64 struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval32 ++} ++ + type IfaMsghdr struct { + Msglen uint16 + Version uint8 +@@ -544,6 +602,21 @@ type RtMsghdr struct { + Rmx RtMetrics + } + ++type RtMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Flags int32 ++ Addrs int32 ++ Refcnt int32 ++ Parentflags int32 ++ Reserved int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ + type RtMetrics struct { + Locks uint32 + Mtu uint32 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +index 28ff4ef74d..2392226a74 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +@@ -306,6 +306,19 @@ type XVSockPgen struct { + + type _Socklen uint32 + ++type SaeAssocID uint32 ++ ++type SaeConnID uint32 ++ ++type SaEndpoints struct { ++ Srcif uint32 ++ Srcaddr *RawSockaddr ++ Srcaddrlen uint32 ++ Dstaddr *RawSockaddr ++ Dstaddrlen uint32 ++ _ [4]byte ++} ++ + type Xucred struct { + Version uint32 + Uid uint32 +@@ -449,11 +462,14 @@ type FdSet struct { + + const ( + SizeofIfMsghdr = 0x70 ++ SizeofIfMsghdr2 = 0xa0 + SizeofIfData = 0x60 ++ SizeofIfData64 = 0x80 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c ++ SizeofRtMsghdr2 = 0x5c + SizeofRtMetrics = 0x38 + ) + +@@ -467,6 +483,20 @@ type IfMsghdr struct { + Data IfData + } + ++type IfMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Snd_len int32 ++ Snd_maxlen int32 ++ Snd_drops int32 ++ Timer int32 ++ Data IfData64 ++} ++ + type IfData struct { + Type uint8 + Typelen uint8 +@@ -499,6 +529,34 @@ type IfData struct { + Reserved2 uint32 + } + ++type IfData64 struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval32 ++} ++ + type IfaMsghdr struct { + Msglen uint16 + Version uint8 +@@ -544,6 +602,21 @@ type RtMsghdr struct { + Rmx RtMetrics + } + ++type RtMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Flags int32 ++ Addrs int32 ++ Refcnt int32 ++ Parentflags int32 ++ Reserved int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ + type RtMetrics struct { + Locks uint32 + Mtu uint32 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +index 6cbd094a3a..51e13eb055 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +@@ -625,6 +625,7 @@ const ( + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 ++ POLLRDHUP = 0x4000 + ) + + type CapRights struct { +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +index 7c03b6ee77..d002d8ef3c 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +@@ -630,6 +630,7 @@ const ( + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 ++ POLLRDHUP = 0x4000 + ) + + type CapRights struct { +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +index 422107ee8b..3f863d898d 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +@@ -616,6 +616,7 @@ const ( + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 ++ POLLRDHUP = 0x4000 + ) + + type CapRights struct { +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +index 505a12acfd..61c7293106 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +@@ -610,6 +610,7 @@ const ( + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 ++ POLLRDHUP = 0x4000 + ) + + type CapRights struct { +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +index cc986c7900..b5d17414f0 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +@@ -612,6 +612,7 @@ const ( + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 ++ POLLRDHUP = 0x4000 + ) + + type CapRights struct { +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go +index dc0c955eec..a46abe6472 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go +@@ -87,30 +87,35 @@ type StatxTimestamp struct { + } + + type Statx_t struct { +- Mask uint32 +- Blksize uint32 +- Attributes uint64 +- Nlink uint32 +- Uid uint32 +- Gid uint32 +- Mode uint16 +- _ [1]uint16 +- Ino uint64 +- Size uint64 +- Blocks uint64 +- Attributes_mask uint64 +- Atime StatxTimestamp +- Btime StatxTimestamp +- Ctime StatxTimestamp +- Mtime StatxTimestamp +- Rdev_major uint32 +- Rdev_minor uint32 +- Dev_major uint32 +- Dev_minor uint32 +- Mnt_id uint64 +- Dio_mem_align uint32 +- Dio_offset_align uint32 +- _ [12]uint64 ++ Mask uint32 ++ Blksize uint32 ++ Attributes uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Mode uint16 ++ _ [1]uint16 ++ Ino uint64 ++ Size uint64 ++ Blocks uint64 ++ Attributes_mask uint64 ++ Atime StatxTimestamp ++ Btime StatxTimestamp ++ Ctime StatxTimestamp ++ Mtime StatxTimestamp ++ Rdev_major uint32 ++ Rdev_minor uint32 ++ Dev_major uint32 ++ Dev_minor uint32 ++ Mnt_id uint64 ++ Dio_mem_align uint32 ++ Dio_offset_align uint32 ++ Subvol uint64 ++ Atomic_write_unit_min uint32 ++ Atomic_write_unit_max uint32 ++ Atomic_write_segments_max uint32 ++ _ [1]uint32 ++ _ [9]uint64 + } + + type Fsid struct { +@@ -515,6 +520,29 @@ type TCPInfo struct { + Total_rto_time uint32 + } + ++type TCPVegasInfo struct { ++ Enabled uint32 ++ Rttcnt uint32 ++ Rtt uint32 ++ Minrtt uint32 ++} ++ ++type TCPDCTCPInfo struct { ++ Enabled uint16 ++ Ce_state uint16 ++ Alpha uint32 ++ Ab_ecn uint32 ++ Ab_tot uint32 ++} ++ ++type TCPBBRInfo struct { ++ Bw_lo uint32 ++ Bw_hi uint32 ++ Min_rtt uint32 ++ Pacing_gain uint32 ++ Cwnd_gain uint32 ++} ++ + type CanFilter struct { + Id uint32 + Mask uint32 +@@ -556,6 +584,7 @@ const ( + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0xf8 ++ SizeofTCPCCInfo = 0x14 + SizeofCanFilter = 0x8 + SizeofTCPRepairOpt = 0x8 + ) +@@ -836,6 +865,15 @@ const ( + FSPICK_EMPTY_PATH = 0x8 + + FSMOUNT_CLOEXEC = 0x1 ++ ++ FSCONFIG_SET_FLAG = 0x0 ++ FSCONFIG_SET_STRING = 0x1 ++ FSCONFIG_SET_BINARY = 0x2 ++ FSCONFIG_SET_PATH = 0x3 ++ FSCONFIG_SET_PATH_EMPTY = 0x4 ++ FSCONFIG_SET_FD = 0x5 ++ FSCONFIG_CMD_CREATE = 0x6 ++ FSCONFIG_CMD_RECONFIGURE = 0x7 + ) + + type OpenHow struct { +@@ -1169,7 +1207,8 @@ const ( + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 +- PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 ++ PERF_SAMPLE_BRANCH_COUNTERS = 0x80000 ++ PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x14 + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 +@@ -1189,7 +1228,7 @@ const ( + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 + PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 +- PERF_SAMPLE_BRANCH_MAX = 0x80000 ++ PERF_SAMPLE_BRANCH_MAX = 0x100000 + PERF_BR_UNKNOWN = 0x0 + PERF_BR_COND = 0x1 + PERF_BR_UNCOND = 0x2 +@@ -1550,6 +1589,7 @@ const ( + IFLA_DEVLINK_PORT = 0x3e + IFLA_GSO_IPV4_MAX_SIZE = 0x3f + IFLA_GRO_IPV4_MAX_SIZE = 0x40 ++ IFLA_DPLL_PIN = 0x41 + IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 + IFLA_PROTO_DOWN_REASON_MASK = 0x1 + IFLA_PROTO_DOWN_REASON_VALUE = 0x2 +@@ -1565,6 +1605,7 @@ const ( + IFLA_INET6_ICMP6STATS = 0x6 + IFLA_INET6_TOKEN = 0x7 + IFLA_INET6_ADDR_GEN_MODE = 0x8 ++ IFLA_INET6_RA_MTU = 0x9 + IFLA_BR_UNSPEC = 0x0 + IFLA_BR_FORWARD_DELAY = 0x1 + IFLA_BR_HELLO_TIME = 0x2 +@@ -1612,6 +1653,9 @@ const ( + IFLA_BR_MCAST_MLD_VERSION = 0x2c + IFLA_BR_VLAN_STATS_PER_PORT = 0x2d + IFLA_BR_MULTI_BOOLOPT = 0x2e ++ IFLA_BR_MCAST_QUERIER_STATE = 0x2f ++ IFLA_BR_FDB_N_LEARNED = 0x30 ++ IFLA_BR_FDB_MAX_LEARNED = 0x31 + IFLA_BRPORT_UNSPEC = 0x0 + IFLA_BRPORT_STATE = 0x1 + IFLA_BRPORT_PRIORITY = 0x2 +@@ -1649,6 +1693,14 @@ const ( + IFLA_BRPORT_BACKUP_PORT = 0x22 + IFLA_BRPORT_MRP_RING_OPEN = 0x23 + IFLA_BRPORT_MRP_IN_OPEN = 0x24 ++ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 ++ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 ++ IFLA_BRPORT_LOCKED = 0x27 ++ IFLA_BRPORT_MAB = 0x28 ++ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 ++ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a ++ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b ++ IFLA_BRPORT_BACKUP_NHID = 0x2c + IFLA_INFO_UNSPEC = 0x0 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 +@@ -1670,6 +1722,9 @@ const ( + IFLA_MACVLAN_MACADDR = 0x4 + IFLA_MACVLAN_MACADDR_DATA = 0x5 + IFLA_MACVLAN_MACADDR_COUNT = 0x6 ++ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 ++ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 ++ IFLA_MACVLAN_BC_CUTOFF = 0x9 + IFLA_VRF_UNSPEC = 0x0 + IFLA_VRF_TABLE = 0x1 + IFLA_VRF_PORT_UNSPEC = 0x0 +@@ -1693,9 +1748,16 @@ const ( + IFLA_XFRM_UNSPEC = 0x0 + IFLA_XFRM_LINK = 0x1 + IFLA_XFRM_IF_ID = 0x2 ++ IFLA_XFRM_COLLECT_METADATA = 0x3 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 ++ IFLA_NETKIT_UNSPEC = 0x0 ++ IFLA_NETKIT_PEER_INFO = 0x1 ++ IFLA_NETKIT_PRIMARY = 0x2 ++ IFLA_NETKIT_POLICY = 0x3 ++ IFLA_NETKIT_PEER_POLICY = 0x4 ++ IFLA_NETKIT_MODE = 0x5 + IFLA_VXLAN_UNSPEC = 0x0 + IFLA_VXLAN_ID = 0x1 + IFLA_VXLAN_GROUP = 0x2 +@@ -1726,6 +1788,9 @@ const ( + IFLA_VXLAN_GPE = 0x1b + IFLA_VXLAN_TTL_INHERIT = 0x1c + IFLA_VXLAN_DF = 0x1d ++ IFLA_VXLAN_VNIFILTER = 0x1e ++ IFLA_VXLAN_LOCALBYPASS = 0x1f ++ IFLA_VXLAN_LABEL_POLICY = 0x20 + IFLA_GENEVE_UNSPEC = 0x0 + IFLA_GENEVE_ID = 0x1 + IFLA_GENEVE_REMOTE = 0x2 +@@ -1740,6 +1805,7 @@ const ( + IFLA_GENEVE_LABEL = 0xb + IFLA_GENEVE_TTL_INHERIT = 0xc + IFLA_GENEVE_DF = 0xd ++ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe + IFLA_BAREUDP_UNSPEC = 0x0 + IFLA_BAREUDP_PORT = 0x1 + IFLA_BAREUDP_ETHERTYPE = 0x2 +@@ -1752,6 +1818,10 @@ const ( + IFLA_GTP_FD1 = 0x2 + IFLA_GTP_PDP_HASHSIZE = 0x3 + IFLA_GTP_ROLE = 0x4 ++ IFLA_GTP_CREATE_SOCKETS = 0x5 ++ IFLA_GTP_RESTART_COUNT = 0x6 ++ IFLA_GTP_LOCAL = 0x7 ++ IFLA_GTP_LOCAL6 = 0x8 + IFLA_BOND_UNSPEC = 0x0 + IFLA_BOND_MODE = 0x1 + IFLA_BOND_ACTIVE_SLAVE = 0x2 +@@ -1781,6 +1851,10 @@ const ( + IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a + IFLA_BOND_TLB_DYNAMIC_LB = 0x1b + IFLA_BOND_PEER_NOTIF_DELAY = 0x1c ++ IFLA_BOND_AD_LACP_ACTIVE = 0x1d ++ IFLA_BOND_MISSED_MAX = 0x1e ++ IFLA_BOND_NS_IP6_TARGET = 0x1f ++ IFLA_BOND_COUPLED_CONTROL = 0x20 + IFLA_BOND_AD_INFO_UNSPEC = 0x0 + IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 + IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 +@@ -1796,6 +1870,7 @@ const ( + IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 + IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 + IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 ++ IFLA_BOND_SLAVE_PRIO = 0x9 + IFLA_VF_INFO_UNSPEC = 0x0 + IFLA_VF_INFO = 0x1 + IFLA_VF_UNSPEC = 0x0 +@@ -1848,14 +1923,23 @@ const ( + IFLA_HSR_SEQ_NR = 0x5 + IFLA_HSR_VERSION = 0x6 + IFLA_HSR_PROTOCOL = 0x7 ++ IFLA_HSR_INTERLINK = 0x8 + IFLA_STATS_UNSPEC = 0x0 + IFLA_STATS_LINK_64 = 0x1 + IFLA_STATS_LINK_XSTATS = 0x2 + IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 + IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 + IFLA_STATS_AF_SPEC = 0x5 ++ IFLA_STATS_GETSET_UNSPEC = 0x0 ++ IFLA_STATS_GET_FILTERS = 0x1 ++ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 + IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 ++ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 ++ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 ++ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 ++ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 ++ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 + IFLA_XDP_UNSPEC = 0x0 + IFLA_XDP_FD = 0x1 + IFLA_XDP_ATTACHED = 0x2 +@@ -1885,6 +1969,20 @@ const ( + IFLA_RMNET_UNSPEC = 0x0 + IFLA_RMNET_MUX_ID = 0x1 + IFLA_RMNET_FLAGS = 0x2 ++ IFLA_MCTP_UNSPEC = 0x0 ++ IFLA_MCTP_NET = 0x1 ++ IFLA_DSA_UNSPEC = 0x0 ++ IFLA_DSA_CONDUIT = 0x1 ++ IFLA_DSA_MASTER = 0x1 ++) ++ ++const ( ++ NETKIT_NEXT = -0x1 ++ NETKIT_PASS = 0x0 ++ NETKIT_DROP = 0x2 ++ NETKIT_REDIRECT = 0x7 ++ NETKIT_L2 = 0x0 ++ NETKIT_L3 = 0x1 + ) + + const ( +@@ -2421,6 +2519,15 @@ type XDPMmapOffsets struct { + Cr XDPRingOffset + } + ++type XDPUmemReg struct { ++ Addr uint64 ++ Len uint64 ++ Size uint32 ++ Headroom uint32 ++ Flags uint32 ++ Tx_metadata_len uint32 ++} ++ + type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 +@@ -2487,8 +2594,8 @@ const ( + SOF_TIMESTAMPING_BIND_PHC = 0x8000 + SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 + +- SOF_TIMESTAMPING_LAST = 0x10000 +- SOF_TIMESTAMPING_MASK = 0x1ffff ++ SOF_TIMESTAMPING_LAST = 0x20000 ++ SOF_TIMESTAMPING_MASK = 0x3ffff + + SCM_TSTAMP_SND = 0x0 + SCM_TSTAMP_SCHED = 0x1 +@@ -2875,7 +2982,7 @@ const ( + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc +- BPF_TCP_MAX_STATES = 0xd ++ BPF_TCP_MAX_STATES = 0xe + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + TCP_BPF_DELACK_MAX = 0x3eb +@@ -3151,7 +3258,7 @@ const ( + DEVLINK_CMD_LINECARD_NEW = 0x50 + DEVLINK_CMD_LINECARD_DEL = 0x51 + DEVLINK_CMD_SELFTESTS_GET = 0x52 +- DEVLINK_CMD_MAX = 0x53 ++ DEVLINK_CMD_MAX = 0x54 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 +@@ -3403,7 +3510,7 @@ const ( + DEVLINK_PORT_FN_ATTR_STATE = 0x2 + DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 + DEVLINK_PORT_FN_ATTR_CAPS = 0x4 +- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 ++ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x6 + ) + + type FsverityDigest struct { +@@ -3434,7 +3541,7 @@ type Nhmsg struct { + type NexthopGrp struct { + Id uint32 + Weight uint8 +- Resvd1 uint8 ++ High uint8 + Resvd2 uint16 + } + +@@ -3695,7 +3802,7 @@ const ( + ETHTOOL_MSG_PSE_GET = 0x24 + ETHTOOL_MSG_PSE_SET = 0x25 + ETHTOOL_MSG_RSS_GET = 0x26 +- ETHTOOL_MSG_USER_MAX = 0x2b ++ ETHTOOL_MSG_USER_MAX = 0x2d + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 +@@ -3735,12 +3842,15 @@ const ( + ETHTOOL_MSG_MODULE_NTF = 0x24 + ETHTOOL_MSG_PSE_GET_REPLY = 0x25 + ETHTOOL_MSG_RSS_GET_REPLY = 0x26 +- ETHTOOL_MSG_KERNEL_MAX = 0x2b ++ ETHTOOL_MSG_KERNEL_MAX = 0x2e ++ ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 ++ ETHTOOL_FLAG_OMIT_REPLY = 0x2 ++ ETHTOOL_FLAG_STATS = 0x4 + ETHTOOL_A_HEADER_UNSPEC = 0x0 + ETHTOOL_A_HEADER_DEV_INDEX = 0x1 + ETHTOOL_A_HEADER_DEV_NAME = 0x2 + ETHTOOL_A_HEADER_FLAGS = 0x3 +- ETHTOOL_A_HEADER_MAX = 0x3 ++ ETHTOOL_A_HEADER_MAX = 0x4 + ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BIT_INDEX = 0x1 + ETHTOOL_A_BITSET_BIT_NAME = 0x2 +@@ -3877,7 +3987,7 @@ const ( + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 + ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 + ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 +- ETHTOOL_A_COALESCE_MAX = 0x1c ++ ETHTOOL_A_COALESCE_MAX = 0x1e + ETHTOOL_A_PAUSE_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_HEADER = 0x1 + ETHTOOL_A_PAUSE_AUTONEG = 0x2 +@@ -3905,7 +4015,7 @@ const ( + ETHTOOL_A_TSINFO_TX_TYPES = 0x3 + ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 + ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 +- ETHTOOL_A_TSINFO_MAX = 0x5 ++ ETHTOOL_A_TSINFO_MAX = 0x6 + ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_MAX = 0x1 +@@ -3921,11 +4031,11 @@ const ( + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE = 0x2 +- ETHTOOL_A_CABLE_RESULT_MAX = 0x2 ++ ETHTOOL_A_CABLE_RESULT_MAX = 0x3 + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 + ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 +- ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2 ++ ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 +@@ -4008,6 +4118,107 @@ type EthtoolDrvinfo struct { + Regdump_len uint32 + } + ++type EthtoolTsInfo struct { ++ Cmd uint32 ++ So_timestamping uint32 ++ Phc_index int32 ++ Tx_types uint32 ++ Tx_reserved [3]uint32 ++ Rx_filters uint32 ++ Rx_reserved [3]uint32 ++} ++ ++type HwTstampConfig struct { ++ Flags int32 ++ Tx_type int32 ++ Rx_filter int32 ++} ++ ++const ( ++ HWTSTAMP_FILTER_NONE = 0x0 ++ HWTSTAMP_FILTER_ALL = 0x1 ++ HWTSTAMP_FILTER_SOME = 0x2 ++ HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3 ++ HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6 ++ HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9 ++ HWTSTAMP_FILTER_PTP_V2_EVENT = 0xc ++) ++ ++const ( ++ HWTSTAMP_TX_OFF = 0x0 ++ HWTSTAMP_TX_ON = 0x1 ++ HWTSTAMP_TX_ONESTEP_SYNC = 0x2 ++) ++ ++type ( ++ PtpClockCaps struct { ++ Max_adj int32 ++ N_alarm int32 ++ N_ext_ts int32 ++ N_per_out int32 ++ Pps int32 ++ N_pins int32 ++ Cross_timestamping int32 ++ Adjust_phase int32 ++ Max_phase_adj int32 ++ Rsv [11]int32 ++ } ++ PtpClockTime struct { ++ Sec int64 ++ Nsec uint32 ++ Reserved uint32 ++ } ++ PtpExttsEvent struct { ++ T PtpClockTime ++ Index uint32 ++ Flags uint32 ++ Rsv [2]uint32 ++ } ++ PtpExttsRequest struct { ++ Index uint32 ++ Flags uint32 ++ Rsv [2]uint32 ++ } ++ PtpPeroutRequest struct { ++ StartOrPhase PtpClockTime ++ Period PtpClockTime ++ Index uint32 ++ Flags uint32 ++ On PtpClockTime ++ } ++ PtpPinDesc struct { ++ Name [64]byte ++ Index uint32 ++ Func uint32 ++ Chan uint32 ++ Rsv [5]uint32 ++ } ++ PtpSysOffset struct { ++ Samples uint32 ++ Rsv [3]uint32 ++ Ts [51]PtpClockTime ++ } ++ PtpSysOffsetExtended struct { ++ Samples uint32 ++ Clockid int32 ++ Rsv [2]uint32 ++ Ts [25][3]PtpClockTime ++ } ++ PtpSysOffsetPrecise struct { ++ Device PtpClockTime ++ Realtime PtpClockTime ++ Monoraw PtpClockTime ++ Rsv [4]uint32 ++ } ++) ++ ++const ( ++ PTP_PF_NONE = 0x0 ++ PTP_PF_EXTTS = 0x1 ++ PTP_PF_PEROUT = 0x2 ++ PTP_PF_PHYSYNC = 0x3 ++) ++ + type ( + HIDRawReportDescriptor struct { + Size uint32 +@@ -4189,6 +4400,7 @@ const ( + type LandlockRulesetAttr struct { + Access_fs uint64 + Access_net uint64 ++ Scoped uint64 + } + + type LandlockPathBeneathAttr struct { +@@ -4535,7 +4747,7 @@ const ( + NL80211_ATTR_MAC_HINT = 0xc8 + NL80211_ATTR_MAC_MASK = 0xd7 + NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca +- NL80211_ATTR_MAX = 0x146 ++ NL80211_ATTR_MAX = 0x14d + NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 + NL80211_ATTR_MAX_CSA_COUNTERS = 0xce + NL80211_ATTR_MAX_MATCH_SETS = 0x85 +@@ -4801,7 +5013,7 @@ const ( + NL80211_BSS_FREQUENCY_OFFSET = 0x14 + NL80211_BSS_INFORMATION_ELEMENTS = 0x6 + NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf +- NL80211_BSS_MAX = 0x16 ++ NL80211_BSS_MAX = 0x18 + NL80211_BSS_MLD_ADDR = 0x16 + NL80211_BSS_MLO_LINK_ID = 0x15 + NL80211_BSS_PAD = 0x10 +@@ -4905,7 +5117,7 @@ const ( + NL80211_CMD_LEAVE_IBSS = 0x2c + NL80211_CMD_LEAVE_MESH = 0x45 + NL80211_CMD_LEAVE_OCB = 0x6d +- NL80211_CMD_MAX = 0x9a ++ NL80211_CMD_MAX = 0x9b + NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 + NL80211_CMD_MODIFY_LINK_STA = 0x97 + NL80211_CMD_NAN_MATCH = 0x78 +@@ -5139,7 +5351,7 @@ const ( + NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf + NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe + NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf +- NL80211_FREQUENCY_ATTR_MAX = 0x1c ++ NL80211_FREQUENCY_ATTR_MAX = 0x21 + NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 + NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 + NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc +@@ -5307,7 +5519,7 @@ const ( + NL80211_MNTR_FLAG_CONTROL = 0x3 + NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 + NL80211_MNTR_FLAG_FCSFAIL = 0x1 +- NL80211_MNTR_FLAG_MAX = 0x6 ++ NL80211_MNTR_FLAG_MAX = 0x7 + NL80211_MNTR_FLAG_OTHER_BSS = 0x4 + NL80211_MNTR_FLAG_PLCPFAIL = 0x2 + NL80211_MPATH_FLAG_ACTIVE = 0x1 +@@ -5633,7 +5845,7 @@ const ( + NL80211_STA_FLAG_ASSOCIATED = 0x7 + NL80211_STA_FLAG_AUTHENTICATED = 0x5 + NL80211_STA_FLAG_AUTHORIZED = 0x1 +- NL80211_STA_FLAG_MAX = 0x7 ++ NL80211_STA_FLAG_MAX = 0x8 + NL80211_STA_FLAG_MAX_OLD_API = 0x6 + NL80211_STA_FLAG_MFP = 0x4 + NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 +@@ -5931,3 +6143,36 @@ type CachestatRange struct { + Off uint64 + Len uint64 + } ++ ++const ( ++ SK_MEMINFO_RMEM_ALLOC = 0x0 ++ SK_MEMINFO_RCVBUF = 0x1 ++ SK_MEMINFO_WMEM_ALLOC = 0x2 ++ SK_MEMINFO_SNDBUF = 0x3 ++ SK_MEMINFO_FWD_ALLOC = 0x4 ++ SK_MEMINFO_WMEM_QUEUED = 0x5 ++ SK_MEMINFO_OPTMEM = 0x6 ++ SK_MEMINFO_BACKLOG = 0x7 ++ SK_MEMINFO_DROPS = 0x8 ++ SK_MEMINFO_VARS = 0x9 ++ SKNLGRP_NONE = 0x0 ++ SKNLGRP_INET_TCP_DESTROY = 0x1 ++ SKNLGRP_INET_UDP_DESTROY = 0x2 ++ SKNLGRP_INET6_TCP_DESTROY = 0x3 ++ SKNLGRP_INET6_UDP_DESTROY = 0x4 ++ SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0 ++ SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1 ++ SK_DIAG_BPF_STORAGE_REP_NONE = 0x0 ++ SK_DIAG_BPF_STORAGE = 0x1 ++ SK_DIAG_BPF_STORAGE_NONE = 0x0 ++ SK_DIAG_BPF_STORAGE_PAD = 0x1 ++ SK_DIAG_BPF_STORAGE_MAP_ID = 0x2 ++ SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3 ++) ++ ++type SockDiagReq struct { ++ Family uint8 ++ Protocol uint8 ++} ++ ++const RTM_NEWNVLAN = 0x70 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +index 438a30affa..fd402da43f 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +@@ -477,14 +477,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +index adceca3553..eb7a5e1864 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +@@ -492,15 +492,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +index eeaa00a37d..d78ac108b6 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +@@ -470,15 +470,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +index 6739aa91d4..cd06d47f1f 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +@@ -471,15 +471,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +index 9920ef6317..2f28fe26c1 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +@@ -472,15 +472,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +index 2923b799a4..71d6cac2f1 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +@@ -476,15 +476,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +index ce2750ee41..8596d45356 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +@@ -474,15 +474,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +index 3038811d70..cd60ea1866 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +@@ -474,15 +474,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +index efc6fed18c..b0ae420c48 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +@@ -476,15 +476,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +index 9a654b75a9..8359728759 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +@@ -482,15 +482,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +index 40d358e33e..69eb6a5c68 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +@@ -481,15 +481,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +index 148c6ceb86..5f583cb62b 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +@@ -481,15 +481,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +index 72ba81543e..ad05b51a60 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +@@ -499,15 +499,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 +@@ -736,6 +727,37 @@ const ( + RISCV_HWPROBE_EXT_ZBA = 0x8 + RISCV_HWPROBE_EXT_ZBB = 0x10 + RISCV_HWPROBE_EXT_ZBS = 0x20 ++ RISCV_HWPROBE_EXT_ZICBOZ = 0x40 ++ RISCV_HWPROBE_EXT_ZBC = 0x80 ++ RISCV_HWPROBE_EXT_ZBKB = 0x100 ++ RISCV_HWPROBE_EXT_ZBKC = 0x200 ++ RISCV_HWPROBE_EXT_ZBKX = 0x400 ++ RISCV_HWPROBE_EXT_ZKND = 0x800 ++ RISCV_HWPROBE_EXT_ZKNE = 0x1000 ++ RISCV_HWPROBE_EXT_ZKNH = 0x2000 ++ RISCV_HWPROBE_EXT_ZKSED = 0x4000 ++ RISCV_HWPROBE_EXT_ZKSH = 0x8000 ++ RISCV_HWPROBE_EXT_ZKT = 0x10000 ++ RISCV_HWPROBE_EXT_ZVBB = 0x20000 ++ RISCV_HWPROBE_EXT_ZVBC = 0x40000 ++ RISCV_HWPROBE_EXT_ZVKB = 0x80000 ++ RISCV_HWPROBE_EXT_ZVKG = 0x100000 ++ RISCV_HWPROBE_EXT_ZVKNED = 0x200000 ++ RISCV_HWPROBE_EXT_ZVKNHA = 0x400000 ++ RISCV_HWPROBE_EXT_ZVKNHB = 0x800000 ++ RISCV_HWPROBE_EXT_ZVKSED = 0x1000000 ++ RISCV_HWPROBE_EXT_ZVKSH = 0x2000000 ++ RISCV_HWPROBE_EXT_ZVKT = 0x4000000 ++ RISCV_HWPROBE_EXT_ZFH = 0x8000000 ++ RISCV_HWPROBE_EXT_ZFHMIN = 0x10000000 ++ RISCV_HWPROBE_EXT_ZIHINTNTL = 0x20000000 ++ RISCV_HWPROBE_EXT_ZVFH = 0x40000000 ++ RISCV_HWPROBE_EXT_ZVFHMIN = 0x80000000 ++ RISCV_HWPROBE_EXT_ZFA = 0x100000000 ++ RISCV_HWPROBE_EXT_ZTSO = 0x200000000 ++ RISCV_HWPROBE_EXT_ZACAS = 0x400000000 ++ RISCV_HWPROBE_EXT_ZICOND = 0x800000000 ++ RISCV_HWPROBE_EXT_ZIHINTPAUSE = 0x1000000000 + RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 + RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 + RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 +@@ -743,4 +765,6 @@ const ( + RISCV_HWPROBE_MISALIGNED_FAST = 0x3 + RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 + RISCV_HWPROBE_MISALIGNED_MASK = 0x7 ++ RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE = 0x6 ++ RISCV_HWPROBE_WHICH_CPUS = 0x1 + ) +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +index 71e765508e..cf3ce90037 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +@@ -495,15 +495,6 @@ const ( + BLKPG = 0x1269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +index 4abbdb9de9..590b56739c 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +@@ -476,15 +476,6 @@ const ( + BLKPG = 0x20001269 + ) + +-type XDPUmemReg struct { +- Addr uint64 +- Len uint64 +- Size uint32 +- Headroom uint32 +- Flags uint32 +- _ [4]byte +-} +- + type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 +diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +index 54f31be637..2e5d5a4435 100644 +--- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go ++++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +@@ -25,10 +25,13 @@ const ( + SizeofIPv6Mreq = 20 + SizeofICMPv6Filter = 32 + SizeofIPv6MTUInfo = 32 ++ SizeofInet4Pktinfo = 8 ++ SizeofInet6Pktinfo = 20 + SizeofLinger = 8 + SizeofSockaddrInet4 = 16 + SizeofSockaddrInet6 = 28 + SizeofTCPInfo = 0x68 ++ SizeofUcred = 12 + ) + + type ( +@@ -69,12 +72,17 @@ type Utimbuf struct { + } + + type Utsname struct { +- Sysname [65]byte +- Nodename [65]byte +- Release [65]byte +- Version [65]byte +- Machine [65]byte +- Domainname [65]byte ++ Sysname [16]byte ++ Nodename [32]byte ++ Release [8]byte ++ Version [8]byte ++ Machine [16]byte ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 + } + + type RawSockaddrInet4 struct { +@@ -325,7 +333,7 @@ type Statvfs_t struct { + } + + type Statfs_t struct { +- Type uint32 ++ Type uint64 + Bsize uint64 + Blocks uint64 + Bfree uint64 +@@ -336,6 +344,7 @@ type Statfs_t struct { + Namelen uint64 + Frsize uint64 + Flags uint64 ++ _ [4]uint64 + } + + type direntLE struct { +@@ -368,6 +377,12 @@ type Flock_t struct { + Pid int32 + } + ++type F_cnvrt struct { ++ Cvtcmd int32 ++ Pccsid int16 ++ Fccsid int16 ++} ++ + type Termios struct { + Cflag uint32 + Iflag uint32 +@@ -412,3 +427,126 @@ type W_Mntent struct { + Quiesceowner [8]byte + _ [38]byte + } ++ ++type EpollEvent struct { ++ Events uint32 ++ _ int32 ++ Fd int32 ++ Pad int32 ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name string ++} ++ ++const ( ++ SizeofInotifyEvent = 0x10 ++) ++ ++type ConsMsg2 struct { ++ Cm2Format uint16 ++ Cm2R1 uint16 ++ Cm2Msglength uint32 ++ Cm2Msg *byte ++ Cm2R2 [4]byte ++ Cm2R3 [4]byte ++ Cm2Routcde *uint32 ++ Cm2Descr *uint32 ++ Cm2Msgflag uint32 ++ Cm2Token uint32 ++ Cm2Msgid *uint32 ++ Cm2R4 [4]byte ++ Cm2DomToken uint32 ++ Cm2DomMsgid *uint32 ++ Cm2ModCartptr *byte ++ Cm2ModConsidptr *byte ++ Cm2MsgCart [8]byte ++ Cm2MsgConsid [4]byte ++ Cm2R5 [12]byte ++} ++ ++const ( ++ CC_modify = 1 ++ CC_stop = 2 ++ CONSOLE_FORMAT_2 = 2 ++ CONSOLE_FORMAT_3 = 3 ++ CONSOLE_HRDCPY = 0x80000000 ++) ++ ++type OpenHow struct { ++ Flags uint64 ++ Mode uint64 ++ Resolve uint64 ++} ++ ++const SizeofOpenHow = 0x18 ++ ++const ( ++ RESOLVE_CACHED = 0x20 ++ RESOLVE_BENEATH = 0x8 ++ RESOLVE_IN_ROOT = 0x10 ++ RESOLVE_NO_MAGICLINKS = 0x2 ++ RESOLVE_NO_SYMLINKS = 0x4 ++ RESOLVE_NO_XDEV = 0x1 ++) ++ ++type Siginfo struct { ++ Signo int32 ++ Errno int32 ++ Code int32 ++ Pid int32 ++ Uid uint32 ++ _ [44]byte ++} ++ ++type SysvIpcPerm struct { ++ Uid uint32 ++ Gid uint32 ++ Cuid uint32 ++ Cgid uint32 ++ Mode int32 ++} ++ ++type SysvShmDesc struct { ++ Perm SysvIpcPerm ++ _ [4]byte ++ Lpid int32 ++ Cpid int32 ++ Nattch uint32 ++ _ [4]byte ++ _ [4]byte ++ _ [4]byte ++ _ int32 ++ _ uint8 ++ _ uint8 ++ _ uint16 ++ _ *byte ++ Segsz uint64 ++ Atime Time_t ++ Dtime Time_t ++ Ctime Time_t ++} ++ ++type SysvShmDesc64 struct { ++ Perm SysvIpcPerm ++ _ [4]byte ++ Lpid int32 ++ Cpid int32 ++ Nattch uint32 ++ _ [4]byte ++ _ [4]byte ++ _ [4]byte ++ _ int32 ++ _ byte ++ _ uint8 ++ _ uint16 ++ _ *byte ++ Segsz uint64 ++ Atime int64 ++ Dtime int64 ++ Ctime int64 ++} +diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go +index ce2d713d62..16f90560a2 100644 +--- a/vendor/golang.org/x/sys/windows/aliases.go ++++ b/vendor/golang.org/x/sys/windows/aliases.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build windows && go1.9 ++//go:build windows + + package windows + +diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go +index 115341fba6..3ca814f54d 100644 +--- a/vendor/golang.org/x/sys/windows/dll_windows.go ++++ b/vendor/golang.org/x/sys/windows/dll_windows.go +@@ -43,8 +43,8 @@ type DLL struct { + // LoadDLL loads DLL file into memory. + // + // Warning: using LoadDLL without an absolute path name is subject to +-// DLL preloading attacks. To safely load a system DLL, use LazyDLL +-// with System set to true, or use LoadLibraryEx directly. ++// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], ++// or use [LoadLibraryEx] directly. + func LoadDLL(name string) (dll *DLL, err error) { + namep, err := UTF16PtrFromString(name) + if err != nil { +@@ -65,7 +65,7 @@ func LoadDLL(name string) (dll *DLL, err error) { + return d, nil + } + +-// MustLoadDLL is like LoadDLL but panics if load operation failes. ++// MustLoadDLL is like LoadDLL but panics if load operation fails. + func MustLoadDLL(name string) *DLL { + d, e := LoadDLL(name) + if e != nil { +@@ -271,6 +271,9 @@ func (d *LazyDLL) NewProc(name string) *LazyProc { + } + + // NewLazyDLL creates new LazyDLL associated with DLL file. ++// ++// Warning: using NewLazyDLL without an absolute path name is subject to ++// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. + func NewLazyDLL(name string) *LazyDLL { + return &LazyDLL{Name: name} + } +@@ -410,7 +413,3 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { + } + return &DLL{Name: name, Handle: h}, nil + } +- +-type errString string +- +-func (s errString) Error() string { return string(s) } +diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go +index 26be94a8a7..b6e1ab76f8 100644 +--- a/vendor/golang.org/x/sys/windows/security_windows.go ++++ b/vendor/golang.org/x/sys/windows/security_windows.go +@@ -68,6 +68,7 @@ type UserInfo10 struct { + //sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo + //sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation + //sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree ++//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum + + const ( + // do not reorder +@@ -893,7 +894,7 @@ type ACL struct { + aclRevision byte + sbz1 byte + aclSize uint16 +- aceCount uint16 ++ AceCount uint16 + sbz2 uint16 + } + +@@ -1086,6 +1087,27 @@ type EXPLICIT_ACCESS struct { + Trustee TRUSTEE + } + ++// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header ++type ACE_HEADER struct { ++ AceType uint8 ++ AceFlags uint8 ++ AceSize uint16 ++} ++ ++// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace ++type ACCESS_ALLOWED_ACE struct { ++ Header ACE_HEADER ++ Mask ACCESS_MASK ++ SidStart uint32 ++} ++ ++const ( ++ // Constants for AceType ++ // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header ++ ACCESS_ALLOWED_ACE_TYPE = 0 ++ ACCESS_DENIED_ACE_TYPE = 1 ++) ++ + // This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. + type TrusteeValue uintptr + +@@ -1157,6 +1179,7 @@ type OBJECTS_AND_NAME struct { + //sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD + + //sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW ++//sys GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce + + // Control returns the security descriptor control bits. + func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { +diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go +index 6395a031d4..4a32543868 100644 +--- a/vendor/golang.org/x/sys/windows/syscall_windows.go ++++ b/vendor/golang.org/x/sys/windows/syscall_windows.go +@@ -17,8 +17,10 @@ import ( + "unsafe" + ) + +-type Handle uintptr +-type HWND uintptr ++type ( ++ Handle uintptr ++ HWND uintptr ++) + + const ( + InvalidHandle = ^Handle(0) +@@ -165,6 +167,9 @@ func NewCallbackCDecl(fn interface{}) uintptr { + //sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW + //sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW + //sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) ++//sys DisconnectNamedPipe(pipe Handle) (err error) ++//sys GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) ++//sys GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) + //sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) + //sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW + //sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState +@@ -210,6 +215,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { + //sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) + //sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW + //sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId ++//sys LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW ++//sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout ++//sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout ++//sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx + //sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow + //sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW + //sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx +@@ -306,6 +315,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { + //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode + //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo + //sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition ++//sys GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP ++//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP ++//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP ++//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP + //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW + //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW + //sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole +@@ -348,8 +361,19 @@ func NewCallbackCDecl(fn interface{}) uintptr { + //sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost + //sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) + //sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) ++//sys ClearCommBreak(handle Handle) (err error) ++//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) ++//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) ++//sys GetCommState(handle Handle, lpDCB *DCB) (err error) ++//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) + //sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) ++//sys PurgeComm(handle Handle, dwFlags uint32) (err error) ++//sys SetCommBreak(handle Handle) (err error) ++//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) ++//sys SetCommState(handle Handle, lpDCB *DCB) (err error) + //sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) ++//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) ++//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) + //sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) + //sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) + //sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows +@@ -703,20 +727,12 @@ func DurationSinceBoot() time.Duration { + } + + func Ftruncate(fd Handle, length int64) (err error) { +- curoffset, e := Seek(fd, 0, 1) +- if e != nil { +- return e +- } +- defer Seek(fd, curoffset, 0) +- _, e = Seek(fd, length, 0) +- if e != nil { +- return e ++ type _FILE_END_OF_FILE_INFO struct { ++ EndOfFile int64 + } +- e = SetEndOfFile(fd) +- if e != nil { +- return e +- } +- return nil ++ var info _FILE_END_OF_FILE_INFO ++ info.EndOfFile = length ++ return SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info))) + } + + func Gettimeofday(tv *Timeval) (err error) { +@@ -872,6 +888,11 @@ const socket_error = uintptr(^uint32(0)) + //sys GetACP() (acp uint32) = kernel32.GetACP + //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar + //sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx ++//sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex ++//sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry ++//sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange ++//sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange ++//sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 + + // For testing: clients can set this flag to force + // creation of IPv6 sockets to return EAFNOSUPPORT. +@@ -1356,9 +1377,11 @@ func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { + func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) + } ++ + func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) + } ++ + func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { + return syscall.EWINDOWS + } +@@ -1661,13 +1684,16 @@ func (s NTStatus) Error() string { + // do not use NTUnicodeString, and instead UTF16PtrFromString should be used for + // the more common *uint16 string type. + func NewNTUnicodeString(s string) (*NTUnicodeString, error) { +- var u NTUnicodeString +- s16, err := UTF16PtrFromString(s) ++ s16, err := UTF16FromString(s) + if err != nil { + return nil, err + } +- RtlInitUnicodeString(&u, s16) +- return &u, nil ++ n := uint16(len(s16) * 2) ++ return &NTUnicodeString{ ++ Length: n - 2, // subtract 2 bytes for the NULL terminator ++ MaximumLength: n, ++ Buffer: &s16[0], ++ }, nil + } + + // Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +@@ -1834,3 +1860,73 @@ func ResizePseudoConsole(pconsole Handle, size Coord) error { + // accept arguments that can be casted to uintptr, and Coord can't. + return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) + } ++ ++// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. ++const ( ++ CBR_110 = 110 ++ CBR_300 = 300 ++ CBR_600 = 600 ++ CBR_1200 = 1200 ++ CBR_2400 = 2400 ++ CBR_4800 = 4800 ++ CBR_9600 = 9600 ++ CBR_14400 = 14400 ++ CBR_19200 = 19200 ++ CBR_38400 = 38400 ++ CBR_57600 = 57600 ++ CBR_115200 = 115200 ++ CBR_128000 = 128000 ++ CBR_256000 = 256000 ++ ++ DTR_CONTROL_DISABLE = 0x00000000 ++ DTR_CONTROL_ENABLE = 0x00000010 ++ DTR_CONTROL_HANDSHAKE = 0x00000020 ++ ++ RTS_CONTROL_DISABLE = 0x00000000 ++ RTS_CONTROL_ENABLE = 0x00001000 ++ RTS_CONTROL_HANDSHAKE = 0x00002000 ++ RTS_CONTROL_TOGGLE = 0x00003000 ++ ++ NOPARITY = 0 ++ ODDPARITY = 1 ++ EVENPARITY = 2 ++ MARKPARITY = 3 ++ SPACEPARITY = 4 ++ ++ ONESTOPBIT = 0 ++ ONE5STOPBITS = 1 ++ TWOSTOPBITS = 2 ++) ++ ++// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. ++const ( ++ SETXOFF = 1 ++ SETXON = 2 ++ SETRTS = 3 ++ CLRRTS = 4 ++ SETDTR = 5 ++ CLRDTR = 6 ++ SETBREAK = 8 ++ CLRBREAK = 9 ++) ++ ++// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. ++const ( ++ PURGE_TXABORT = 0x0001 ++ PURGE_RXABORT = 0x0002 ++ PURGE_TXCLEAR = 0x0004 ++ PURGE_RXCLEAR = 0x0008 ++) ++ ++// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. ++const ( ++ EV_RXCHAR = 0x0001 ++ EV_RXFLAG = 0x0002 ++ EV_TXEMPTY = 0x0004 ++ EV_CTS = 0x0008 ++ EV_DSR = 0x0010 ++ EV_RLSD = 0x0020 ++ EV_BREAK = 0x0040 ++ EV_ERR = 0x0080 ++ EV_RING = 0x0100 ++) +diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go +index 359780f6ac..9d138de5fe 100644 +--- a/vendor/golang.org/x/sys/windows/types_windows.go ++++ b/vendor/golang.org/x/sys/windows/types_windows.go +@@ -176,6 +176,7 @@ const ( + WAIT_FAILED = 0xFFFFFFFF + + // Access rights for process. ++ PROCESS_ALL_ACCESS = 0xFFFF + PROCESS_CREATE_PROCESS = 0x0080 + PROCESS_CREATE_THREAD = 0x0002 + PROCESS_DUP_HANDLE = 0x0040 +@@ -1060,6 +1061,7 @@ const ( + SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 + SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 + SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 ++ SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 + + // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 + +@@ -2003,7 +2005,21 @@ const ( + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 + ) + +-const GAA_FLAG_INCLUDE_PREFIX = 0x00000010 ++// Flags for GetAdaptersAddresses, see ++// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses. ++const ( ++ GAA_FLAG_SKIP_UNICAST = 0x1 ++ GAA_FLAG_SKIP_ANYCAST = 0x2 ++ GAA_FLAG_SKIP_MULTICAST = 0x4 ++ GAA_FLAG_SKIP_DNS_SERVER = 0x8 ++ GAA_FLAG_INCLUDE_PREFIX = 0x10 ++ GAA_FLAG_SKIP_FRIENDLY_NAME = 0x20 ++ GAA_FLAG_INCLUDE_WINS_INFO = 0x40 ++ GAA_FLAG_INCLUDE_GATEWAYS = 0x80 ++ GAA_FLAG_INCLUDE_ALL_INTERFACES = 0x100 ++ GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = 0x200 ++ GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400 ++) + + const ( + IF_TYPE_OTHER = 1 +@@ -2017,6 +2033,50 @@ const ( + IF_TYPE_IEEE1394 = 144 + ) + ++// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see ++// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin ++const ( ++ IpPrefixOriginOther = 0 ++ IpPrefixOriginManual = 1 ++ IpPrefixOriginWellKnown = 2 ++ IpPrefixOriginDhcp = 3 ++ IpPrefixOriginRouterAdvertisement = 4 ++ IpPrefixOriginUnchanged = 1 << 4 ++) ++ ++// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see ++// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin ++const ( ++ NlsoOther = 0 ++ NlsoManual = 1 ++ NlsoWellKnown = 2 ++ NlsoDhcp = 3 ++ NlsoLinkLayerAddress = 4 ++ NlsoRandom = 5 ++ IpSuffixOriginOther = 0 ++ IpSuffixOriginManual = 1 ++ IpSuffixOriginWellKnown = 2 ++ IpSuffixOriginDhcp = 3 ++ IpSuffixOriginLinkLayerAddress = 4 ++ IpSuffixOriginRandom = 5 ++ IpSuffixOriginUnchanged = 1 << 4 ++) ++ ++// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see ++// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state ++const ( ++ NldsInvalid = 0 ++ NldsTentative = 1 ++ NldsDuplicate = 2 ++ NldsDeprecated = 3 ++ NldsPreferred = 4 ++ IpDadStateInvalid = 0 ++ IpDadStateTentative = 1 ++ IpDadStateDuplicate = 2 ++ IpDadStateDeprecated = 3 ++ IpDadStatePreferred = 4 ++) ++ + type SocketAddress struct { + Sockaddr *syscall.RawSockaddrAny + SockaddrLength int32 +@@ -2144,6 +2204,132 @@ const ( + IfOperStatusLowerLayerDown = 7 + ) + ++const ( ++ IF_MAX_PHYS_ADDRESS_LENGTH = 32 ++ IF_MAX_STRING_SIZE = 256 ++) ++ ++// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or ++// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex. ++const ( ++ MibIfEntryNormal = 0 ++ MibIfEntryNormalWithoutStatistics = 2 ++) ++ ++// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or ++// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type. ++const ( ++ MibParameterNotification = 0 ++ MibAddInstance = 1 ++ MibDeleteInstance = 2 ++ MibInitialNotification = 3 ++) ++ ++// MibIfRow2 stores information about a particular interface. See ++// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2. ++type MibIfRow2 struct { ++ InterfaceLuid uint64 ++ InterfaceIndex uint32 ++ InterfaceGuid GUID ++ Alias [IF_MAX_STRING_SIZE + 1]uint16 ++ Description [IF_MAX_STRING_SIZE + 1]uint16 ++ PhysicalAddressLength uint32 ++ PhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 ++ PermanentPhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 ++ Mtu uint32 ++ Type uint32 ++ TunnelType uint32 ++ MediaType uint32 ++ PhysicalMediumType uint32 ++ AccessType uint32 ++ DirectionType uint32 ++ InterfaceAndOperStatusFlags uint8 ++ OperStatus uint32 ++ AdminStatus uint32 ++ MediaConnectState uint32 ++ NetworkGuid GUID ++ ConnectionType uint32 ++ TransmitLinkSpeed uint64 ++ ReceiveLinkSpeed uint64 ++ InOctets uint64 ++ InUcastPkts uint64 ++ InNUcastPkts uint64 ++ InDiscards uint64 ++ InErrors uint64 ++ InUnknownProtos uint64 ++ InUcastOctets uint64 ++ InMulticastOctets uint64 ++ InBroadcastOctets uint64 ++ OutOctets uint64 ++ OutUcastPkts uint64 ++ OutNUcastPkts uint64 ++ OutDiscards uint64 ++ OutErrors uint64 ++ OutUcastOctets uint64 ++ OutMulticastOctets uint64 ++ OutBroadcastOctets uint64 ++ OutQLen uint64 ++} ++ ++// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See ++// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. ++type MibUnicastIpAddressRow struct { ++ Address RawSockaddrInet6 // SOCKADDR_INET union ++ InterfaceLuid uint64 ++ InterfaceIndex uint32 ++ PrefixOrigin uint32 ++ SuffixOrigin uint32 ++ ValidLifetime uint32 ++ PreferredLifetime uint32 ++ OnLinkPrefixLength uint8 ++ SkipAsSource uint8 ++ DadState uint32 ++ ScopeId uint32 ++ CreationTimeStamp Filetime ++} ++ ++const ScopeLevelCount = 16 ++ ++// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface. ++// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row. ++type MibIpInterfaceRow struct { ++ Family uint16 ++ InterfaceLuid uint64 ++ InterfaceIndex uint32 ++ MaxReassemblySize uint32 ++ InterfaceIdentifier uint64 ++ MinRouterAdvertisementInterval uint32 ++ MaxRouterAdvertisementInterval uint32 ++ AdvertisingEnabled uint8 ++ ForwardingEnabled uint8 ++ WeakHostSend uint8 ++ WeakHostReceive uint8 ++ UseAutomaticMetric uint8 ++ UseNeighborUnreachabilityDetection uint8 ++ ManagedAddressConfigurationSupported uint8 ++ OtherStatefulConfigurationSupported uint8 ++ AdvertiseDefaultRoute uint8 ++ RouterDiscoveryBehavior uint32 ++ DadTransmits uint32 ++ BaseReachableTime uint32 ++ RetransmitTime uint32 ++ PathMtuDiscoveryTimeout uint32 ++ LinkLocalAddressBehavior uint32 ++ LinkLocalAddressTimeout uint32 ++ ZoneIndices [ScopeLevelCount]uint32 ++ SitePrefixLength uint32 ++ Metric uint32 ++ NlMtu uint32 ++ Connected uint8 ++ SupportsWakeUpPatterns uint8 ++ SupportsNeighborDiscovery uint8 ++ SupportsRouterDiscovery uint8 ++ ReachableTime uint32 ++ TransmitOffload uint32 ++ ReceiveOffload uint32 ++ DisableDefaultRoutes uint8 ++} ++ + // Console related constants used for the mode parameter to SetConsoleMode. See + // https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. + +@@ -3380,3 +3566,38 @@ type BLOB struct { + Size uint32 + BlobData *byte + } ++ ++type ComStat struct { ++ Flags uint32 ++ CBInQue uint32 ++ CBOutQue uint32 ++} ++ ++type DCB struct { ++ DCBlength uint32 ++ BaudRate uint32 ++ Flags uint32 ++ wReserved uint16 ++ XonLim uint16 ++ XoffLim uint16 ++ ByteSize uint8 ++ Parity uint8 ++ StopBits uint8 ++ XonChar byte ++ XoffChar byte ++ ErrorChar byte ++ EofChar byte ++ EvtChar byte ++ wReserved1 uint16 ++} ++ ++// Keyboard Layout Flags. ++// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw ++const ( ++ KLF_ACTIVATE = 0x00000001 ++ KLF_SUBSTITUTE_OK = 0x00000002 ++ KLF_REORDER = 0x00000008 ++ KLF_REPLACELANG = 0x00000010 ++ KLF_NOTELLSHELL = 0x00000080 ++ KLF_SETFORPROCESS = 0x00000100 ++) +diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go +index e8791c82c3..01c0716c2c 100644 +--- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go ++++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go +@@ -91,6 +91,7 @@ var ( + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procEqualSid = modadvapi32.NewProc("EqualSid") + procFreeSid = modadvapi32.NewProc("FreeSid") ++ procGetAce = modadvapi32.NewProc("GetAce") + procGetLengthSid = modadvapi32.NewProc("GetLengthSid") + procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") + procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") +@@ -180,14 +181,21 @@ var ( + procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") + procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") ++ procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") ++ procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") ++ procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") ++ procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") ++ procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") + procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") + procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") ++ procClearCommBreak = modkernel32.NewProc("ClearCommBreak") ++ procClearCommError = modkernel32.NewProc("ClearCommError") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") +@@ -212,7 +220,9 @@ var ( + procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") + procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") + procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") ++ procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") ++ procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") + procExitProcess = modkernel32.NewProc("ExitProcess") + procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") + procFindClose = modkernel32.NewProc("FindClose") +@@ -236,11 +246,15 @@ var ( + procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") + procGetACP = modkernel32.NewProc("GetACP") + procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") ++ procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") ++ procGetCommState = modkernel32.NewProc("GetCommState") + procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") ++ procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") ++ procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") + procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") + procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") + procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") +@@ -266,8 +280,10 @@ var ( + procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") + procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") + procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") ++ procGetNamedPipeClientProcessId = modkernel32.NewProc("GetNamedPipeClientProcessId") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") ++ procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") + procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") + procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") + procGetProcAddress = modkernel32.NewProc("GetProcAddress") +@@ -322,6 +338,7 @@ var ( + procProcess32NextW = modkernel32.NewProc("Process32NextW") + procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") + procPulseEvent = modkernel32.NewProc("PulseEvent") ++ procPurgeComm = modkernel32.NewProc("PurgeComm") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") + procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") +@@ -335,14 +352,18 @@ var ( + procResetEvent = modkernel32.NewProc("ResetEvent") + procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") + procResumeThread = modkernel32.NewProc("ResumeThread") ++ procSetCommBreak = modkernel32.NewProc("SetCommBreak") ++ procSetCommMask = modkernel32.NewProc("SetCommMask") ++ procSetCommState = modkernel32.NewProc("SetCommState") + procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") ++ procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") + procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") ++ procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") + procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") + procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") + procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") + procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") +- procSetFileValidData = modkernel32.NewProc("SetFileValidData") + procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") + procSetErrorMode = modkernel32.NewProc("SetErrorMode") + procSetEvent = modkernel32.NewProc("SetEvent") +@@ -351,6 +372,7 @@ var ( + procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") + procSetFilePointer = modkernel32.NewProc("SetFilePointer") + procSetFileTime = modkernel32.NewProc("SetFileTime") ++ procSetFileValidData = modkernel32.NewProc("SetFileValidData") + procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") + procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") + procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") +@@ -361,6 +383,7 @@ var ( + procSetStdHandle = modkernel32.NewProc("SetStdHandle") + procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") + procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") ++ procSetupComm = modkernel32.NewProc("SetupComm") + procSizeofResource = modkernel32.NewProc("SizeofResource") + procSleepEx = modkernel32.NewProc("SleepEx") + procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") +@@ -379,6 +402,7 @@ var ( + procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") ++ procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") + procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") +@@ -389,6 +413,7 @@ var ( + procTransmitFile = modmswsock.NewProc("TransmitFile") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") ++ procNetUserEnum = modnetapi32.NewProc("NetUserEnum") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") +@@ -464,12 +489,16 @@ var ( + procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") + procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") + procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") ++ procGetKeyboardLayout = moduser32.NewProc("GetKeyboardLayout") + procGetShellWindow = moduser32.NewProc("GetShellWindow") + procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procIsWindow = moduser32.NewProc("IsWindow") + procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") + procIsWindowVisible = moduser32.NewProc("IsWindowVisible") ++ procLoadKeyboardLayoutW = moduser32.NewProc("LoadKeyboardLayoutW") + procMessageBoxW = moduser32.NewProc("MessageBoxW") ++ procToUnicodeEx = moduser32.NewProc("ToUnicodeEx") ++ procUnloadKeyboardLayout = moduser32.NewProc("UnloadKeyboardLayout") + procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") + procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") +@@ -775,6 +804,14 @@ func FreeSid(sid *SID) (err error) { + return + } + ++func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { ++ r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) +@@ -1576,6 +1613,14 @@ func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si + return + } + ++func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { ++ r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) ++ if r0 != 0 { ++ errcode = syscall.Errno(r0) ++ } ++ return ++} ++ + func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + if r0 != 0 { +@@ -1608,6 +1653,46 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + return + } + ++func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { ++ r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) ++ if r0 != 0 { ++ errcode = syscall.Errno(r0) ++ } ++ return ++} ++ ++func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { ++ r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) ++ if r0 != 0 { ++ errcode = syscall.Errno(r0) ++ } ++ return ++} ++ ++func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { ++ var _p0 uint32 ++ if initialNotification { ++ _p0 = 1 ++ } ++ r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) ++ if r0 != 0 { ++ errcode = syscall.Errno(r0) ++ } ++ return ++} ++ ++func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { ++ var _p0 uint32 ++ if initialNotification { ++ _p0 = 1 ++ } ++ r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) ++ if r0 != 0 { ++ errcode = syscall.Errno(r0) ++ } ++ return ++} ++ + func AddDllDirectory(path *uint16) (cookie uintptr, err error) { + r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + cookie = uintptr(r0) +@@ -1641,6 +1726,22 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { + return + } + ++func ClearCommBreak(handle Handle) (err error) { ++ r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { ++ r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { +@@ -1845,6 +1946,14 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff + return + } + ++func DisconnectNamedPipe(pipe Handle) (err error) { ++ r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { + var _p0 uint32 + if bInheritHandle { +@@ -1857,6 +1966,14 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP + return + } + ++func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + return +@@ -2058,6 +2175,22 @@ func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { + return + } + ++func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++func GetCommState(handle Handle, lpDCB *DCB) (err error) { ++ r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { +@@ -2088,6 +2221,15 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { + return + } + ++func GetConsoleCP() (cp uint32, err error) { ++ r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) ++ cp = uint32(r0) ++ if cp == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + if r1 == 0 { +@@ -2096,6 +2238,15 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { + return + } + ++func GetConsoleOutputCP() (cp uint32, err error) { ++ r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) ++ cp = uint32(r0) ++ if cp == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { +@@ -2297,6 +2448,14 @@ func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err er + return + } + ++func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { +@@ -2313,6 +2472,14 @@ func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint3 + return + } + ++func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { + var _p0 uint32 + if wait { +@@ -2810,6 +2977,14 @@ func PulseEvent(event Handle) (err error) { + return + } + ++func PurgeComm(handle Handle, dwFlags uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + n = uint32(r0) +@@ -2924,6 +3099,30 @@ func ResumeThread(thread Handle) (ret uint32, err error) { + return + } + ++func SetCommBreak(handle Handle) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++func SetCommState(handle Handle, lpDCB *DCB) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { +@@ -2932,6 +3131,14 @@ func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + return + } + ++func SetConsoleCP(cp uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func setConsoleCursorPosition(console Handle, position uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + if r1 == 0 { +@@ -2948,6 +3155,14 @@ func SetConsoleMode(console Handle, mode uint32) (err error) { + return + } + ++func SetConsoleOutputCP(cp uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { +@@ -2989,14 +3204,6 @@ func SetEndOfFile(handle Handle) (err error) { + return + } + +-func SetFileValidData(handle Handle, validDataLength int64) (err error) { +- r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) +- if r1 == 0 { +- err = errnoErr(e1) +- } +- return +-} +- + func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + if r1 == 0 { +@@ -3060,6 +3267,14 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim + return + } + ++func SetFileValidData(handle Handle, validDataLength int64) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { +@@ -3145,6 +3360,14 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro + return + } + ++func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { ++ r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { + r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + size = uint32(r0) +@@ -3291,6 +3514,14 @@ func WTSGetActiveConsoleSessionId() (sessionID uint32) { + return + } + ++func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { ++ r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + var _p0 uint32 + if waitAll { +@@ -3378,6 +3609,14 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete + return + } + ++func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { ++ r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) ++ if r0 != 0 { ++ neterr = syscall.Errno(r0) ++ } ++ return ++} ++ + func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { +@@ -3956,6 +4195,12 @@ func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { + return + } + ++func GetKeyboardLayout(tid uint32) (hkl Handle) { ++ r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) ++ hkl = Handle(r0) ++ return ++} ++ + func GetShellWindow() (shellWindow HWND) { + r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + shellWindow = HWND(r0) +@@ -3989,6 +4234,15 @@ func IsWindowVisible(hwnd HWND) (isVisible bool) { + return + } + ++func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { ++ r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) ++ hkl = Handle(r0) ++ if hkl == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { + r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + ret = int32(r0) +@@ -3998,6 +4252,20 @@ func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret i + return + } + ++func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { ++ r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) ++ ret = int32(r0) ++ return ++} ++ ++func UnloadKeyboardLayout(hkl Handle) (err error) { ++ r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) ++ if r1 == 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ + func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { + var _p0 uint32 + if inheritExisting { +diff --git a/vendor/golang.org/x/term/LICENSE b/vendor/golang.org/x/term/LICENSE +index 6a66aea5ea..2a7cf70da6 100644 +--- a/vendor/golang.org/x/term/LICENSE ++++ b/vendor/golang.org/x/term/LICENSE +@@ -1,4 +1,4 @@ +-Copyright (c) 2009 The Go Authors. All rights reserved. ++Copyright 2009 The Go Authors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are +@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +- * Neither the name of Google Inc. nor the names of its ++ * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +diff --git a/vendor/golang.org/x/term/README.md b/vendor/golang.org/x/term/README.md +index d03d0aefef..05ff623f94 100644 +--- a/vendor/golang.org/x/term/README.md ++++ b/vendor/golang.org/x/term/README.md +@@ -4,16 +4,13 @@ + + This repository provides Go terminal and console support packages. + +-## Download/Install +- +-The easiest way to install is to run `go get -u golang.org/x/term`. You can +-also manually git clone the repository to `$GOPATH/src/golang.org/x/term`. +- + ## Report Issues / Send Patches + + This repository uses Gerrit for code changes. To learn how to submit changes to +-this repository, see https://golang.org/doc/contribute.html. ++this repository, see https://go.dev/doc/contribute. ++ ++The git repository is https://go.googlesource.com/term. + + The main issue tracker for the term repository is located at +-https://github.com/golang/go/issues. Prefix your issue with "x/term:" in the ++https://go.dev/issues. Prefix your issue with "x/term:" in the + subject line, so it is easy to find. +diff --git a/vendor/golang.org/x/term/term_windows.go b/vendor/golang.org/x/term/term_windows.go +index 465f560604..df6bf948e1 100644 +--- a/vendor/golang.org/x/term/term_windows.go ++++ b/vendor/golang.org/x/term/term_windows.go +@@ -26,6 +26,7 @@ func makeRaw(fd int) (*State, error) { + return nil, err + } + raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) ++ raw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT + if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil { + return nil, err + } +diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE +index 6a66aea5ea..2a7cf70da6 100644 +--- a/vendor/golang.org/x/text/LICENSE ++++ b/vendor/golang.org/x/text/LICENSE +@@ -1,4 +1,4 @@ +-Copyright (c) 2009 The Go Authors. All rights reserved. ++Copyright 2009 The Go Authors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are +@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +- * Neither the name of Google Inc. nor the names of its ++ * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +diff --git a/vendor/golang.org/x/tools/go/ast/inspector/typeof.go b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go +index 703c813954..2a872f89d4 100644 +--- a/vendor/golang.org/x/tools/go/ast/inspector/typeof.go ++++ b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go +@@ -12,8 +12,6 @@ package inspector + import ( + "go/ast" + "math" +- +- "golang.org/x/tools/internal/typeparams" + ) + + const ( +@@ -171,7 +169,7 @@ func typeOf(n ast.Node) uint64 { + return 1 << nIncDecStmt + case *ast.IndexExpr: + return 1 << nIndexExpr +- case *typeparams.IndexListExpr: ++ case *ast.IndexListExpr: + return 1 << nIndexListExpr + case *ast.InterfaceType: + return 1 << nInterfaceType +diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +index 03543bd4bb..137cc8df1d 100644 +--- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go ++++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +@@ -47,7 +47,7 @@ import ( + func Find(importPath, srcDir string) (filename, path string) { + cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) + cmd.Dir = srcDir +- out, err := cmd.CombinedOutput() ++ out, err := cmd.Output() + if err != nil { + return "", "" + } +diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go +index 0454cdd78e..333676b7cf 100644 +--- a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go ++++ b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go +@@ -13,16 +13,17 @@ import ( + "golang.org/x/tools/internal/gocommand" + ) + +-var debug = false +- + func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { + inv.Verb = "list" + inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} + stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) + var goarch, compiler string + if rawErr != nil { +- if rawErrMsg := rawErr.Error(); strings.Contains(rawErrMsg, "cannot find main module") || strings.Contains(rawErrMsg, "go.mod file not found") { +- // User's running outside of a module. All bets are off. Get GOARCH and guess compiler is gc. ++ rawErrMsg := rawErr.Error() ++ if strings.Contains(rawErrMsg, "cannot find main module") || ++ strings.Contains(rawErrMsg, "go.mod file not found") { ++ // User's running outside of a module. ++ // All bets are off. Get GOARCH and guess compiler is gc. + // TODO(matloob): Is this a problem in practice? + inv.Verb = "env" + inv.Args = []string{"GOARCH"} +@@ -32,8 +33,12 @@ func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdR + } + goarch = strings.TrimSpace(envout.String()) + compiler = "gc" +- } else { ++ } else if friendlyErr != nil { + return "", "", friendlyErr ++ } else { ++ // This should be unreachable, but be defensive ++ // in case RunRaw's error results are inconsistent. ++ return "", "", rawErr + } + } else { + fields := strings.Fields(stdout.String()) +diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go +index a7a8f73e3d..a8d7b06ac0 100644 +--- a/vendor/golang.org/x/tools/go/packages/doc.go ++++ b/vendor/golang.org/x/tools/go/packages/doc.go +@@ -5,12 +5,20 @@ + /* + Package packages loads Go packages for inspection and analysis. + +-The Load function takes as input a list of patterns and return a list of Package +-structs describing individual packages matched by those patterns. +-The LoadMode controls the amount of detail in the loaded packages. +- +-Load passes most patterns directly to the underlying build tool, +-but all patterns with the prefix "query=", where query is a ++The [Load] function takes as input a list of patterns and returns a ++list of [Package] values describing individual packages matched by those ++patterns. ++A [Config] specifies configuration options, the most important of which is ++the [LoadMode], which controls the amount of detail in the loaded packages. ++ ++Load passes most patterns directly to the underlying build tool. ++The default build tool is the go command. ++Its supported patterns are described at ++https://pkg.go.dev/cmd/go#hdr-Package_lists_and_patterns. ++Other build systems may be supported by providing a "driver"; ++see [The driver protocol]. ++ ++All patterns with the prefix "query=", where query is a + non-empty string of letters from [a-z], are reserved and may be + interpreted as query operators. + +@@ -64,9 +72,31 @@ reported about the loaded packages. See the documentation for type LoadMode + for details. + + Most tools should pass their command-line arguments (after any flags) +-uninterpreted to the loader, so that the loader can interpret them ++uninterpreted to [Load], so that it can interpret them + according to the conventions of the underlying build system. ++ + See the Example function for typical usage. ++ ++# The driver protocol ++ ++[Load] may be used to load Go packages even in Go projects that use ++alternative build systems, by installing an appropriate "driver" ++program for the build system and specifying its location in the ++GOPACKAGESDRIVER environment variable. ++For example, ++https://github.com/bazelbuild/rules_go/wiki/Editor-and-tool-integration ++explains how to use the driver for Bazel. ++ ++The driver program is responsible for interpreting patterns in its ++preferred notation and reporting information about the packages that ++those patterns identify. Drivers must also support the special "file=" ++and "pattern=" patterns described above. ++ ++The patterns are provided as positional command-line arguments. A ++JSON-encoded [DriverRequest] message providing additional information ++is written to the driver's standard input. The driver must write a ++JSON-encoded [DriverResponse] message to its standard output. (This ++message differs from the JSON schema produced by 'go list'.) + */ + package packages // import "golang.org/x/tools/go/packages" + +diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go +index 7242a0a7d2..4335c1eb14 100644 +--- a/vendor/golang.org/x/tools/go/packages/external.go ++++ b/vendor/golang.org/x/tools/go/packages/external.go +@@ -2,46 +2,85 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// This file enables an external tool to intercept package requests. +-// If the tool is present then its results are used in preference to +-// the go list command. +- + package packages + ++// This file defines the protocol that enables an external "driver" ++// tool to supply package metadata in place of 'go list'. ++ + import ( + "bytes" + "encoding/json" + "fmt" +- exec "golang.org/x/sys/execabs" + "os" ++ "os/exec" + "strings" + ) + +-// The Driver Protocol ++// DriverRequest defines the schema of a request for package metadata ++// from an external driver program. The JSON-encoded DriverRequest ++// message is provided to the driver program's standard input. The ++// query patterns are provided as command-line arguments. + // +-// The driver, given the inputs to a call to Load, returns metadata about the packages specified. +-// This allows for different build systems to support go/packages by telling go/packages how the +-// packages' source is organized. +-// The driver is a binary, either specified by the GOPACKAGESDRIVER environment variable or in +-// the path as gopackagesdriver. It's given the inputs to load in its argv. See the package +-// documentation in doc.go for the full description of the patterns that need to be supported. +-// A driver receives as a JSON-serialized driverRequest struct in standard input and will +-// produce a JSON-serialized driverResponse (see definition in packages.go) in its standard output. +- +-// driverRequest is used to provide the portion of Load's Config that is needed by a driver. +-type driverRequest struct { ++// See the package documentation for an overview. ++type DriverRequest struct { + Mode LoadMode `json:"mode"` ++ + // Env specifies the environment the underlying build system should be run in. + Env []string `json:"env"` ++ + // BuildFlags are flags that should be passed to the underlying build system. + BuildFlags []string `json:"build_flags"` ++ + // Tests specifies whether the patterns should also return test packages. + Tests bool `json:"tests"` ++ + // Overlay maps file paths (relative to the driver's working directory) to the byte contents + // of overlay files. + Overlay map[string][]byte `json:"overlay"` + } + ++// DriverResponse defines the schema of a response from an external ++// driver program, providing the results of a query for package ++// metadata. The driver program must write a JSON-encoded ++// DriverResponse message to its standard output. ++// ++// See the package documentation for an overview. ++type DriverResponse struct { ++ // NotHandled is returned if the request can't be handled by the current ++ // driver. If an external driver returns a response with NotHandled, the ++ // rest of the DriverResponse is ignored, and go/packages will fallback ++ // to the next driver. If go/packages is extended in the future to support ++ // lists of multiple drivers, go/packages will fall back to the next driver. ++ NotHandled bool ++ ++ // Compiler and Arch are the arguments pass of types.SizesFor ++ // to get a types.Sizes to use when type checking. ++ Compiler string ++ Arch string ++ ++ // Roots is the set of package IDs that make up the root packages. ++ // We have to encode this separately because when we encode a single package ++ // we cannot know if it is one of the roots as that requires knowledge of the ++ // graph it is part of. ++ Roots []string `json:",omitempty"` ++ ++ // Packages is the full set of packages in the graph. ++ // The packages are not connected into a graph. ++ // The Imports if populated will be stubs that only have their ID set. ++ // Imports will be connected and then type and syntax information added in a ++ // later pass (see refine). ++ Packages []*Package ++ ++ // GoVersion is the minor version number used by the driver ++ // (e.g. the go command on the PATH) when selecting .go files. ++ // Zero means unknown. ++ GoVersion int ++} ++ ++// driver is the type for functions that query the build system for the ++// packages named by the patterns. ++type driver func(cfg *Config, patterns ...string) (*DriverResponse, error) ++ + // findExternalDriver returns the file path of a tool that supplies + // the build system package structure, or "" if not found." + // If GOPACKAGESDRIVER is set in the environment findExternalTool returns its +@@ -64,8 +103,8 @@ func findExternalDriver(cfg *Config) driver { + return nil + } + } +- return func(cfg *Config, words ...string) (*driverResponse, error) { +- req, err := json.Marshal(driverRequest{ ++ return func(cfg *Config, words ...string) (*DriverResponse, error) { ++ req, err := json.Marshal(DriverRequest{ + Mode: cfg.Mode, + Env: cfg.Env, + BuildFlags: cfg.BuildFlags, +@@ -92,7 +131,7 @@ func findExternalDriver(cfg *Config) driver { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) + } + +- var response driverResponse ++ var response DriverResponse + if err := json.Unmarshal(buf.Bytes(), &response); err != nil { + return nil, err + } +diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go +index 1f1eade0ac..22305d9c90 100644 +--- a/vendor/golang.org/x/tools/go/packages/golist.go ++++ b/vendor/golang.org/x/tools/go/packages/golist.go +@@ -11,6 +11,7 @@ import ( + "fmt" + "log" + "os" ++ "os/exec" + "path" + "path/filepath" + "reflect" +@@ -20,7 +21,6 @@ import ( + "sync" + "unicode" + +- exec "golang.org/x/sys/execabs" + "golang.org/x/tools/go/internal/packagesdriver" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" +@@ -35,23 +35,23 @@ type goTooOldError struct { + error + } + +-// responseDeduper wraps a driverResponse, deduplicating its contents. ++// responseDeduper wraps a DriverResponse, deduplicating its contents. + type responseDeduper struct { + seenRoots map[string]bool + seenPackages map[string]*Package +- dr *driverResponse ++ dr *DriverResponse + } + + func newDeduper() *responseDeduper { + return &responseDeduper{ +- dr: &driverResponse{}, ++ dr: &DriverResponse{}, + seenRoots: map[string]bool{}, + seenPackages: map[string]*Package{}, + } + } + +-// addAll fills in r with a driverResponse. +-func (r *responseDeduper) addAll(dr *driverResponse) { ++// addAll fills in r with a DriverResponse. ++func (r *responseDeduper) addAll(dr *DriverResponse) { + for _, pkg := range dr.Packages { + r.addPackage(pkg) + } +@@ -128,7 +128,7 @@ func (state *golistState) mustGetEnv() map[string]string { + // goListDriver uses the go list command to interpret the patterns and produce + // the build system package structure. + // See driver for more details. +-func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { ++func goListDriver(cfg *Config, patterns ...string) (_ *DriverResponse, err error) { + // Make sure that any asynchronous go commands are killed when we return. + parentCtx := cfg.Context + if parentCtx == nil { +@@ -146,16 +146,18 @@ func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { + } + + // Fill in response.Sizes asynchronously if necessary. +- var sizeserr error +- var sizeswg sync.WaitGroup + if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 { +- sizeswg.Add(1) ++ errCh := make(chan error) + go func() { + compiler, arch, err := packagesdriver.GetSizesForArgsGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) +- sizeserr = err + response.dr.Compiler = compiler + response.dr.Arch = arch +- sizeswg.Done() ++ errCh <- err ++ }() ++ defer func() { ++ if sizesErr := <-errCh; sizesErr != nil { ++ err = sizesErr ++ } + }() + } + +@@ -208,87 +210,10 @@ extractQueries: + } + } + +- // Only use go/packages' overlay processing if we're using a Go version +- // below 1.16. Otherwise, go list handles it. +- if goVersion, err := state.getGoVersion(); err == nil && goVersion < 16 { +- modifiedPkgs, needPkgs, err := state.processGolistOverlay(response) +- if err != nil { +- return nil, err +- } +- +- var containsCandidates []string +- if len(containFiles) > 0 { +- containsCandidates = append(containsCandidates, modifiedPkgs...) +- containsCandidates = append(containsCandidates, needPkgs...) +- } +- if err := state.addNeededOverlayPackages(response, needPkgs); err != nil { +- return nil, err +- } +- // Check candidate packages for containFiles. +- if len(containFiles) > 0 { +- for _, id := range containsCandidates { +- pkg, ok := response.seenPackages[id] +- if !ok { +- response.addPackage(&Package{ +- ID: id, +- Errors: []Error{{ +- Kind: ListError, +- Msg: fmt.Sprintf("package %s expected but not seen", id), +- }}, +- }) +- continue +- } +- for _, f := range containFiles { +- for _, g := range pkg.GoFiles { +- if sameFile(f, g) { +- response.addRoot(id) +- } +- } +- } +- } +- } +- // Add root for any package that matches a pattern. This applies only to +- // packages that are modified by overlays, since they are not added as +- // roots automatically. +- for _, pattern := range restPatterns { +- match := matchPattern(pattern) +- for _, pkgID := range modifiedPkgs { +- pkg, ok := response.seenPackages[pkgID] +- if !ok { +- continue +- } +- if match(pkg.PkgPath) { +- response.addRoot(pkg.ID) +- } +- } +- } +- } +- +- sizeswg.Wait() +- if sizeserr != nil { +- return nil, sizeserr +- } ++ // (We may yet return an error due to defer.) + return response.dr, nil + } + +-func (state *golistState) addNeededOverlayPackages(response *responseDeduper, pkgs []string) error { +- if len(pkgs) == 0 { +- return nil +- } +- dr, err := state.createDriverResponse(pkgs...) +- if err != nil { +- return err +- } +- for _, pkg := range dr.Packages { +- response.addPackage(pkg) +- } +- _, needPkgs, err := state.processGolistOverlay(response) +- if err != nil { +- return err +- } +- return state.addNeededOverlayPackages(response, needPkgs) +-} +- + func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { + for _, query := range queries { + // TODO(matloob): Do only one query per directory. +@@ -340,7 +265,7 @@ func (state *golistState) runContainsQueries(response *responseDeduper, queries + + // adhocPackage attempts to load or construct an ad-hoc package for a given + // query, if the original call to the driver produced inadequate results. +-func (state *golistState) adhocPackage(pattern, query string) (*driverResponse, error) { ++func (state *golistState) adhocPackage(pattern, query string) (*DriverResponse, error) { + response, err := state.createDriverResponse(query) + if err != nil { + return nil, err +@@ -431,7 +356,7 @@ func otherFiles(p *jsonPackage) [][]string { + + // createDriverResponse uses the "go list" command to expand the pattern + // words and return a response for the specified packages. +-func (state *golistState) createDriverResponse(words ...string) (*driverResponse, error) { ++func (state *golistState) createDriverResponse(words ...string) (*DriverResponse, error) { + // go list uses the following identifiers in ImportPath and Imports: + // + // "p" -- importable package or main (command) +@@ -458,7 +383,7 @@ func (state *golistState) createDriverResponse(words ...string) (*driverResponse + pkgs := make(map[string]*Package) + additionalErrors := make(map[string][]Error) + // Decode the JSON and convert it to Package form. +- response := &driverResponse{ ++ response := &DriverResponse{ + GoVersion: goVersion, + } + for dec := json.NewDecoder(buf); dec.More(); { +diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go +index 9576b472f9..d823c474ad 100644 +--- a/vendor/golang.org/x/tools/go/packages/golist_overlay.go ++++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go +@@ -6,314 +6,11 @@ package packages + + import ( + "encoding/json" +- "fmt" +- "go/parser" +- "go/token" +- "os" + "path/filepath" +- "regexp" +- "sort" +- "strconv" +- "strings" + + "golang.org/x/tools/internal/gocommand" + ) + +-// processGolistOverlay provides rudimentary support for adding +-// files that don't exist on disk to an overlay. The results can be +-// sometimes incorrect. +-// TODO(matloob): Handle unsupported cases, including the following: +-// - determining the correct package to add given a new import path +-func (state *golistState) processGolistOverlay(response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) { +- havePkgs := make(map[string]string) // importPath -> non-test package ID +- needPkgsSet := make(map[string]bool) +- modifiedPkgsSet := make(map[string]bool) +- +- pkgOfDir := make(map[string][]*Package) +- for _, pkg := range response.dr.Packages { +- // This is an approximation of import path to id. This can be +- // wrong for tests, vendored packages, and a number of other cases. +- havePkgs[pkg.PkgPath] = pkg.ID +- dir, err := commonDir(pkg.GoFiles) +- if err != nil { +- return nil, nil, err +- } +- if dir != "" { +- pkgOfDir[dir] = append(pkgOfDir[dir], pkg) +- } +- } +- +- // If no new imports are added, it is safe to avoid loading any needPkgs. +- // Otherwise, it's hard to tell which package is actually being loaded +- // (due to vendoring) and whether any modified package will show up +- // in the transitive set of dependencies (because new imports are added, +- // potentially modifying the transitive set of dependencies). +- var overlayAddsImports bool +- +- // If both a package and its test package are created by the overlay, we +- // need the real package first. Process all non-test files before test +- // files, and make the whole process deterministic while we're at it. +- var overlayFiles []string +- for opath := range state.cfg.Overlay { +- overlayFiles = append(overlayFiles, opath) +- } +- sort.Slice(overlayFiles, func(i, j int) bool { +- iTest := strings.HasSuffix(overlayFiles[i], "_test.go") +- jTest := strings.HasSuffix(overlayFiles[j], "_test.go") +- if iTest != jTest { +- return !iTest // non-tests are before tests. +- } +- return overlayFiles[i] < overlayFiles[j] +- }) +- for _, opath := range overlayFiles { +- contents := state.cfg.Overlay[opath] +- base := filepath.Base(opath) +- dir := filepath.Dir(opath) +- var pkg *Package // if opath belongs to both a package and its test variant, this will be the test variant +- var testVariantOf *Package // if opath is a test file, this is the package it is testing +- var fileExists bool +- isTestFile := strings.HasSuffix(opath, "_test.go") +- pkgName, ok := extractPackageName(opath, contents) +- if !ok { +- // Don't bother adding a file that doesn't even have a parsable package statement +- // to the overlay. +- continue +- } +- // If all the overlay files belong to a different package, change the +- // package name to that package. +- maybeFixPackageName(pkgName, isTestFile, pkgOfDir[dir]) +- nextPackage: +- for _, p := range response.dr.Packages { +- if pkgName != p.Name && p.ID != "command-line-arguments" { +- continue +- } +- for _, f := range p.GoFiles { +- if !sameFile(filepath.Dir(f), dir) { +- continue +- } +- // Make sure to capture information on the package's test variant, if needed. +- if isTestFile && !hasTestFiles(p) { +- // TODO(matloob): Are there packages other than the 'production' variant +- // of a package that this can match? This shouldn't match the test main package +- // because the file is generated in another directory. +- testVariantOf = p +- continue nextPackage +- } else if !isTestFile && hasTestFiles(p) { +- // We're examining a test variant, but the overlaid file is +- // a non-test file. Because the overlay implementation +- // (currently) only adds a file to one package, skip this +- // package, so that we can add the file to the production +- // variant of the package. (https://golang.org/issue/36857 +- // tracks handling overlays on both the production and test +- // variant of a package). +- continue nextPackage +- } +- if pkg != nil && p != pkg && pkg.PkgPath == p.PkgPath { +- // We have already seen the production version of the +- // for which p is a test variant. +- if hasTestFiles(p) { +- testVariantOf = pkg +- } +- } +- pkg = p +- if filepath.Base(f) == base { +- fileExists = true +- } +- } +- } +- // The overlay could have included an entirely new package or an +- // ad-hoc package. An ad-hoc package is one that we have manually +- // constructed from inadequate `go list` results for a file= query. +- // It will have the ID command-line-arguments. +- if pkg == nil || pkg.ID == "command-line-arguments" { +- // Try to find the module or gopath dir the file is contained in. +- // Then for modules, add the module opath to the beginning. +- pkgPath, ok, err := state.getPkgPath(dir) +- if err != nil { +- return nil, nil, err +- } +- if !ok { +- break +- } +- var forTest string // only set for x tests +- isXTest := strings.HasSuffix(pkgName, "_test") +- if isXTest { +- forTest = pkgPath +- pkgPath += "_test" +- } +- id := pkgPath +- if isTestFile { +- if isXTest { +- id = fmt.Sprintf("%s [%s.test]", pkgPath, forTest) +- } else { +- id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath) +- } +- } +- if pkg != nil { +- // TODO(rstambler): We should change the package's path and ID +- // here. The only issue is that this messes with the roots. +- } else { +- // Try to reclaim a package with the same ID, if it exists in the response. +- for _, p := range response.dr.Packages { +- if reclaimPackage(p, id, opath, contents) { +- pkg = p +- break +- } +- } +- // Otherwise, create a new package. +- if pkg == nil { +- pkg = &Package{ +- PkgPath: pkgPath, +- ID: id, +- Name: pkgName, +- Imports: make(map[string]*Package), +- } +- response.addPackage(pkg) +- havePkgs[pkg.PkgPath] = id +- // Add the production package's sources for a test variant. +- if isTestFile && !isXTest && testVariantOf != nil { +- pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...) +- pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...) +- // Add the package under test and its imports to the test variant. +- pkg.forTest = testVariantOf.PkgPath +- for k, v := range testVariantOf.Imports { +- pkg.Imports[k] = &Package{ID: v.ID} +- } +- } +- if isXTest { +- pkg.forTest = forTest +- } +- } +- } +- } +- if !fileExists { +- pkg.GoFiles = append(pkg.GoFiles, opath) +- // TODO(matloob): Adding the file to CompiledGoFiles can exhibit the wrong behavior +- // if the file will be ignored due to its build tags. +- pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, opath) +- modifiedPkgsSet[pkg.ID] = true +- } +- imports, err := extractImports(opath, contents) +- if err != nil { +- // Let the parser or type checker report errors later. +- continue +- } +- for _, imp := range imports { +- // TODO(rstambler): If the package is an x test and the import has +- // a test variant, make sure to replace it. +- if _, found := pkg.Imports[imp]; found { +- continue +- } +- overlayAddsImports = true +- id, ok := havePkgs[imp] +- if !ok { +- var err error +- id, err = state.resolveImport(dir, imp) +- if err != nil { +- return nil, nil, err +- } +- } +- pkg.Imports[imp] = &Package{ID: id} +- // Add dependencies to the non-test variant version of this package as well. +- if testVariantOf != nil { +- testVariantOf.Imports[imp] = &Package{ID: id} +- } +- } +- } +- +- // toPkgPath guesses the package path given the id. +- toPkgPath := func(sourceDir, id string) (string, error) { +- if i := strings.IndexByte(id, ' '); i >= 0 { +- return state.resolveImport(sourceDir, id[:i]) +- } +- return state.resolveImport(sourceDir, id) +- } +- +- // Now that new packages have been created, do another pass to determine +- // the new set of missing packages. +- for _, pkg := range response.dr.Packages { +- for _, imp := range pkg.Imports { +- if len(pkg.GoFiles) == 0 { +- return nil, nil, fmt.Errorf("cannot resolve imports for package %q with no Go files", pkg.PkgPath) +- } +- pkgPath, err := toPkgPath(filepath.Dir(pkg.GoFiles[0]), imp.ID) +- if err != nil { +- return nil, nil, err +- } +- if _, ok := havePkgs[pkgPath]; !ok { +- needPkgsSet[pkgPath] = true +- } +- } +- } +- +- if overlayAddsImports { +- needPkgs = make([]string, 0, len(needPkgsSet)) +- for pkg := range needPkgsSet { +- needPkgs = append(needPkgs, pkg) +- } +- } +- modifiedPkgs = make([]string, 0, len(modifiedPkgsSet)) +- for pkg := range modifiedPkgsSet { +- modifiedPkgs = append(modifiedPkgs, pkg) +- } +- return modifiedPkgs, needPkgs, err +-} +- +-// resolveImport finds the ID of a package given its import path. +-// In particular, it will find the right vendored copy when in GOPATH mode. +-func (state *golistState) resolveImport(sourceDir, importPath string) (string, error) { +- env, err := state.getEnv() +- if err != nil { +- return "", err +- } +- if env["GOMOD"] != "" { +- return importPath, nil +- } +- +- searchDir := sourceDir +- for { +- vendorDir := filepath.Join(searchDir, "vendor") +- exists, ok := state.vendorDirs[vendorDir] +- if !ok { +- info, err := os.Stat(vendorDir) +- exists = err == nil && info.IsDir() +- state.vendorDirs[vendorDir] = exists +- } +- +- if exists { +- vendoredPath := filepath.Join(vendorDir, importPath) +- if info, err := os.Stat(vendoredPath); err == nil && info.IsDir() { +- // We should probably check for .go files here, but shame on anyone who fools us. +- path, ok, err := state.getPkgPath(vendoredPath) +- if err != nil { +- return "", err +- } +- if ok { +- return path, nil +- } +- } +- } +- +- // We know we've hit the top of the filesystem when we Dir / and get /, +- // or C:\ and get C:\, etc. +- next := filepath.Dir(searchDir) +- if next == searchDir { +- break +- } +- searchDir = next +- } +- return importPath, nil +-} +- +-func hasTestFiles(p *Package) bool { +- for _, f := range p.GoFiles { +- if strings.HasSuffix(f, "_test.go") { +- return true +- } +- } +- return false +-} +- + // determineRootDirs returns a mapping from absolute directories that could + // contain code to their corresponding import path prefixes. + func (state *golistState) determineRootDirs() (map[string]string, error) { +@@ -384,192 +81,3 @@ func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { + } + return m, nil + } +- +-func extractImports(filename string, contents []byte) ([]string, error) { +- f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset? +- if err != nil { +- return nil, err +- } +- var res []string +- for _, imp := range f.Imports { +- quotedPath := imp.Path.Value +- path, err := strconv.Unquote(quotedPath) +- if err != nil { +- return nil, err +- } +- res = append(res, path) +- } +- return res, nil +-} +- +-// reclaimPackage attempts to reuse a package that failed to load in an overlay. +-// +-// If the package has errors and has no Name, GoFiles, or Imports, +-// then it's possible that it doesn't yet exist on disk. +-func reclaimPackage(pkg *Package, id string, filename string, contents []byte) bool { +- // TODO(rstambler): Check the message of the actual error? +- // It differs between $GOPATH and module mode. +- if pkg.ID != id { +- return false +- } +- if len(pkg.Errors) != 1 { +- return false +- } +- if pkg.Name != "" || pkg.ExportFile != "" { +- return false +- } +- if len(pkg.GoFiles) > 0 || len(pkg.CompiledGoFiles) > 0 || len(pkg.OtherFiles) > 0 { +- return false +- } +- if len(pkg.Imports) > 0 { +- return false +- } +- pkgName, ok := extractPackageName(filename, contents) +- if !ok { +- return false +- } +- pkg.Name = pkgName +- pkg.Errors = nil +- return true +-} +- +-func extractPackageName(filename string, contents []byte) (string, bool) { +- // TODO(rstambler): Check the message of the actual error? +- // It differs between $GOPATH and module mode. +- f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.PackageClauseOnly) // TODO(matloob): reuse fileset? +- if err != nil { +- return "", false +- } +- return f.Name.Name, true +-} +- +-// commonDir returns the directory that all files are in, "" if files is empty, +-// or an error if they aren't in the same directory. +-func commonDir(files []string) (string, error) { +- seen := make(map[string]bool) +- for _, f := range files { +- seen[filepath.Dir(f)] = true +- } +- if len(seen) > 1 { +- return "", fmt.Errorf("files (%v) are in more than one directory: %v", files, seen) +- } +- for k := range seen { +- // seen has only one element; return it. +- return k, nil +- } +- return "", nil // no files +-} +- +-// It is possible that the files in the disk directory dir have a different package +-// name from newName, which is deduced from the overlays. If they all have a different +-// package name, and they all have the same package name, then that name becomes +-// the package name. +-// It returns true if it changes the package name, false otherwise. +-func maybeFixPackageName(newName string, isTestFile bool, pkgsOfDir []*Package) { +- names := make(map[string]int) +- for _, p := range pkgsOfDir { +- names[p.Name]++ +- } +- if len(names) != 1 { +- // some files are in different packages +- return +- } +- var oldName string +- for k := range names { +- oldName = k +- } +- if newName == oldName { +- return +- } +- // We might have a case where all of the package names in the directory are +- // the same, but the overlay file is for an x test, which belongs to its +- // own package. If the x test does not yet exist on disk, we may not yet +- // have its package name on disk, but we should not rename the packages. +- // +- // We use a heuristic to determine if this file belongs to an x test: +- // The test file should have a package name whose package name has a _test +- // suffix or looks like "newName_test". +- maybeXTest := strings.HasPrefix(oldName+"_test", newName) || strings.HasSuffix(newName, "_test") +- if isTestFile && maybeXTest { +- return +- } +- for _, p := range pkgsOfDir { +- p.Name = newName +- } +-} +- +-// This function is copy-pasted from +-// https://github.com/golang/go/blob/9706f510a5e2754595d716bd64be8375997311fb/src/cmd/go/internal/search/search.go#L360. +-// It should be deleted when we remove support for overlays from go/packages. +-// +-// NOTE: This does not handle any ./... or ./ style queries, as this function +-// doesn't know the working directory. +-// +-// matchPattern(pattern)(name) reports whether +-// name matches pattern. Pattern is a limited glob +-// pattern in which '...' means 'any string' and there +-// is no other special syntax. +-// Unfortunately, there are two special cases. Quoting "go help packages": +-// +-// First, /... at the end of the pattern can match an empty string, +-// so that net/... matches both net and packages in its subdirectories, like net/http. +-// Second, any slash-separated pattern element containing a wildcard never +-// participates in a match of the "vendor" element in the path of a vendored +-// package, so that ./... does not match packages in subdirectories of +-// ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. +-// Note, however, that a directory named vendor that itself contains code +-// is not a vendored package: cmd/vendor would be a command named vendor, +-// and the pattern cmd/... matches it. +-func matchPattern(pattern string) func(name string) bool { +- // Convert pattern to regular expression. +- // The strategy for the trailing /... is to nest it in an explicit ? expression. +- // The strategy for the vendor exclusion is to change the unmatchable +- // vendor strings to a disallowed code point (vendorChar) and to use +- // "(anything but that codepoint)*" as the implementation of the ... wildcard. +- // This is a bit complicated but the obvious alternative, +- // namely a hand-written search like in most shell glob matchers, +- // is too easy to make accidentally exponential. +- // Using package regexp guarantees linear-time matching. +- +- const vendorChar = "\x00" +- +- if strings.Contains(pattern, vendorChar) { +- return func(name string) bool { return false } +- } +- +- re := regexp.QuoteMeta(pattern) +- re = replaceVendor(re, vendorChar) +- switch { +- case strings.HasSuffix(re, `/`+vendorChar+`/\.\.\.`): +- re = strings.TrimSuffix(re, `/`+vendorChar+`/\.\.\.`) + `(/vendor|/` + vendorChar + `/\.\.\.)` +- case re == vendorChar+`/\.\.\.`: +- re = `(/vendor|/` + vendorChar + `/\.\.\.)` +- case strings.HasSuffix(re, `/\.\.\.`): +- re = strings.TrimSuffix(re, `/\.\.\.`) + `(/\.\.\.)?` +- } +- re = strings.ReplaceAll(re, `\.\.\.`, `[^`+vendorChar+`]*`) +- +- reg := regexp.MustCompile(`^` + re + `$`) +- +- return func(name string) bool { +- if strings.Contains(name, vendorChar) { +- return false +- } +- return reg.MatchString(replaceVendor(name, vendorChar)) +- } +-} +- +-// replaceVendor returns the result of replacing +-// non-trailing vendor path elements in x with repl. +-func replaceVendor(x, repl string) string { +- if !strings.Contains(x, "vendor") { +- return x +- } +- elem := strings.Split(x, "/") +- for i := 0; i < len(elem)-1; i++ { +- if elem[i] == "vendor" { +- elem[i] = repl +- } +- } +- return strings.Join(elem, "/") +-} +diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go +index ece0e7c603..3ea1b3fa46 100644 +--- a/vendor/golang.org/x/tools/go/packages/packages.go ++++ b/vendor/golang.org/x/tools/go/packages/packages.go +@@ -9,6 +9,7 @@ package packages + import ( + "context" + "encoding/json" ++ "errors" + "fmt" + "go/ast" + "go/parser" +@@ -24,11 +25,13 @@ import ( + "sync" + "time" + ++ "golang.org/x/sync/errgroup" ++ + "golang.org/x/tools/go/gcexportdata" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" +- "golang.org/x/tools/internal/typeparams" + "golang.org/x/tools/internal/typesinternal" ++ "golang.org/x/tools/internal/versions" + ) + + // A LoadMode controls the amount of detail to return when loading. +@@ -126,9 +129,8 @@ type Config struct { + Mode LoadMode + + // Context specifies the context for the load operation. +- // If the context is cancelled, the loader may stop early +- // and return an ErrCancelled error. +- // If Context is nil, the load cannot be cancelled. ++ // Cancelling the context may cause [Load] to abort and ++ // return an error. + Context context.Context + + // Logf is the logger for the config. +@@ -206,50 +208,13 @@ type Config struct { + Overlay map[string][]byte + } + +-// driver is the type for functions that query the build system for the +-// packages named by the patterns. +-type driver func(cfg *Config, patterns ...string) (*driverResponse, error) +- +-// driverResponse contains the results for a driver query. +-type driverResponse struct { +- // NotHandled is returned if the request can't be handled by the current +- // driver. If an external driver returns a response with NotHandled, the +- // rest of the driverResponse is ignored, and go/packages will fallback +- // to the next driver. If go/packages is extended in the future to support +- // lists of multiple drivers, go/packages will fall back to the next driver. +- NotHandled bool +- +- // Compiler and Arch are the arguments pass of types.SizesFor +- // to get a types.Sizes to use when type checking. +- Compiler string +- Arch string +- +- // Roots is the set of package IDs that make up the root packages. +- // We have to encode this separately because when we encode a single package +- // we cannot know if it is one of the roots as that requires knowledge of the +- // graph it is part of. +- Roots []string `json:",omitempty"` +- +- // Packages is the full set of packages in the graph. +- // The packages are not connected into a graph. +- // The Imports if populated will be stubs that only have their ID set. +- // Imports will be connected and then type and syntax information added in a +- // later pass (see refine). +- Packages []*Package +- +- // GoVersion is the minor version number used by the driver +- // (e.g. the go command on the PATH) when selecting .go files. +- // Zero means unknown. +- GoVersion int +-} +- + // Load loads and returns the Go packages named by the given patterns. + // + // Config specifies loading options; + // nil behaves the same as an empty Config. + // +-// Load returns an error if any of the patterns was invalid +-// as defined by the underlying build system. ++// If any of the patterns was invalid as defined by the ++// underlying build system, Load returns an error. + // It may return an empty list of packages without an error, + // for instance for an empty expansion of a valid wildcard. + // Errors associated with a particular package are recorded in the +@@ -258,31 +223,145 @@ type driverResponse struct { + // proceeding with further analysis. The PrintErrors function is + // provided for convenient display of all errors. + func Load(cfg *Config, patterns ...string) ([]*Package, error) { +- l := newLoader(cfg) +- response, err := defaultDriver(&l.Config, patterns...) ++ ld := newLoader(cfg) ++ response, external, err := defaultDriver(&ld.Config, patterns...) + if err != nil { + return nil, err + } +- l.sizes = types.SizesFor(response.Compiler, response.Arch) +- return l.refine(response) ++ ++ ld.sizes = types.SizesFor(response.Compiler, response.Arch) ++ if ld.sizes == nil && ld.Config.Mode&(NeedTypes|NeedTypesSizes|NeedTypesInfo) != 0 { ++ // Type size information is needed but unavailable. ++ if external { ++ // An external driver may fail to populate the Compiler/GOARCH fields, ++ // especially since they are relatively new (see #63700). ++ // Provide a sensible fallback in this case. ++ ld.sizes = types.SizesFor("gc", runtime.GOARCH) ++ if ld.sizes == nil { // gccgo-only arch ++ ld.sizes = types.SizesFor("gc", "amd64") ++ } ++ } else { ++ // Go list should never fail to deliver accurate size information. ++ // Reject the whole Load since the error is the same for every package. ++ return nil, fmt.Errorf("can't determine type sizes for compiler %q on GOARCH %q", ++ response.Compiler, response.Arch) ++ } ++ } ++ ++ return ld.refine(response) + } + + // defaultDriver is a driver that implements go/packages' fallback behavior. + // It will try to request to an external driver, if one exists. If there's + // no external driver, or the driver returns a response with NotHandled set, + // defaultDriver will fall back to the go list driver. +-func defaultDriver(cfg *Config, patterns ...string) (*driverResponse, error) { +- driver := findExternalDriver(cfg) +- if driver == nil { +- driver = goListDriver ++// The boolean result indicates that an external driver handled the request. ++func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, error) { ++ const ( ++ // windowsArgMax specifies the maximum command line length for ++ // the Windows' CreateProcess function. ++ windowsArgMax = 32767 ++ // maxEnvSize is a very rough estimation of the maximum environment ++ // size of a user. ++ maxEnvSize = 16384 ++ // safeArgMax specifies the maximum safe command line length to use ++ // by the underlying driver excl. the environment. We choose the Windows' ++ // ARG_MAX as the starting point because it's one of the lowest ARG_MAX ++ // constants out of the different supported platforms, ++ // e.g., https://www.in-ulm.de/~mascheck/various/argmax/#results. ++ safeArgMax = windowsArgMax - maxEnvSize ++ ) ++ chunks, err := splitIntoChunks(patterns, safeArgMax) ++ if err != nil { ++ return nil, false, err + } +- response, err := driver(cfg, patterns...) ++ ++ if driver := findExternalDriver(cfg); driver != nil { ++ response, err := callDriverOnChunks(driver, cfg, chunks) ++ if err != nil { ++ return nil, false, err ++ } else if !response.NotHandled { ++ return response, true, nil ++ } ++ // (fall through) ++ } ++ ++ response, err := callDriverOnChunks(goListDriver, cfg, chunks) + if err != nil { +- return response, err +- } else if response.NotHandled { +- return goListDriver(cfg, patterns...) ++ return nil, false, err + } +- return response, nil ++ return response, false, err ++} ++ ++// splitIntoChunks chunks the slice so that the total number of characters ++// in a chunk is no longer than argMax. ++func splitIntoChunks(patterns []string, argMax int) ([][]string, error) { ++ if argMax <= 0 { ++ return nil, errors.New("failed to split patterns into chunks, negative safe argMax value") ++ } ++ var chunks [][]string ++ charsInChunk := 0 ++ nextChunkStart := 0 ++ for i, v := range patterns { ++ vChars := len(v) ++ if vChars > argMax { ++ // a single pattern is longer than the maximum safe ARG_MAX, hardly should happen ++ return nil, errors.New("failed to split patterns into chunks, a pattern is too long") ++ } ++ charsInChunk += vChars + 1 // +1 is for a whitespace between patterns that has to be counted too ++ if charsInChunk > argMax { ++ chunks = append(chunks, patterns[nextChunkStart:i]) ++ nextChunkStart = i ++ charsInChunk = vChars ++ } ++ } ++ // add the last chunk ++ if nextChunkStart < len(patterns) { ++ chunks = append(chunks, patterns[nextChunkStart:]) ++ } ++ return chunks, nil ++} ++ ++func callDriverOnChunks(driver driver, cfg *Config, chunks [][]string) (*DriverResponse, error) { ++ if len(chunks) == 0 { ++ return driver(cfg) ++ } ++ responses := make([]*DriverResponse, len(chunks)) ++ errNotHandled := errors.New("driver returned NotHandled") ++ var g errgroup.Group ++ for i, chunk := range chunks { ++ i := i ++ chunk := chunk ++ g.Go(func() (err error) { ++ responses[i], err = driver(cfg, chunk...) ++ if responses[i] != nil && responses[i].NotHandled { ++ err = errNotHandled ++ } ++ return err ++ }) ++ } ++ if err := g.Wait(); err != nil { ++ if errors.Is(err, errNotHandled) { ++ return &DriverResponse{NotHandled: true}, nil ++ } ++ return nil, err ++ } ++ return mergeResponses(responses...), nil ++} ++ ++func mergeResponses(responses ...*DriverResponse) *DriverResponse { ++ if len(responses) == 0 { ++ return nil ++ } ++ response := newDeduper() ++ response.dr.NotHandled = false ++ response.dr.Compiler = responses[0].Compiler ++ response.dr.Arch = responses[0].Arch ++ response.dr.GoVersion = responses[0].GoVersion ++ for _, v := range responses { ++ response.addAll(v) ++ } ++ return response.dr + } + + // A Package describes a loaded Go package. +@@ -348,6 +427,10 @@ type Package struct { + // The NeedTypes LoadMode bit sets this field for packages matching the + // patterns; type information for dependencies may be missing or incomplete, + // unless NeedDeps and NeedImports are also set. ++ // ++ // Each call to [Load] returns a consistent set of type ++ // symbols, as defined by the comment at [types.Identical]. ++ // Avoid mixing type information from two or more calls to [Load]. + Types *types.Package + + // Fset provides position information for Types, TypesInfo, and Syntax. +@@ -411,12 +494,6 @@ func init() { + packagesinternal.GetDepsErrors = func(p interface{}) []*packagesinternal.PackageError { + return p.(*Package).depsErrors + } +- packagesinternal.GetGoCmdRunner = func(config interface{}) *gocommand.Runner { +- return config.(*Config).gocmdRunner +- } +- packagesinternal.SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) { +- config.(*Config).gocmdRunner = runner +- } + packagesinternal.SetModFile = func(config interface{}, value string) { + config.(*Config).modFile = value + } +@@ -553,7 +630,7 @@ type loaderPackage struct { + type loader struct { + pkgs map[string]*loaderPackage + Config +- sizes types.Sizes ++ sizes types.Sizes // non-nil if needed by mode + parseCache map[string]*parseValue + parseCacheMu sync.Mutex + exportMu sync.Mutex // enforces mutual exclusion of exportdata operations +@@ -633,7 +710,7 @@ func newLoader(cfg *Config) *loader { + + // refine connects the supplied packages into a graph and then adds type + // and syntax information as requested by the LoadMode. +-func (ld *loader) refine(response *driverResponse) ([]*Package, error) { ++func (ld *loader) refine(response *DriverResponse) ([]*Package, error) { + roots := response.Roots + rootMap := make(map[string]int, len(roots)) + for i, root := range roots { +@@ -678,39 +755,38 @@ func (ld *loader) refine(response *driverResponse) ([]*Package, error) { + } + } + +- // Materialize the import graph. +- +- const ( +- white = 0 // new +- grey = 1 // in progress +- black = 2 // complete +- ) +- +- // visit traverses the import graph, depth-first, +- // and materializes the graph as Packages.Imports. +- // +- // Valid imports are saved in the Packages.Import map. +- // Invalid imports (cycles and missing nodes) are saved in the importErrors map. +- // Thus, even in the presence of both kinds of errors, the Import graph remains a DAG. +- // +- // visit returns whether the package needs src or has a transitive +- // dependency on a package that does. These are the only packages +- // for which we load source code. +- var stack []*loaderPackage +- var visit func(lpkg *loaderPackage) bool +- var srcPkgs []*loaderPackage +- visit = func(lpkg *loaderPackage) bool { +- switch lpkg.color { +- case black: +- return lpkg.needsrc +- case grey: +- panic("internal error: grey node") +- } +- lpkg.color = grey +- stack = append(stack, lpkg) // push +- stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports +- // If NeedImports isn't set, the imports fields will all be zeroed out. +- if ld.Mode&NeedImports != 0 { ++ if ld.Mode&NeedImports != 0 { ++ // Materialize the import graph. ++ ++ const ( ++ white = 0 // new ++ grey = 1 // in progress ++ black = 2 // complete ++ ) ++ ++ // visit traverses the import graph, depth-first, ++ // and materializes the graph as Packages.Imports. ++ // ++ // Valid imports are saved in the Packages.Import map. ++ // Invalid imports (cycles and missing nodes) are saved in the importErrors map. ++ // Thus, even in the presence of both kinds of errors, ++ // the Import graph remains a DAG. ++ // ++ // visit returns whether the package needs src or has a transitive ++ // dependency on a package that does. These are the only packages ++ // for which we load source code. ++ var stack []*loaderPackage ++ var visit func(lpkg *loaderPackage) bool ++ visit = func(lpkg *loaderPackage) bool { ++ switch lpkg.color { ++ case black: ++ return lpkg.needsrc ++ case grey: ++ panic("internal error: grey node") ++ } ++ lpkg.color = grey ++ stack = append(stack, lpkg) // push ++ stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports + lpkg.Imports = make(map[string]*Package, len(stubs)) + for importPath, ipkg := range stubs { + var importErr error +@@ -734,40 +810,39 @@ func (ld *loader) refine(response *driverResponse) ([]*Package, error) { + } + lpkg.Imports[importPath] = imp.Package + } +- } +- if lpkg.needsrc { +- srcPkgs = append(srcPkgs, lpkg) +- } +- if ld.Mode&NeedTypesSizes != 0 { +- lpkg.TypesSizes = ld.sizes +- } +- stack = stack[:len(stack)-1] // pop +- lpkg.color = black + +- return lpkg.needsrc +- } ++ // Complete type information is required for the ++ // immediate dependencies of each source package. ++ if lpkg.needsrc && ld.Mode&NeedTypes != 0 { ++ for _, ipkg := range lpkg.Imports { ++ ld.pkgs[ipkg.ID].needtypes = true ++ } ++ } + +- if ld.Mode&NeedImports == 0 { +- // We do this to drop the stub import packages that we are not even going to try to resolve. +- for _, lpkg := range initial { +- lpkg.Imports = nil ++ // NeedTypeSizes causes TypeSizes to be set even ++ // on packages for which types aren't needed. ++ if ld.Mode&NeedTypesSizes != 0 { ++ lpkg.TypesSizes = ld.sizes ++ } ++ stack = stack[:len(stack)-1] // pop ++ lpkg.color = black ++ ++ return lpkg.needsrc + } +- } else { ++ + // For each initial package, create its import DAG. + for _, lpkg := range initial { + visit(lpkg) + } +- } +- if ld.Mode&NeedImports != 0 && ld.Mode&NeedTypes != 0 { +- for _, lpkg := range srcPkgs { +- // Complete type information is required for the +- // immediate dependencies of each source package. +- for _, ipkg := range lpkg.Imports { +- imp := ld.pkgs[ipkg.ID] +- imp.needtypes = true +- } ++ ++ } else { ++ // !NeedImports: drop the stub (ID-only) import packages ++ // that we are not even going to try to resolve. ++ for _, lpkg := range initial { ++ lpkg.Imports = nil + } + } ++ + // Load type data and syntax if needed, starting at + // the initial packages (roots of the import DAG). + if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 { +@@ -782,6 +857,12 @@ func (ld *loader) refine(response *driverResponse) ([]*Package, error) { + wg.Wait() + } + ++ // If the context is done, return its error and ++ // throw out [likely] incomplete packages. ++ if err := ld.Context.Err(); err != nil { ++ return nil, err ++ } ++ + result := make([]*Package, len(initial)) + for i, lpkg := range initial { + result[i] = lpkg.Package +@@ -877,6 +958,14 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { + lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) + lpkg.Fset = ld.Fset + ++ // Start shutting down if the context is done and do not load ++ // source or export data files. ++ // Packages that import this one will have ld.Context.Err() != nil. ++ // ld.Context.Err() will be returned later by refine. ++ if ld.Context.Err() != nil { ++ return ++ } ++ + // Subtle: we populate all Types fields with an empty Package + // before loading export data so that export data processing + // never has to create a types.Package for an indirect dependency, +@@ -996,15 +1085,23 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { + return + } + ++ // Start shutting down if the context is done and do not type check. ++ // Packages that import this one will have ld.Context.Err() != nil. ++ // ld.Context.Err() will be returned later by refine. ++ if ld.Context.Err() != nil { ++ return ++ } ++ + lpkg.TypesInfo = &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), ++ Instances: make(map[*ast.Ident]types.Instance), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } +- typeparams.InitInstanceInfo(lpkg.TypesInfo) ++ versions.InitFileVersions(lpkg.TypesInfo) + lpkg.TypesSizes = ld.sizes + + importer := importerFunc(func(path string) (*types.Package, error) { +@@ -1042,10 +1139,10 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { + IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, + + Error: appendError, +- Sizes: ld.sizes, ++ Sizes: ld.sizes, // may be nil + } + if lpkg.Module != nil && lpkg.Module.GoVersion != "" { +- typesinternal.SetGoVersion(tc, "go"+lpkg.Module.GoVersion) ++ tc.GoVersion = "go" + lpkg.Module.GoVersion + } + if (ld.Mode & typecheckCgo) != 0 { + if !typesinternal.SetUsesCgo(tc) { +@@ -1056,10 +1153,24 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { + return + } + } +- types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) + ++ typErr := types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) + lpkg.importErrors = nil // no longer needed + ++ // In go/types go1.21 and go1.22, Checker.Files failed fast with a ++ // a "too new" error, without calling tc.Error and without ++ // proceeding to type-check the package (#66525). ++ // We rely on the runtimeVersion error to give the suggested remedy. ++ if typErr != nil && len(lpkg.Errors) == 0 && len(lpkg.Syntax) > 0 { ++ if msg := typErr.Error(); strings.HasPrefix(msg, "package requires newer Go version") { ++ appendError(types.Error{ ++ Fset: ld.Fset, ++ Pos: lpkg.Syntax[0].Package, ++ Msg: msg, ++ }) ++ } ++ } ++ + // If !Cgo, the type-checker uses FakeImportC mode, so + // it doesn't invoke the importer for import "C", + // nor report an error for the import, +@@ -1081,6 +1192,12 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { + } + } + ++ // If types.Checker.Files had an error that was unreported, ++ // make sure to report the unknown error so the package is illTyped. ++ if typErr != nil && len(lpkg.Errors) == 0 { ++ appendError(typErr) ++ } ++ + // Record accumulated errors. + illTyped := len(lpkg.Errors) > 0 + if !illTyped { +@@ -1152,11 +1269,6 @@ func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { + parsed := make([]*ast.File, n) + errors := make([]error, n) + for i, file := range filenames { +- if ld.Config.Context.Err() != nil { +- parsed[i] = nil +- errors[i] = ld.Config.Context.Err() +- continue +- } + wg.Add(1) + go func(i int, filename string) { + parsed[i], errors[i] = ld.parseFile(filename) +diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +index fa5834baf7..a2386c347a 100644 +--- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go ++++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +@@ -26,15 +26,15 @@ package objectpath + import ( + "fmt" + "go/types" +- "sort" + "strconv" + "strings" +- _ "unsafe" + +- "golang.org/x/tools/internal/typeparams" ++ "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/typesinternal" + ) + ++// TODO(adonovan): think about generic aliases. ++ + // A Path is an opaque name that identifies a types.Object + // relative to its package. Conceptually, the name consists of a + // sequence of destructuring operations applied to the package scope +@@ -123,20 +123,7 @@ func For(obj types.Object) (Path, error) { + // An Encoder amortizes the cost of encoding the paths of multiple objects. + // The zero value of an Encoder is ready to use. + type Encoder struct { +- scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects +- namedMethodsMemo map[*types.Named][]*types.Func // memoization of namedMethods() +- skipMethodSorting bool +-} +- +-// Expose back doors so that gopls can avoid method sorting, which can dominate +-// analysis on certain repositories. +-// +-// TODO(golang/go#61443): remove this. +-func init() { +- typesinternal.SkipEncoderMethodSorting = func(enc interface{}) { +- enc.(*Encoder).skipMethodSorting = true +- } +- typesinternal.ObjectpathObject = object ++ scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects + } + + // For returns the path to an object relative to its package, +@@ -239,7 +226,7 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { + // Reject obviously non-viable cases. + switch obj := obj.(type) { + case *types.TypeName: +- if _, ok := obj.Type().(*typeparams.TypeParam); !ok { ++ if _, ok := aliases.Unalias(obj.Type()).(*types.TypeParam); !ok { + // With the exception of type parameters, only package-level type names + // have a path. + return "", fmt.Errorf("no path for %v", obj) +@@ -299,7 +286,7 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { + } + } else { + if named, _ := T.(*types.Named); named != nil { +- if r := findTypeParam(obj, typeparams.ForNamed(named), path, nil); r != nil { ++ if r := findTypeParam(obj, named.TypeParams(), path, nil); r != nil { + // generic named type + return Path(r), nil + } +@@ -326,33 +313,20 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { + } + + // Inspect declared methods of defined types. +- if T, ok := o.Type().(*types.Named); ok { ++ if T, ok := aliases.Unalias(o.Type()).(*types.Named); ok { + path = append(path, opType) +- if !enc.skipMethodSorting { +- // Note that method index here is always with respect +- // to canonical ordering of methods, regardless of how +- // they appear in the underlying type. +- for i, m := range enc.namedMethods(T) { +- path2 := appendOpArg(path, opMethod, i) +- if m == obj { +- return Path(path2), nil // found declared method +- } +- if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { +- return Path(r), nil +- } ++ // The method index here is always with respect ++ // to the underlying go/types data structures, ++ // which ultimately derives from source order ++ // and must be preserved by export data. ++ for i := 0; i < T.NumMethods(); i++ { ++ m := T.Method(i) ++ path2 := appendOpArg(path, opMethod, i) ++ if m == obj { ++ return Path(path2), nil // found declared method + } +- } else { +- // This branch must match the logic in the branch above, using go/types +- // APIs without sorting. +- for i := 0; i < T.NumMethods(); i++ { +- m := T.Method(i) +- path2 := appendOpArg(path, opMethod, i) +- if m == obj { +- return Path(path2), nil // found declared method +- } +- if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { +- return Path(r), nil +- } ++ if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { ++ return Path(r), nil + } + } + } +@@ -420,17 +394,12 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { + // of objectpath will only be giving us origin methods, anyway, as referring + // to instantiated methods is usually not useful. + +- if typeparams.OriginMethod(meth) != meth { ++ if meth.Origin() != meth { + return "", false + } + +- recvT := meth.Type().(*types.Signature).Recv().Type() +- if ptr, ok := recvT.(*types.Pointer); ok { +- recvT = ptr.Elem() +- } +- +- named, ok := recvT.(*types.Named) +- if !ok { ++ _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) ++ if named == nil { + return "", false + } + +@@ -448,22 +417,13 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { + path = append(path, name...) + path = append(path, opType) + +- if !enc.skipMethodSorting { +- for i, m := range enc.namedMethods(named) { +- if m == meth { +- path = appendOpArg(path, opMethod, i) +- return Path(path), true +- } +- } +- } else { +- // This branch must match the logic of the branch above, using go/types +- // APIs without sorting. +- for i := 0; i < named.NumMethods(); i++ { +- m := named.Method(i) +- if m == meth { +- path = appendOpArg(path, opMethod, i) +- return Path(path), true +- } ++ // Method indices are w.r.t. the go/types data structures, ++ // ultimately deriving from source order, ++ // which is preserved by export data. ++ for i := 0; i < named.NumMethods(); i++ { ++ if named.Method(i) == meth { ++ path = appendOpArg(path, opMethod, i) ++ return Path(path), true + } + } + +@@ -482,6 +442,8 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { + // nil, it will be allocated as necessary. + func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName]bool) []byte { + switch T := T.(type) { ++ case *aliases.Alias: ++ return find(obj, aliases.Unalias(T), path, seen) + case *types.Basic, *types.Named: + // Named types belonging to pkg were handled already, + // so T must belong to another package. No path. +@@ -500,7 +462,7 @@ func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName] + } + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Signature: +- if r := findTypeParam(obj, typeparams.ForSignature(T), path, seen); r != nil { ++ if r := findTypeParam(obj, T.TypeParams(), path, seen); r != nil { + return r + } + if r := find(obj, T.Params(), append(path, opParams), seen); r != nil { +@@ -543,7 +505,7 @@ func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName] + } + } + return nil +- case *typeparams.TypeParam: ++ case *types.TypeParam: + name := T.Obj() + if name == obj { + return append(path, opObj) +@@ -563,7 +525,7 @@ func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName] + panic(T) + } + +-func findTypeParam(obj types.Object, list *typeparams.TypeParamList, path []byte, seen map[*types.TypeName]bool) []byte { ++func findTypeParam(obj types.Object, list *types.TypeParamList, path []byte, seen map[*types.TypeName]bool) []byte { + for i := 0; i < list.Len(); i++ { + tparam := list.At(i) + path2 := appendOpArg(path, opTypeParam, i) +@@ -576,12 +538,7 @@ func findTypeParam(obj types.Object, list *typeparams.TypeParamList, path []byte + + // Object returns the object denoted by path p within the package pkg. + func Object(pkg *types.Package, p Path) (types.Object, error) { +- return object(pkg, string(p), false) +-} +- +-// Note: the skipMethodSorting parameter must match the value of +-// Encoder.skipMethodSorting used during encoding. +-func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.Object, error) { ++ pathstr := string(p) + if pathstr == "" { + return nil, fmt.Errorf("empty path") + } +@@ -605,7 +562,7 @@ func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.O + } + // abstraction of *types.{Named,Signature} + type hasTypeParams interface { +- TypeParams() *typeparams.TypeParamList ++ TypeParams() *types.TypeParamList + } + // abstraction of *types.{Named,TypeParam} + type hasObj interface { +@@ -659,6 +616,7 @@ func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.O + + // Inv: t != nil, obj == nil + ++ t = aliases.Unalias(t) + switch code { + case opElem: + hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map +@@ -707,7 +665,7 @@ func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.O + t = tparams.At(index) + + case opConstraint: +- tparam, ok := t.(*typeparams.TypeParam) ++ tparam, ok := t.(*types.TypeParam) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) + } +@@ -747,12 +705,7 @@ func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.O + if index >= t.NumMethods() { + return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) + } +- if skipMethodSorting { +- obj = t.Method(index) +- } else { +- methods := namedMethods(t) // (unmemoized) +- obj = methods[index] // Id-ordered +- } ++ obj = t.Method(index) + + default: + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) +@@ -779,33 +732,6 @@ func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.O + return obj, nil // success + } + +-// namedMethods returns the methods of a Named type in ascending Id order. +-func namedMethods(named *types.Named) []*types.Func { +- methods := make([]*types.Func, named.NumMethods()) +- for i := range methods { +- methods[i] = named.Method(i) +- } +- sort.Slice(methods, func(i, j int) bool { +- return methods[i].Id() < methods[j].Id() +- }) +- return methods +-} +- +-// namedMethods is a memoization of the namedMethods function. Callers must not modify the result. +-func (enc *Encoder) namedMethods(named *types.Named) []*types.Func { +- m := enc.namedMethodsMemo +- if m == nil { +- m = make(map[*types.Named][]*types.Func) +- enc.namedMethodsMemo = m +- } +- methods, ok := m[named] +- if !ok { +- methods = namedMethods(named) // allocates and sorts +- m[named] = methods +- } +- return methods +-} +- + // scopeObjects is a memoization of scope objects. + // Callers must not modify the result. + func (enc *Encoder) scopeObjects(scope *types.Scope) []types.Object { +diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go +new file mode 100644 +index 0000000000..c24c2eee45 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/aliases/aliases.go +@@ -0,0 +1,32 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package aliases ++ ++import ( ++ "go/token" ++ "go/types" ++) ++ ++// Package aliases defines backward compatible shims ++// for the types.Alias type representation added in 1.22. ++// This defines placeholders for x/tools until 1.26. ++ ++// NewAlias creates a new TypeName in Package pkg that ++// is an alias for the type rhs. ++// ++// The enabled parameter determines whether the resulting [TypeName]'s ++// type is an [types.Alias]. Its value must be the result of a call to ++// [Enabled], which computes the effective value of ++// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled ++// function is expensive and should be called once per task (e.g. ++// package import), not once per call to NewAlias. ++func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type) *types.TypeName { ++ if enabled { ++ tname := types.NewTypeName(pos, pkg, name, nil) ++ newAlias(tname, rhs) ++ return tname ++ } ++ return types.NewTypeName(pos, pkg, name, rhs) ++} +diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go +new file mode 100644 +index 0000000000..c027b9f315 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go +@@ -0,0 +1,31 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !go1.22 ++// +build !go1.22 ++ ++package aliases ++ ++import ( ++ "go/types" ++) ++ ++// Alias is a placeholder for a go/types.Alias for <=1.21. ++// It will never be created by go/types. ++type Alias struct{} ++ ++func (*Alias) String() string { panic("unreachable") } ++func (*Alias) Underlying() types.Type { panic("unreachable") } ++func (*Alias) Obj() *types.TypeName { panic("unreachable") } ++func Rhs(alias *Alias) types.Type { panic("unreachable") } ++ ++// Unalias returns the type t for go <=1.21. ++func Unalias(t types.Type) types.Type { return t } ++ ++func newAlias(name *types.TypeName, rhs types.Type) *Alias { panic("unreachable") } ++ ++// Enabled reports whether [NewAlias] should create [types.Alias] types. ++// ++// Before go1.22, this function always returns false. ++func Enabled() bool { return false } +diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go +new file mode 100644 +index 0000000000..b329954841 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go +@@ -0,0 +1,63 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.22 ++// +build go1.22 ++ ++package aliases ++ ++import ( ++ "go/ast" ++ "go/parser" ++ "go/token" ++ "go/types" ++) ++ ++// Alias is an alias of types.Alias. ++type Alias = types.Alias ++ ++// Rhs returns the type on the right-hand side of the alias declaration. ++func Rhs(alias *Alias) types.Type { ++ if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { ++ return alias.Rhs() // go1.23+ ++ } ++ ++ // go1.22's Alias didn't have the Rhs method, ++ // so Unalias is the best we can do. ++ return Unalias(alias) ++} ++ ++// Unalias is a wrapper of types.Unalias. ++func Unalias(t types.Type) types.Type { return types.Unalias(t) } ++ ++// newAlias is an internal alias around types.NewAlias. ++// Direct usage is discouraged as the moment. ++// Try to use NewAlias instead. ++func newAlias(tname *types.TypeName, rhs types.Type) *Alias { ++ a := types.NewAlias(tname, rhs) ++ // TODO(go.dev/issue/65455): Remove kludgy workaround to set a.actual as a side-effect. ++ Unalias(a) ++ return a ++} ++ ++// Enabled reports whether [NewAlias] should create [types.Alias] types. ++// ++// This function is expensive! Call it sparingly. ++func Enabled() bool { ++ // The only reliable way to compute the answer is to invoke go/types. ++ // We don't parse the GODEBUG environment variable, because ++ // (a) it's tricky to do so in a manner that is consistent ++ // with the godebug package; in particular, a simple ++ // substring check is not good enough. The value is a ++ // rightmost-wins list of options. But more importantly: ++ // (b) it is impossible to detect changes to the effective ++ // setting caused by os.Setenv("GODEBUG"), as happens in ++ // many tests. Therefore any attempt to cache the result ++ // is just incorrect. ++ fset := token.NewFileSet() ++ f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", 0) ++ pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) ++ _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) ++ return enabled ++} +diff --git a/vendor/golang.org/x/tools/internal/event/keys/util.go b/vendor/golang.org/x/tools/internal/event/keys/util.go +new file mode 100644 +index 0000000000..c0e8e731c9 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/event/keys/util.go +@@ -0,0 +1,21 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package keys ++ ++import ( ++ "sort" ++ "strings" ++) ++ ++// Join returns a canonical join of the keys in S: ++// a sorted comma-separated string list. ++func Join[S ~[]T, T ~string](s S) string { ++ strs := make([]string, 0, len(s)) ++ for _, v := range s { ++ strs = append(strs, string(v)) ++ } ++ sort.Strings(strs) ++ return strings.Join(strs, ",") ++} +diff --git a/vendor/golang.org/x/tools/internal/event/tag/tag.go b/vendor/golang.org/x/tools/internal/event/tag/tag.go +deleted file mode 100644 +index 581b26c204..0000000000 +--- a/vendor/golang.org/x/tools/internal/event/tag/tag.go ++++ /dev/null +@@ -1,59 +0,0 @@ +-// Copyright 2019 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Package tag provides the labels used for telemetry throughout gopls. +-package tag +- +-import ( +- "golang.org/x/tools/internal/event/keys" +-) +- +-var ( +- // create the label keys we use +- Method = keys.NewString("method", "") +- StatusCode = keys.NewString("status.code", "") +- StatusMessage = keys.NewString("status.message", "") +- RPCID = keys.NewString("id", "") +- RPCDirection = keys.NewString("direction", "") +- File = keys.NewString("file", "") +- Directory = keys.New("directory", "") +- URI = keys.New("URI", "") +- Package = keys.NewString("package", "") // sorted comma-separated list of Package IDs +- PackagePath = keys.NewString("package_path", "") +- Query = keys.New("query", "") +- Snapshot = keys.NewUInt64("snapshot", "") +- Operation = keys.NewString("operation", "") +- +- Position = keys.New("position", "") +- Category = keys.NewString("category", "") +- PackageCount = keys.NewInt("packages", "") +- Files = keys.New("files", "") +- Port = keys.NewInt("port", "") +- Type = keys.New("type", "") +- HoverKind = keys.NewString("hoverkind", "") +- +- NewServer = keys.NewString("new_server", "A new server was added") +- EndServer = keys.NewString("end_server", "A server was shut down") +- +- ServerID = keys.NewString("server", "The server ID an event is related to") +- Logfile = keys.NewString("logfile", "") +- DebugAddress = keys.NewString("debug_address", "") +- GoplsPath = keys.NewString("gopls_path", "") +- ClientID = keys.NewString("client_id", "") +- +- Level = keys.NewInt("level", "The logging level") +-) +- +-var ( +- // create the stats we measure +- Started = keys.NewInt64("started", "Count of started RPCs.") +- ReceivedBytes = keys.NewInt64("received_bytes", "Bytes received.") //, unit.Bytes) +- SentBytes = keys.NewInt64("sent_bytes", "Bytes sent.") //, unit.Bytes) +- Latency = keys.NewFloat64("latency_ms", "Elapsed time in milliseconds") //, unit.Milliseconds) +-) +- +-const ( +- Inbound = "in" +- Outbound = "out" +-) +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +index 2d078ccb19..39df91124a 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +@@ -259,13 +259,6 @@ func Import(packages map[string]*types.Package, path, srcDir string, lookup func + return + } + +-func deref(typ types.Type) types.Type { +- if p, _ := typ.(*types.Pointer); p != nil { +- return p.Elem() +- } +- return typ +-} +- + type byPath []*types.Package + + func (a byPath) Len() int { return len(a) } +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +index 6103dd7102..deeb67f315 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +@@ -23,8 +23,8 @@ import ( + "strings" + + "golang.org/x/tools/go/types/objectpath" ++ "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/tokeninternal" +- "golang.org/x/tools/internal/typeparams" + ) + + // IExportShallow encodes "shallow" export data for the specified package. +@@ -464,7 +464,7 @@ func (p *iexporter) doDecl(obj types.Object) { + + switch obj := obj.(type) { + case *types.Var: +- w.tag('V') ++ w.tag(varTag) + w.pos(obj.Pos()) + w.typ(obj.Type(), obj.Pkg()) + +@@ -481,10 +481,10 @@ func (p *iexporter) doDecl(obj types.Object) { + } + + // Function. +- if typeparams.ForSignature(sig).Len() == 0 { +- w.tag('F') ++ if sig.TypeParams().Len() == 0 { ++ w.tag(funcTag) + } else { +- w.tag('G') ++ w.tag(genericFuncTag) + } + w.pos(obj.Pos()) + // The tparam list of the function type is the declaration of the type +@@ -494,27 +494,27 @@ func (p *iexporter) doDecl(obj types.Object) { + // + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. +- if tparams := typeparams.ForSignature(sig); tparams.Len() > 0 { ++ if tparams := sig.TypeParams(); tparams.Len() > 0 { + w.tparamList(obj.Name(), tparams, obj.Pkg()) + } + w.signature(sig) + + case *types.Const: +- w.tag('C') ++ w.tag(constTag) + w.pos(obj.Pos()) + w.value(obj.Type(), obj.Val()) + + case *types.TypeName: + t := obj.Type() + +- if tparam, ok := t.(*typeparams.TypeParam); ok { +- w.tag('P') ++ if tparam, ok := aliases.Unalias(t).(*types.TypeParam); ok { ++ w.tag(typeParamTag) + w.pos(obj.Pos()) + constraint := tparam.Constraint() + if p.version >= iexportVersionGo1_18 { + implicit := false +- if iface, _ := constraint.(*types.Interface); iface != nil { +- implicit = typeparams.IsImplicit(iface) ++ if iface, _ := aliases.Unalias(constraint).(*types.Interface); iface != nil { ++ implicit = iface.IsImplicit() + } + w.bool(implicit) + } +@@ -523,8 +523,13 @@ func (p *iexporter) doDecl(obj types.Object) { + } + + if obj.IsAlias() { +- w.tag('A') ++ w.tag(aliasTag) + w.pos(obj.Pos()) ++ if alias, ok := t.(*aliases.Alias); ok { ++ // Preserve materialized aliases, ++ // even of non-exported types. ++ t = aliases.Rhs(alias) ++ } + w.typ(t, obj.Pkg()) + break + } +@@ -535,20 +540,20 @@ func (p *iexporter) doDecl(obj types.Object) { + panic(internalErrorf("%s is not a defined type", t)) + } + +- if typeparams.ForNamed(named).Len() == 0 { +- w.tag('T') ++ if named.TypeParams().Len() == 0 { ++ w.tag(typeTag) + } else { +- w.tag('U') ++ w.tag(genericTypeTag) + } + w.pos(obj.Pos()) + +- if typeparams.ForNamed(named).Len() > 0 { ++ if named.TypeParams().Len() > 0 { + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. +- w.tparamList(obj.Name(), typeparams.ForNamed(named), obj.Pkg()) ++ w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg()) + } + +- underlying := obj.Type().Underlying() ++ underlying := named.Underlying() + w.typ(underlying, obj.Pkg()) + + if types.IsInterface(t) { +@@ -565,7 +570,7 @@ func (p *iexporter) doDecl(obj types.Object) { + + // Receiver type parameters are type arguments of the receiver type, so + // their name must be qualified before exporting recv. +- if rparams := typeparams.RecvTypeParams(sig); rparams.Len() > 0 { ++ if rparams := sig.RecvTypeParams(); rparams.Len() > 0 { + prefix := obj.Name() + "." + m.Name() + for i := 0; i < rparams.Len(); i++ { + rparam := rparams.At(i) +@@ -739,20 +744,25 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + }() + } + switch t := t.(type) { ++ case *aliases.Alias: ++ // TODO(adonovan): support parameterized aliases, following *types.Named. ++ w.startType(aliasType) ++ w.qualifiedType(t.Obj()) ++ + case *types.Named: +- if targs := typeparams.NamedTypeArgs(t); targs.Len() > 0 { ++ if targs := t.TypeArgs(); targs.Len() > 0 { + w.startType(instanceType) + // TODO(rfindley): investigate if this position is correct, and if it + // matters. + w.pos(t.Obj().Pos()) + w.typeList(targs, pkg) +- w.typ(typeparams.NamedTypeOrigin(t), pkg) ++ w.typ(t.Origin(), pkg) + return + } + w.startType(definedType) + w.qualifiedType(t.Obj()) + +- case *typeparams.TypeParam: ++ case *types.TypeParam: + w.startType(typeParamType) + w.qualifiedType(t.Obj()) + +@@ -844,7 +854,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + for i := 0; i < n; i++ { + ft := t.EmbeddedType(i) + tPkg := pkg +- if named, _ := ft.(*types.Named); named != nil { ++ if named, _ := aliases.Unalias(ft).(*types.Named); named != nil { + w.pos(named.Obj().Pos()) + } else { + w.pos(token.NoPos) +@@ -868,7 +878,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + w.signature(sig) + } + +- case *typeparams.Union: ++ case *types.Union: + w.startType(unionType) + nt := t.Len() + w.uint64(uint64(nt)) +@@ -948,14 +958,14 @@ func (w *exportWriter) signature(sig *types.Signature) { + } + } + +-func (w *exportWriter) typeList(ts *typeparams.TypeList, pkg *types.Package) { ++func (w *exportWriter) typeList(ts *types.TypeList, pkg *types.Package) { + w.uint64(uint64(ts.Len())) + for i := 0; i < ts.Len(); i++ { + w.typ(ts.At(i), pkg) + } + } + +-func (w *exportWriter) tparamList(prefix string, list *typeparams.TypeParamList, pkg *types.Package) { ++func (w *exportWriter) tparamList(prefix string, list *types.TypeParamList, pkg *types.Package) { + ll := uint64(list.Len()) + w.uint64(ll) + for i := 0; i < list.Len(); i++ { +@@ -973,7 +983,7 @@ const blankMarker = "$" + // differs from its actual object name: it is prefixed with a qualifier, and + // blank type parameter names are disambiguated by their index in the type + // parameter list. +-func tparamExportName(prefix string, tparam *typeparams.TypeParam) string { ++func tparamExportName(prefix string, tparam *types.TypeParam) string { + assert(prefix != "") + name := tparam.Obj().Name() + if name == "_" { +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +index 8e64cf644f..136aa03653 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +@@ -22,7 +22,8 @@ import ( + "strings" + + "golang.org/x/tools/go/types/objectpath" +- "golang.org/x/tools/internal/typeparams" ++ "golang.org/x/tools/internal/aliases" ++ "golang.org/x/tools/internal/typesinternal" + ) + + type intReader struct { +@@ -79,6 +80,20 @@ const ( + typeParamType + instanceType + unionType ++ aliasType ++) ++ ++// Object tags ++const ( ++ varTag = 'V' ++ funcTag = 'F' ++ genericFuncTag = 'G' ++ constTag = 'C' ++ aliasTag = 'A' ++ genericAliasTag = 'B' ++ typeParamTag = 'P' ++ typeTag = 'T' ++ genericTypeTag = 'U' + ) + + // IImportData imports a package from the serialized package data +@@ -195,6 +210,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte + p := iimporter{ + version: int(version), + ipath: path, ++ aliases: aliases.Enabled(), + shallow: shallow, + reportf: reportf, + +@@ -225,6 +241,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte + + // Gather the relevant packages from the manifest. + items := make([]GetPackagesItem, r.uint64()) ++ uniquePkgPaths := make(map[string]bool) + for i := range items { + pkgPathOff := r.uint64() + pkgPath := p.stringAt(pkgPathOff) +@@ -249,6 +266,12 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte + } + + items[i].nameIndex = nameIndex ++ ++ uniquePkgPaths[pkgPath] = true ++ } ++ // Debugging #63822; hypothesis: there are duplicate PkgPaths. ++ if len(uniquePkgPaths) != len(items) { ++ reportf("found duplicate PkgPaths while reading export data manifest: %v", items) + } + + // Request packages all at once from the client, +@@ -316,12 +339,12 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte + } + + // SetConstraint can't be called if the constraint type is not yet complete. +- // When type params are created in the 'P' case of (*importReader).obj(), ++ // When type params are created in the typeParamTag case of (*importReader).obj(), + // the associated constraint type may not be complete due to recursion. + // Therefore, we defer calling SetConstraint there, and call it here instead + // after all types are complete. + for _, d := range p.later { +- typeparams.SetTypeParamConstraint(d.t, d.constraint) ++ d.t.SetConstraint(d.constraint) + } + + for _, typ := range p.interfaceList { +@@ -339,7 +362,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte + } + + type setConstraintArgs struct { +- t *typeparams.TypeParam ++ t *types.TypeParam + constraint types.Type + } + +@@ -347,6 +370,7 @@ type iimporter struct { + version int + ipath string + ++ aliases bool + shallow bool + reportf ReportFunc // if non-nil, used to report bugs + +@@ -516,7 +540,7 @@ func canReuse(def *types.Named, rhs types.Type) bool { + if def == nil { + return true + } +- iface, _ := rhs.(*types.Interface) ++ iface, _ := aliases.Unalias(rhs).(*types.Interface) + if iface == nil { + return true + } +@@ -538,25 +562,29 @@ func (r *importReader) obj(name string) { + pos := r.pos() + + switch tag { +- case 'A': ++ case aliasTag: + typ := r.typ() +- +- r.declare(types.NewTypeName(pos, r.currPkg, name, typ)) +- +- case 'C': ++ // TODO(adonovan): support generic aliases: ++ // if tag == genericAliasTag { ++ // tparams := r.tparamList() ++ // alias.SetTypeParams(tparams) ++ // } ++ r.declare(aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ)) ++ ++ case constTag: + typ, val := r.value() + + r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) + +- case 'F', 'G': +- var tparams []*typeparams.TypeParam +- if tag == 'G' { ++ case funcTag, genericFuncTag: ++ var tparams []*types.TypeParam ++ if tag == genericFuncTag { + tparams = r.tparamList() + } + sig := r.signature(nil, nil, tparams) + r.declare(types.NewFunc(pos, r.currPkg, name, sig)) + +- case 'T', 'U': ++ case typeTag, genericTypeTag: + // Types can be recursive. We need to setup a stub + // declaration before recursing. + obj := types.NewTypeName(pos, r.currPkg, name, nil) +@@ -564,9 +592,9 @@ func (r *importReader) obj(name string) { + // Declare obj before calling r.tparamList, so the new type name is recognized + // if used in the constraint of one of its own typeparams (see #48280). + r.declare(obj) +- if tag == 'U' { ++ if tag == genericTypeTag { + tparams := r.tparamList() +- typeparams.SetForNamed(named, tparams) ++ named.SetTypeParams(tparams) + } + + underlying := r.p.typAt(r.uint64(), named).Underlying() +@@ -581,14 +609,13 @@ func (r *importReader) obj(name string) { + // If the receiver has any targs, set those as the + // rparams of the method (since those are the + // typeparams being used in the method sig/body). +- base := baseType(recv.Type()) +- assert(base != nil) +- targs := typeparams.NamedTypeArgs(base) +- var rparams []*typeparams.TypeParam ++ _, recvNamed := typesinternal.ReceiverNamed(recv) ++ targs := recvNamed.TypeArgs() ++ var rparams []*types.TypeParam + if targs.Len() > 0 { +- rparams = make([]*typeparams.TypeParam, targs.Len()) ++ rparams = make([]*types.TypeParam, targs.Len()) + for i := range rparams { +- rparams[i] = targs.At(i).(*typeparams.TypeParam) ++ rparams[i] = aliases.Unalias(targs.At(i)).(*types.TypeParam) + } + } + msig := r.signature(recv, rparams, nil) +@@ -597,7 +624,7 @@ func (r *importReader) obj(name string) { + } + } + +- case 'P': ++ case typeParamTag: + // We need to "declare" a typeparam in order to have a name that + // can be referenced recursively (if needed) in the type param's + // bound. +@@ -606,7 +633,7 @@ func (r *importReader) obj(name string) { + } + name0 := tparamName(name) + tn := types.NewTypeName(pos, r.currPkg, name0, nil) +- t := typeparams.NewTypeParam(tn, nil) ++ t := types.NewTypeParam(tn, nil) + + // To handle recursive references to the typeparam within its + // bound, save the partial type in tparamIndex before reading the bounds. +@@ -618,11 +645,11 @@ func (r *importReader) obj(name string) { + } + constraint := r.typ() + if implicit { +- iface, _ := constraint.(*types.Interface) ++ iface, _ := aliases.Unalias(constraint).(*types.Interface) + if iface == nil { + errorf("non-interface constraint marked implicit") + } +- typeparams.MarkImplicit(iface) ++ iface.MarkImplicit() + } + // The constraint type may not be complete, if we + // are in the middle of a type recursion involving type +@@ -630,7 +657,7 @@ func (r *importReader) obj(name string) { + // completely set up all types in ImportData. + r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) + +- case 'V': ++ case varTag: + typ := r.typ() + + r.declare(types.NewVar(pos, r.currPkg, name, typ)) +@@ -825,7 +852,7 @@ func (r *importReader) typ() types.Type { + } + + func isInterface(t types.Type) bool { +- _, ok := t.(*types.Interface) ++ _, ok := aliases.Unalias(t).(*types.Interface) + return ok + } + +@@ -847,7 +874,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { + errorf("unexpected kind tag in %q: %v", r.p.ipath, k) + return nil + +- case definedType: ++ case aliasType, definedType: + pkg, name := r.qualifiedIdent() + r.p.doDecl(pkg, name) + return pkg.Scope().Lookup(name).(*types.TypeName).Type() +@@ -966,7 +993,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { + // The imported instantiated type doesn't include any methods, so + // we must always use the methods of the base (orig) type. + // TODO provide a non-nil *Environment +- t, _ := typeparams.Instantiate(nil, baseType, targs, false) ++ t, _ := types.Instantiate(nil, baseType, targs, false) + + // Workaround for golang/go#61561. See the doc for instanceList for details. + r.p.instanceList = append(r.p.instanceList, t) +@@ -976,11 +1003,11 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { + if r.p.version < iexportVersionGenerics { + errorf("unexpected instantiation type") + } +- terms := make([]*typeparams.Term, r.uint64()) ++ terms := make([]*types.Term, r.uint64()) + for i := range terms { +- terms[i] = typeparams.NewTerm(r.bool(), r.typ()) ++ terms[i] = types.NewTerm(r.bool(), r.typ()) + } +- return typeparams.NewUnion(terms) ++ return types.NewUnion(terms) + } + } + +@@ -1008,23 +1035,23 @@ func (r *importReader) objectPathObject() types.Object { + return obj + } + +-func (r *importReader) signature(recv *types.Var, rparams []*typeparams.TypeParam, tparams []*typeparams.TypeParam) *types.Signature { ++func (r *importReader) signature(recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { + params := r.paramList() + results := r.paramList() + variadic := params.Len() > 0 && r.bool() +- return typeparams.NewSignatureType(recv, rparams, tparams, params, results, variadic) ++ return types.NewSignatureType(recv, rparams, tparams, params, results, variadic) + } + +-func (r *importReader) tparamList() []*typeparams.TypeParam { ++func (r *importReader) tparamList() []*types.TypeParam { + n := r.uint64() + if n == 0 { + return nil + } +- xs := make([]*typeparams.TypeParam, n) ++ xs := make([]*types.TypeParam, n) + for i := range xs { + // Note: the standard library importer is tolerant of nil types here, + // though would panic in SetTypeParams. +- xs[i] = r.typ().(*typeparams.TypeParam) ++ xs[i] = aliases.Unalias(r.typ()).(*types.TypeParam) + } + return xs + } +@@ -1071,13 +1098,3 @@ func (r *importReader) byte() byte { + } + return x + } +- +-func baseType(typ types.Type) *types.Named { +- // pointer receivers are never types.Named types +- if p, _ := typ.(*types.Pointer); p != nil { +- typ = p.Elem() +- } +- // receiver base types are always (possibly generic) types.Named types +- n, _ := typ.(*types.Named) +- return n +-} +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go b/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go +deleted file mode 100644 +index d892273efb..0000000000 +--- a/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go ++++ /dev/null +@@ -1,16 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.18 +-// +build !go1.18 +- +-package gcimporter +- +-import "go/types" +- +-const iexportVersion = iexportVersionGo1_11 +- +-func additionalPredeclared() []types.Type { +- return nil +-} +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go b/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go +index edbe6ea704..0cd3b91b65 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go +@@ -2,9 +2,6 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build go1.18 +-// +build go1.18 +- + package gcimporter + + import "go/types" +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go b/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go +index 286bf44548..38b624cada 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go +@@ -2,8 +2,8 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build !(go1.18 && goexperiment.unified) +-// +build !go1.18 !goexperiment.unified ++//go:build !goexperiment.unified ++// +build !goexperiment.unified + + package gcimporter + +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go +index b5d69ffbe6..b5118d0b3a 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go +@@ -2,8 +2,8 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-//go:build go1.18 && goexperiment.unified +-// +build go1.18,goexperiment.unified ++//go:build goexperiment.unified ++// +build goexperiment.unified + + package gcimporter + +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go +deleted file mode 100644 +index 8eb20729c2..0000000000 +--- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go ++++ /dev/null +@@ -1,19 +0,0 @@ +-// Copyright 2022 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.18 +-// +build !go1.18 +- +-package gcimporter +- +-import ( +- "fmt" +- "go/token" +- "go/types" +-) +- +-func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { +- err = fmt.Errorf("go/tools compiled with a Go version earlier than 1.18 cannot read unified IR export data") +- return +-} +diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +index b977435f62..2c07706887 100644 +--- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go ++++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +@@ -4,9 +4,6 @@ + + // Derived from go/internal/gcimporter/ureader.go + +-//go:build go1.18 +-// +build go1.18 +- + package gcimporter + + import ( +@@ -16,6 +13,7 @@ import ( + "sort" + "strings" + ++ "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/pkgbits" + ) + +@@ -28,6 +26,7 @@ type pkgReader struct { + + ctxt *types.Context + imports map[string]*types.Package // previously imported packages, indexed by path ++ aliases bool // create types.Alias nodes + + // lazily initialized arrays corresponding to the unified IR + // PosBase, Pkg, and Type sections, respectively. +@@ -101,6 +100,7 @@ func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[st + + ctxt: ctxt, + imports: imports, ++ aliases: aliases.Enabled(), + + posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), + pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), +@@ -526,7 +526,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { + case pkgbits.ObjAlias: + pos := r.pos() + typ := r.typ() +- declare(types.NewTypeName(pos, objPkg, objName, typ)) ++ declare(aliases.NewAlias(r.p.aliases, pos, objPkg, objName, typ)) + + case pkgbits.ObjConst: + pos := r.pos() +@@ -553,7 +553,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { + // If the underlying type is an interface, we need to + // duplicate its methods so we can replace the receiver + // parameter's type (#49906). +- if iface, ok := underlying.(*types.Interface); ok && iface.NumExplicitMethods() != 0 { ++ if iface, ok := aliases.Unalias(underlying).(*types.Interface); ok && iface.NumExplicitMethods() != 0 { + methods := make([]*types.Func, iface.NumExplicitMethods()) + for i := range methods { + fn := iface.ExplicitMethod(i) +diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go +index 53cf66da01..eb7a8282f9 100644 +--- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go ++++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go +@@ -13,6 +13,7 @@ import ( + "io" + "log" + "os" ++ "os/exec" + "reflect" + "regexp" + "runtime" +@@ -21,12 +22,9 @@ import ( + "sync" + "time" + +- exec "golang.org/x/sys/execabs" +- + "golang.org/x/tools/internal/event" + "golang.org/x/tools/internal/event/keys" + "golang.org/x/tools/internal/event/label" +- "golang.org/x/tools/internal/event/tag" + ) + + // An Runner will run go command invocations and serialize +@@ -56,11 +54,14 @@ func (runner *Runner) initialize() { + // 1.14: go: updating go.mod: existing contents have changed since last read + var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) + +-// verb is an event label for the go command verb. +-var verb = keys.NewString("verb", "go command verb") ++// event keys for go command invocations ++var ( ++ verb = keys.NewString("verb", "go command verb") ++ directory = keys.NewString("directory", "") ++) + + func invLabels(inv Invocation) []label.Label { +- return []label.Label{verb.Of(inv.Verb), tag.Directory.Of(inv.WorkingDir)} ++ return []label.Label{verb.Of(inv.Verb), directory.Of(inv.WorkingDir)} + } + + // Run is a convenience wrapper around RunRaw. +@@ -85,6 +86,7 @@ func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stde + + // RunRaw runs the invocation, serializing requests only if they fight over + // go.mod changes. ++// Postcondition: both error results have same nilness. + func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { + ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) + defer done() +@@ -95,23 +97,24 @@ func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer + stdout, stderr, friendlyErr, err := runner.runConcurrent(ctx, inv) + + // If we encounter a load concurrency error, we need to retry serially. +- if friendlyErr == nil || !modConcurrencyError.MatchString(friendlyErr.Error()) { +- return stdout, stderr, friendlyErr, err ++ if friendlyErr != nil && modConcurrencyError.MatchString(friendlyErr.Error()) { ++ event.Error(ctx, "Load concurrency error, will retry serially", err) ++ ++ // Run serially by calling runPiped. ++ stdout.Reset() ++ stderr.Reset() ++ friendlyErr, err = runner.runPiped(ctx, inv, stdout, stderr) + } +- event.Error(ctx, "Load concurrency error, will retry serially", err) + +- // Run serially by calling runPiped. +- stdout.Reset() +- stderr.Reset() +- friendlyErr, err = runner.runPiped(ctx, inv, stdout, stderr) + return stdout, stderr, friendlyErr, err + } + ++// Postcondition: both error results have same nilness. + func (runner *Runner) runConcurrent(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { + // Wait for 1 worker to become available. + select { + case <-ctx.Done(): +- return nil, nil, nil, ctx.Err() ++ return nil, nil, ctx.Err(), ctx.Err() + case runner.inFlight <- struct{}{}: + defer func() { <-runner.inFlight }() + } +@@ -121,6 +124,7 @@ func (runner *Runner) runConcurrent(ctx context.Context, inv Invocation) (*bytes + return stdout, stderr, friendlyErr, err + } + ++// Postcondition: both error results have same nilness. + func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) (error, error) { + // Make sure the runner is always initialized. + runner.initialize() +@@ -129,7 +133,7 @@ func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stde + // runPiped commands. + select { + case <-ctx.Done(): +- return nil, ctx.Err() ++ return ctx.Err(), ctx.Err() + case runner.serialized <- struct{}{}: + defer func() { <-runner.serialized }() + } +@@ -139,7 +143,7 @@ func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stde + for i := 0; i < maxInFlight; i++ { + select { + case <-ctx.Done(): +- return nil, ctx.Err() ++ return ctx.Err(), ctx.Err() + case runner.inFlight <- struct{}{}: + // Make sure we always "return" any workers we took. + defer func() { <-runner.inFlight }() +@@ -156,12 +160,15 @@ type Invocation struct { + BuildFlags []string + + // If ModFlag is set, the go command is invoked with -mod=ModFlag. ++ // TODO(rfindley): remove, in favor of Args. + ModFlag string + + // If ModFile is set, the go command is invoked with -modfile=ModFile. ++ // TODO(rfindley): remove, in favor of Args. + ModFile string + + // If Overlay is set, the go command is invoked with -overlay=Overlay. ++ // TODO(rfindley): remove, in favor of Args. + Overlay string + + // If CleanEnv is set, the invocation will run only with the environment +@@ -172,6 +179,7 @@ type Invocation struct { + Logf func(format string, args ...interface{}) + } + ++// Postcondition: both error results have same nilness. + func (i *Invocation) runWithFriendlyError(ctx context.Context, stdout, stderr io.Writer) (friendlyError error, rawError error) { + rawError = i.run(ctx, stdout, stderr) + if rawError != nil { +diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go +index 2d3d408c0b..e38d1fb488 100644 +--- a/vendor/golang.org/x/tools/internal/gocommand/vendor.go ++++ b/vendor/golang.org/x/tools/internal/gocommand/vendor.go +@@ -107,3 +107,57 @@ func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*Modul + } + return mod, lines[4] == "go1.14", nil + } ++ ++// WorkspaceVendorEnabled reports whether workspace vendoring is enabled. It takes a *Runner to execute Go commands ++// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, ++// of which only Verb and Args are modified to run the appropriate Go command. ++// Inspired by setDefaultBuildMod in modload/init.go ++func WorkspaceVendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, []*ModuleJSON, error) { ++ inv.Verb = "env" ++ inv.Args = []string{"GOWORK"} ++ stdout, err := r.Run(ctx, inv) ++ if err != nil { ++ return false, nil, err ++ } ++ goWork := string(bytes.TrimSpace(stdout.Bytes())) ++ if fi, err := os.Stat(filepath.Join(filepath.Dir(goWork), "vendor")); err == nil && fi.IsDir() { ++ mainMods, err := getWorkspaceMainModules(ctx, inv, r) ++ if err != nil { ++ return false, nil, err ++ } ++ return true, mainMods, nil ++ } ++ return false, nil, nil ++} ++ ++// getWorkspaceMainModules gets the main modules' information. ++// This is the information needed to figure out if vendoring should be enabled. ++func getWorkspaceMainModules(ctx context.Context, inv Invocation, r *Runner) ([]*ModuleJSON, error) { ++ const format = `{{.Path}} ++{{.Dir}} ++{{.GoMod}} ++{{.GoVersion}} ++` ++ inv.Verb = "list" ++ inv.Args = []string{"-m", "-f", format} ++ stdout, err := r.Run(ctx, inv) ++ if err != nil { ++ return nil, err ++ } ++ ++ lines := strings.Split(strings.TrimSuffix(stdout.String(), "\n"), "\n") ++ if len(lines) < 4 { ++ return nil, fmt.Errorf("unexpected stdout: %q", stdout.String()) ++ } ++ mods := make([]*ModuleJSON, 0, len(lines)/4) ++ for i := 0; i < len(lines); i += 4 { ++ mods = append(mods, &ModuleJSON{ ++ Path: lines[i], ++ Dir: lines[i+1], ++ GoMod: lines[i+2], ++ GoVersion: lines[i+3], ++ Main: true, ++ }) ++ } ++ return mods, nil ++} +diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go +index d9950b1f0b..44719de173 100644 +--- a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go ++++ b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go +@@ -5,10 +5,6 @@ + // Package packagesinternal exposes internal-only fields from go/packages. + package packagesinternal + +-import ( +- "golang.org/x/tools/internal/gocommand" +-) +- + var GetForTest = func(p interface{}) string { return "" } + var GetDepsErrors = func(p interface{}) []*PackageError { return nil } + +@@ -18,10 +14,6 @@ type PackageError struct { + Err string // the error itself + } + +-var GetGoCmdRunner = func(config interface{}) *gocommand.Runner { return nil } +- +-var SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) {} +- + var TypecheckCgo int + var DepsErrors int // must be set as a LoadMode to call GetDepsErrors + var ForTest int // must be set as a LoadMode to call GetForTest +diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +index b92e8e6eb3..2acd85851e 100644 +--- a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go ++++ b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +@@ -23,6 +23,9 @@ type PkgDecoder struct { + // version is the file format version. + version uint32 + ++ // aliases determines whether types.Aliases should be created ++ aliases bool ++ + // sync indicates whether the file uses sync markers. + sync bool + +@@ -73,6 +76,7 @@ func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } + func NewPkgDecoder(pkgPath, input string) PkgDecoder { + pr := PkgDecoder{ + pkgPath: pkgPath, ++ //aliases: aliases.Enabled(), + } + + // TODO(mdempsky): Implement direct indexing of input string to +diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go +new file mode 100644 +index 0000000000..fd6892075e +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go +@@ -0,0 +1,17320 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Code generated by generate.go. DO NOT EDIT. ++ ++package stdlib ++ ++var PackageSymbols = map[string][]Symbol{ ++ "archive/tar": { ++ {"(*Header).FileInfo", Method, 1}, ++ {"(*Reader).Next", Method, 0}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Writer).AddFS", Method, 22}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).Write", Method, 0}, ++ {"(*Writer).WriteHeader", Method, 0}, ++ {"(Format).String", Method, 10}, ++ {"ErrFieldTooLong", Var, 0}, ++ {"ErrHeader", Var, 0}, ++ {"ErrInsecurePath", Var, 20}, ++ {"ErrWriteAfterClose", Var, 0}, ++ {"ErrWriteTooLong", Var, 0}, ++ {"FileInfoHeader", Func, 1}, ++ {"Format", Type, 10}, ++ {"FormatGNU", Const, 10}, ++ {"FormatPAX", Const, 10}, ++ {"FormatUSTAR", Const, 10}, ++ {"FormatUnknown", Const, 10}, ++ {"Header", Type, 0}, ++ {"Header.AccessTime", Field, 0}, ++ {"Header.ChangeTime", Field, 0}, ++ {"Header.Devmajor", Field, 0}, ++ {"Header.Devminor", Field, 0}, ++ {"Header.Format", Field, 10}, ++ {"Header.Gid", Field, 0}, ++ {"Header.Gname", Field, 0}, ++ {"Header.Linkname", Field, 0}, ++ {"Header.ModTime", Field, 0}, ++ {"Header.Mode", Field, 0}, ++ {"Header.Name", Field, 0}, ++ {"Header.PAXRecords", Field, 10}, ++ {"Header.Size", Field, 0}, ++ {"Header.Typeflag", Field, 0}, ++ {"Header.Uid", Field, 0}, ++ {"Header.Uname", Field, 0}, ++ {"Header.Xattrs", Field, 3}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"Reader", Type, 0}, ++ {"TypeBlock", Const, 0}, ++ {"TypeChar", Const, 0}, ++ {"TypeCont", Const, 0}, ++ {"TypeDir", Const, 0}, ++ {"TypeFifo", Const, 0}, ++ {"TypeGNULongLink", Const, 1}, ++ {"TypeGNULongName", Const, 1}, ++ {"TypeGNUSparse", Const, 3}, ++ {"TypeLink", Const, 0}, ++ {"TypeReg", Const, 0}, ++ {"TypeRegA", Const, 0}, ++ {"TypeSymlink", Const, 0}, ++ {"TypeXGlobalHeader", Const, 0}, ++ {"TypeXHeader", Const, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "archive/zip": { ++ {"(*File).DataOffset", Method, 2}, ++ {"(*File).FileInfo", Method, 0}, ++ {"(*File).ModTime", Method, 0}, ++ {"(*File).Mode", Method, 0}, ++ {"(*File).Open", Method, 0}, ++ {"(*File).OpenRaw", Method, 17}, ++ {"(*File).SetModTime", Method, 0}, ++ {"(*File).SetMode", Method, 0}, ++ {"(*FileHeader).FileInfo", Method, 0}, ++ {"(*FileHeader).ModTime", Method, 0}, ++ {"(*FileHeader).Mode", Method, 0}, ++ {"(*FileHeader).SetModTime", Method, 0}, ++ {"(*FileHeader).SetMode", Method, 0}, ++ {"(*ReadCloser).Close", Method, 0}, ++ {"(*ReadCloser).Open", Method, 16}, ++ {"(*ReadCloser).RegisterDecompressor", Method, 6}, ++ {"(*Reader).Open", Method, 16}, ++ {"(*Reader).RegisterDecompressor", Method, 6}, ++ {"(*Writer).AddFS", Method, 22}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Copy", Method, 17}, ++ {"(*Writer).Create", Method, 0}, ++ {"(*Writer).CreateHeader", Method, 0}, ++ {"(*Writer).CreateRaw", Method, 17}, ++ {"(*Writer).Flush", Method, 4}, ++ {"(*Writer).RegisterCompressor", Method, 6}, ++ {"(*Writer).SetComment", Method, 10}, ++ {"(*Writer).SetOffset", Method, 5}, ++ {"Compressor", Type, 2}, ++ {"Decompressor", Type, 2}, ++ {"Deflate", Const, 0}, ++ {"ErrAlgorithm", Var, 0}, ++ {"ErrChecksum", Var, 0}, ++ {"ErrFormat", Var, 0}, ++ {"ErrInsecurePath", Var, 20}, ++ {"File", Type, 0}, ++ {"File.FileHeader", Field, 0}, ++ {"FileHeader", Type, 0}, ++ {"FileHeader.CRC32", Field, 0}, ++ {"FileHeader.Comment", Field, 0}, ++ {"FileHeader.CompressedSize", Field, 0}, ++ {"FileHeader.CompressedSize64", Field, 1}, ++ {"FileHeader.CreatorVersion", Field, 0}, ++ {"FileHeader.ExternalAttrs", Field, 0}, ++ {"FileHeader.Extra", Field, 0}, ++ {"FileHeader.Flags", Field, 0}, ++ {"FileHeader.Method", Field, 0}, ++ {"FileHeader.Modified", Field, 10}, ++ {"FileHeader.ModifiedDate", Field, 0}, ++ {"FileHeader.ModifiedTime", Field, 0}, ++ {"FileHeader.Name", Field, 0}, ++ {"FileHeader.NonUTF8", Field, 10}, ++ {"FileHeader.ReaderVersion", Field, 0}, ++ {"FileHeader.UncompressedSize", Field, 0}, ++ {"FileHeader.UncompressedSize64", Field, 1}, ++ {"FileInfoHeader", Func, 0}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"OpenReader", Func, 0}, ++ {"ReadCloser", Type, 0}, ++ {"ReadCloser.Reader", Field, 0}, ++ {"Reader", Type, 0}, ++ {"Reader.Comment", Field, 0}, ++ {"Reader.File", Field, 0}, ++ {"RegisterCompressor", Func, 2}, ++ {"RegisterDecompressor", Func, 2}, ++ {"Store", Const, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "bufio": { ++ {"(*Reader).Buffered", Method, 0}, ++ {"(*Reader).Discard", Method, 5}, ++ {"(*Reader).Peek", Method, 0}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Reader).ReadByte", Method, 0}, ++ {"(*Reader).ReadBytes", Method, 0}, ++ {"(*Reader).ReadLine", Method, 0}, ++ {"(*Reader).ReadRune", Method, 0}, ++ {"(*Reader).ReadSlice", Method, 0}, ++ {"(*Reader).ReadString", Method, 0}, ++ {"(*Reader).Reset", Method, 2}, ++ {"(*Reader).Size", Method, 10}, ++ {"(*Reader).UnreadByte", Method, 0}, ++ {"(*Reader).UnreadRune", Method, 0}, ++ {"(*Reader).WriteTo", Method, 1}, ++ {"(*Scanner).Buffer", Method, 6}, ++ {"(*Scanner).Bytes", Method, 1}, ++ {"(*Scanner).Err", Method, 1}, ++ {"(*Scanner).Scan", Method, 1}, ++ {"(*Scanner).Split", Method, 1}, ++ {"(*Scanner).Text", Method, 1}, ++ {"(*Writer).Available", Method, 0}, ++ {"(*Writer).AvailableBuffer", Method, 18}, ++ {"(*Writer).Buffered", Method, 0}, ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).ReadFrom", Method, 1}, ++ {"(*Writer).Reset", Method, 2}, ++ {"(*Writer).Size", Method, 10}, ++ {"(*Writer).Write", Method, 0}, ++ {"(*Writer).WriteByte", Method, 0}, ++ {"(*Writer).WriteRune", Method, 0}, ++ {"(*Writer).WriteString", Method, 0}, ++ {"(ReadWriter).Available", Method, 0}, ++ {"(ReadWriter).AvailableBuffer", Method, 18}, ++ {"(ReadWriter).Discard", Method, 5}, ++ {"(ReadWriter).Flush", Method, 0}, ++ {"(ReadWriter).Peek", Method, 0}, ++ {"(ReadWriter).Read", Method, 0}, ++ {"(ReadWriter).ReadByte", Method, 0}, ++ {"(ReadWriter).ReadBytes", Method, 0}, ++ {"(ReadWriter).ReadFrom", Method, 1}, ++ {"(ReadWriter).ReadLine", Method, 0}, ++ {"(ReadWriter).ReadRune", Method, 0}, ++ {"(ReadWriter).ReadSlice", Method, 0}, ++ {"(ReadWriter).ReadString", Method, 0}, ++ {"(ReadWriter).UnreadByte", Method, 0}, ++ {"(ReadWriter).UnreadRune", Method, 0}, ++ {"(ReadWriter).Write", Method, 0}, ++ {"(ReadWriter).WriteByte", Method, 0}, ++ {"(ReadWriter).WriteRune", Method, 0}, ++ {"(ReadWriter).WriteString", Method, 0}, ++ {"(ReadWriter).WriteTo", Method, 1}, ++ {"ErrAdvanceTooFar", Var, 1}, ++ {"ErrBadReadCount", Var, 15}, ++ {"ErrBufferFull", Var, 0}, ++ {"ErrFinalToken", Var, 6}, ++ {"ErrInvalidUnreadByte", Var, 0}, ++ {"ErrInvalidUnreadRune", Var, 0}, ++ {"ErrNegativeAdvance", Var, 1}, ++ {"ErrNegativeCount", Var, 0}, ++ {"ErrTooLong", Var, 1}, ++ {"MaxScanTokenSize", Const, 1}, ++ {"NewReadWriter", Func, 0}, ++ {"NewReader", Func, 0}, ++ {"NewReaderSize", Func, 0}, ++ {"NewScanner", Func, 1}, ++ {"NewWriter", Func, 0}, ++ {"NewWriterSize", Func, 0}, ++ {"ReadWriter", Type, 0}, ++ {"ReadWriter.Reader", Field, 0}, ++ {"ReadWriter.Writer", Field, 0}, ++ {"Reader", Type, 0}, ++ {"ScanBytes", Func, 1}, ++ {"ScanLines", Func, 1}, ++ {"ScanRunes", Func, 1}, ++ {"ScanWords", Func, 1}, ++ {"Scanner", Type, 1}, ++ {"SplitFunc", Type, 1}, ++ {"Writer", Type, 0}, ++ }, ++ "bytes": { ++ {"(*Buffer).Available", Method, 21}, ++ {"(*Buffer).AvailableBuffer", Method, 21}, ++ {"(*Buffer).Bytes", Method, 0}, ++ {"(*Buffer).Cap", Method, 5}, ++ {"(*Buffer).Grow", Method, 1}, ++ {"(*Buffer).Len", Method, 0}, ++ {"(*Buffer).Next", Method, 0}, ++ {"(*Buffer).Read", Method, 0}, ++ {"(*Buffer).ReadByte", Method, 0}, ++ {"(*Buffer).ReadBytes", Method, 0}, ++ {"(*Buffer).ReadFrom", Method, 0}, ++ {"(*Buffer).ReadRune", Method, 0}, ++ {"(*Buffer).ReadString", Method, 0}, ++ {"(*Buffer).Reset", Method, 0}, ++ {"(*Buffer).String", Method, 0}, ++ {"(*Buffer).Truncate", Method, 0}, ++ {"(*Buffer).UnreadByte", Method, 0}, ++ {"(*Buffer).UnreadRune", Method, 0}, ++ {"(*Buffer).Write", Method, 0}, ++ {"(*Buffer).WriteByte", Method, 0}, ++ {"(*Buffer).WriteRune", Method, 0}, ++ {"(*Buffer).WriteString", Method, 0}, ++ {"(*Buffer).WriteTo", Method, 0}, ++ {"(*Reader).Len", Method, 0}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Reader).ReadAt", Method, 0}, ++ {"(*Reader).ReadByte", Method, 0}, ++ {"(*Reader).ReadRune", Method, 0}, ++ {"(*Reader).Reset", Method, 7}, ++ {"(*Reader).Seek", Method, 0}, ++ {"(*Reader).Size", Method, 5}, ++ {"(*Reader).UnreadByte", Method, 0}, ++ {"(*Reader).UnreadRune", Method, 0}, ++ {"(*Reader).WriteTo", Method, 1}, ++ {"Buffer", Type, 0}, ++ {"Clone", Func, 20}, ++ {"Compare", Func, 0}, ++ {"Contains", Func, 0}, ++ {"ContainsAny", Func, 7}, ++ {"ContainsFunc", Func, 21}, ++ {"ContainsRune", Func, 7}, ++ {"Count", Func, 0}, ++ {"Cut", Func, 18}, ++ {"CutPrefix", Func, 20}, ++ {"CutSuffix", Func, 20}, ++ {"Equal", Func, 0}, ++ {"EqualFold", Func, 0}, ++ {"ErrTooLarge", Var, 0}, ++ {"Fields", Func, 0}, ++ {"FieldsFunc", Func, 0}, ++ {"HasPrefix", Func, 0}, ++ {"HasSuffix", Func, 0}, ++ {"Index", Func, 0}, ++ {"IndexAny", Func, 0}, ++ {"IndexByte", Func, 0}, ++ {"IndexFunc", Func, 0}, ++ {"IndexRune", Func, 0}, ++ {"Join", Func, 0}, ++ {"LastIndex", Func, 0}, ++ {"LastIndexAny", Func, 0}, ++ {"LastIndexByte", Func, 5}, ++ {"LastIndexFunc", Func, 0}, ++ {"Map", Func, 0}, ++ {"MinRead", Const, 0}, ++ {"NewBuffer", Func, 0}, ++ {"NewBufferString", Func, 0}, ++ {"NewReader", Func, 0}, ++ {"Reader", Type, 0}, ++ {"Repeat", Func, 0}, ++ {"Replace", Func, 0}, ++ {"ReplaceAll", Func, 12}, ++ {"Runes", Func, 0}, ++ {"Split", Func, 0}, ++ {"SplitAfter", Func, 0}, ++ {"SplitAfterN", Func, 0}, ++ {"SplitN", Func, 0}, ++ {"Title", Func, 0}, ++ {"ToLower", Func, 0}, ++ {"ToLowerSpecial", Func, 0}, ++ {"ToTitle", Func, 0}, ++ {"ToTitleSpecial", Func, 0}, ++ {"ToUpper", Func, 0}, ++ {"ToUpperSpecial", Func, 0}, ++ {"ToValidUTF8", Func, 13}, ++ {"Trim", Func, 0}, ++ {"TrimFunc", Func, 0}, ++ {"TrimLeft", Func, 0}, ++ {"TrimLeftFunc", Func, 0}, ++ {"TrimPrefix", Func, 1}, ++ {"TrimRight", Func, 0}, ++ {"TrimRightFunc", Func, 0}, ++ {"TrimSpace", Func, 0}, ++ {"TrimSuffix", Func, 1}, ++ }, ++ "cmp": { ++ {"Compare", Func, 21}, ++ {"Less", Func, 21}, ++ {"Or", Func, 22}, ++ {"Ordered", Type, 21}, ++ }, ++ "compress/bzip2": { ++ {"(StructuralError).Error", Method, 0}, ++ {"NewReader", Func, 0}, ++ {"StructuralError", Type, 0}, ++ }, ++ "compress/flate": { ++ {"(*ReadError).Error", Method, 0}, ++ {"(*WriteError).Error", Method, 0}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).Reset", Method, 2}, ++ {"(*Writer).Write", Method, 0}, ++ {"(CorruptInputError).Error", Method, 0}, ++ {"(InternalError).Error", Method, 0}, ++ {"BestCompression", Const, 0}, ++ {"BestSpeed", Const, 0}, ++ {"CorruptInputError", Type, 0}, ++ {"DefaultCompression", Const, 0}, ++ {"HuffmanOnly", Const, 7}, ++ {"InternalError", Type, 0}, ++ {"NewReader", Func, 0}, ++ {"NewReaderDict", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"NewWriterDict", Func, 0}, ++ {"NoCompression", Const, 0}, ++ {"ReadError", Type, 0}, ++ {"ReadError.Err", Field, 0}, ++ {"ReadError.Offset", Field, 0}, ++ {"Reader", Type, 0}, ++ {"Resetter", Type, 4}, ++ {"WriteError", Type, 0}, ++ {"WriteError.Err", Field, 0}, ++ {"WriteError.Offset", Field, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "compress/gzip": { ++ {"(*Reader).Close", Method, 0}, ++ {"(*Reader).Multistream", Method, 4}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Reader).Reset", Method, 3}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Flush", Method, 1}, ++ {"(*Writer).Reset", Method, 2}, ++ {"(*Writer).Write", Method, 0}, ++ {"BestCompression", Const, 0}, ++ {"BestSpeed", Const, 0}, ++ {"DefaultCompression", Const, 0}, ++ {"ErrChecksum", Var, 0}, ++ {"ErrHeader", Var, 0}, ++ {"Header", Type, 0}, ++ {"Header.Comment", Field, 0}, ++ {"Header.Extra", Field, 0}, ++ {"Header.ModTime", Field, 0}, ++ {"Header.Name", Field, 0}, ++ {"Header.OS", Field, 0}, ++ {"HuffmanOnly", Const, 8}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"NewWriterLevel", Func, 0}, ++ {"NoCompression", Const, 0}, ++ {"Reader", Type, 0}, ++ {"Reader.Header", Field, 0}, ++ {"Writer", Type, 0}, ++ {"Writer.Header", Field, 0}, ++ }, ++ "compress/lzw": { ++ {"(*Reader).Close", Method, 17}, ++ {"(*Reader).Read", Method, 17}, ++ {"(*Reader).Reset", Method, 17}, ++ {"(*Writer).Close", Method, 17}, ++ {"(*Writer).Reset", Method, 17}, ++ {"(*Writer).Write", Method, 17}, ++ {"LSB", Const, 0}, ++ {"MSB", Const, 0}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"Order", Type, 0}, ++ {"Reader", Type, 17}, ++ {"Writer", Type, 17}, ++ }, ++ "compress/zlib": { ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).Reset", Method, 2}, ++ {"(*Writer).Write", Method, 0}, ++ {"BestCompression", Const, 0}, ++ {"BestSpeed", Const, 0}, ++ {"DefaultCompression", Const, 0}, ++ {"ErrChecksum", Var, 0}, ++ {"ErrDictionary", Var, 0}, ++ {"ErrHeader", Var, 0}, ++ {"HuffmanOnly", Const, 8}, ++ {"NewReader", Func, 0}, ++ {"NewReaderDict", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"NewWriterLevel", Func, 0}, ++ {"NewWriterLevelDict", Func, 0}, ++ {"NoCompression", Const, 0}, ++ {"Resetter", Type, 4}, ++ {"Writer", Type, 0}, ++ }, ++ "container/heap": { ++ {"Fix", Func, 2}, ++ {"Init", Func, 0}, ++ {"Interface", Type, 0}, ++ {"Pop", Func, 0}, ++ {"Push", Func, 0}, ++ {"Remove", Func, 0}, ++ }, ++ "container/list": { ++ {"(*Element).Next", Method, 0}, ++ {"(*Element).Prev", Method, 0}, ++ {"(*List).Back", Method, 0}, ++ {"(*List).Front", Method, 0}, ++ {"(*List).Init", Method, 0}, ++ {"(*List).InsertAfter", Method, 0}, ++ {"(*List).InsertBefore", Method, 0}, ++ {"(*List).Len", Method, 0}, ++ {"(*List).MoveAfter", Method, 2}, ++ {"(*List).MoveBefore", Method, 2}, ++ {"(*List).MoveToBack", Method, 0}, ++ {"(*List).MoveToFront", Method, 0}, ++ {"(*List).PushBack", Method, 0}, ++ {"(*List).PushBackList", Method, 0}, ++ {"(*List).PushFront", Method, 0}, ++ {"(*List).PushFrontList", Method, 0}, ++ {"(*List).Remove", Method, 0}, ++ {"Element", Type, 0}, ++ {"Element.Value", Field, 0}, ++ {"List", Type, 0}, ++ {"New", Func, 0}, ++ }, ++ "container/ring": { ++ {"(*Ring).Do", Method, 0}, ++ {"(*Ring).Len", Method, 0}, ++ {"(*Ring).Link", Method, 0}, ++ {"(*Ring).Move", Method, 0}, ++ {"(*Ring).Next", Method, 0}, ++ {"(*Ring).Prev", Method, 0}, ++ {"(*Ring).Unlink", Method, 0}, ++ {"New", Func, 0}, ++ {"Ring", Type, 0}, ++ {"Ring.Value", Field, 0}, ++ }, ++ "context": { ++ {"AfterFunc", Func, 21}, ++ {"Background", Func, 7}, ++ {"CancelCauseFunc", Type, 20}, ++ {"CancelFunc", Type, 7}, ++ {"Canceled", Var, 7}, ++ {"Cause", Func, 20}, ++ {"Context", Type, 7}, ++ {"DeadlineExceeded", Var, 7}, ++ {"TODO", Func, 7}, ++ {"WithCancel", Func, 7}, ++ {"WithCancelCause", Func, 20}, ++ {"WithDeadline", Func, 7}, ++ {"WithDeadlineCause", Func, 21}, ++ {"WithTimeout", Func, 7}, ++ {"WithTimeoutCause", Func, 21}, ++ {"WithValue", Func, 7}, ++ {"WithoutCancel", Func, 21}, ++ }, ++ "crypto": { ++ {"(Hash).Available", Method, 0}, ++ {"(Hash).HashFunc", Method, 4}, ++ {"(Hash).New", Method, 0}, ++ {"(Hash).Size", Method, 0}, ++ {"(Hash).String", Method, 15}, ++ {"BLAKE2b_256", Const, 9}, ++ {"BLAKE2b_384", Const, 9}, ++ {"BLAKE2b_512", Const, 9}, ++ {"BLAKE2s_256", Const, 9}, ++ {"Decrypter", Type, 5}, ++ {"DecrypterOpts", Type, 5}, ++ {"Hash", Type, 0}, ++ {"MD4", Const, 0}, ++ {"MD5", Const, 0}, ++ {"MD5SHA1", Const, 0}, ++ {"PrivateKey", Type, 0}, ++ {"PublicKey", Type, 2}, ++ {"RIPEMD160", Const, 0}, ++ {"RegisterHash", Func, 0}, ++ {"SHA1", Const, 0}, ++ {"SHA224", Const, 0}, ++ {"SHA256", Const, 0}, ++ {"SHA384", Const, 0}, ++ {"SHA3_224", Const, 4}, ++ {"SHA3_256", Const, 4}, ++ {"SHA3_384", Const, 4}, ++ {"SHA3_512", Const, 4}, ++ {"SHA512", Const, 0}, ++ {"SHA512_224", Const, 5}, ++ {"SHA512_256", Const, 5}, ++ {"Signer", Type, 4}, ++ {"SignerOpts", Type, 4}, ++ }, ++ "crypto/aes": { ++ {"(KeySizeError).Error", Method, 0}, ++ {"BlockSize", Const, 0}, ++ {"KeySizeError", Type, 0}, ++ {"NewCipher", Func, 0}, ++ }, ++ "crypto/cipher": { ++ {"(StreamReader).Read", Method, 0}, ++ {"(StreamWriter).Close", Method, 0}, ++ {"(StreamWriter).Write", Method, 0}, ++ {"AEAD", Type, 2}, ++ {"Block", Type, 0}, ++ {"BlockMode", Type, 0}, ++ {"NewCBCDecrypter", Func, 0}, ++ {"NewCBCEncrypter", Func, 0}, ++ {"NewCFBDecrypter", Func, 0}, ++ {"NewCFBEncrypter", Func, 0}, ++ {"NewCTR", Func, 0}, ++ {"NewGCM", Func, 2}, ++ {"NewGCMWithNonceSize", Func, 5}, ++ {"NewGCMWithTagSize", Func, 11}, ++ {"NewOFB", Func, 0}, ++ {"Stream", Type, 0}, ++ {"StreamReader", Type, 0}, ++ {"StreamReader.R", Field, 0}, ++ {"StreamReader.S", Field, 0}, ++ {"StreamWriter", Type, 0}, ++ {"StreamWriter.Err", Field, 0}, ++ {"StreamWriter.S", Field, 0}, ++ {"StreamWriter.W", Field, 0}, ++ }, ++ "crypto/des": { ++ {"(KeySizeError).Error", Method, 0}, ++ {"BlockSize", Const, 0}, ++ {"KeySizeError", Type, 0}, ++ {"NewCipher", Func, 0}, ++ {"NewTripleDESCipher", Func, 0}, ++ }, ++ "crypto/dsa": { ++ {"ErrInvalidPublicKey", Var, 0}, ++ {"GenerateKey", Func, 0}, ++ {"GenerateParameters", Func, 0}, ++ {"L1024N160", Const, 0}, ++ {"L2048N224", Const, 0}, ++ {"L2048N256", Const, 0}, ++ {"L3072N256", Const, 0}, ++ {"ParameterSizes", Type, 0}, ++ {"Parameters", Type, 0}, ++ {"Parameters.G", Field, 0}, ++ {"Parameters.P", Field, 0}, ++ {"Parameters.Q", Field, 0}, ++ {"PrivateKey", Type, 0}, ++ {"PrivateKey.PublicKey", Field, 0}, ++ {"PrivateKey.X", Field, 0}, ++ {"PublicKey", Type, 0}, ++ {"PublicKey.Parameters", Field, 0}, ++ {"PublicKey.Y", Field, 0}, ++ {"Sign", Func, 0}, ++ {"Verify", Func, 0}, ++ }, ++ "crypto/ecdh": { ++ {"(*PrivateKey).Bytes", Method, 20}, ++ {"(*PrivateKey).Curve", Method, 20}, ++ {"(*PrivateKey).ECDH", Method, 20}, ++ {"(*PrivateKey).Equal", Method, 20}, ++ {"(*PrivateKey).Public", Method, 20}, ++ {"(*PrivateKey).PublicKey", Method, 20}, ++ {"(*PublicKey).Bytes", Method, 20}, ++ {"(*PublicKey).Curve", Method, 20}, ++ {"(*PublicKey).Equal", Method, 20}, ++ {"Curve", Type, 20}, ++ {"P256", Func, 20}, ++ {"P384", Func, 20}, ++ {"P521", Func, 20}, ++ {"PrivateKey", Type, 20}, ++ {"PublicKey", Type, 20}, ++ {"X25519", Func, 20}, ++ }, ++ "crypto/ecdsa": { ++ {"(*PrivateKey).ECDH", Method, 20}, ++ {"(*PrivateKey).Equal", Method, 15}, ++ {"(*PrivateKey).Public", Method, 4}, ++ {"(*PrivateKey).Sign", Method, 4}, ++ {"(*PublicKey).ECDH", Method, 20}, ++ {"(*PublicKey).Equal", Method, 15}, ++ {"(PrivateKey).Add", Method, 0}, ++ {"(PrivateKey).Double", Method, 0}, ++ {"(PrivateKey).IsOnCurve", Method, 0}, ++ {"(PrivateKey).Params", Method, 0}, ++ {"(PrivateKey).ScalarBaseMult", Method, 0}, ++ {"(PrivateKey).ScalarMult", Method, 0}, ++ {"(PublicKey).Add", Method, 0}, ++ {"(PublicKey).Double", Method, 0}, ++ {"(PublicKey).IsOnCurve", Method, 0}, ++ {"(PublicKey).Params", Method, 0}, ++ {"(PublicKey).ScalarBaseMult", Method, 0}, ++ {"(PublicKey).ScalarMult", Method, 0}, ++ {"GenerateKey", Func, 0}, ++ {"PrivateKey", Type, 0}, ++ {"PrivateKey.D", Field, 0}, ++ {"PrivateKey.PublicKey", Field, 0}, ++ {"PublicKey", Type, 0}, ++ {"PublicKey.Curve", Field, 0}, ++ {"PublicKey.X", Field, 0}, ++ {"PublicKey.Y", Field, 0}, ++ {"Sign", Func, 0}, ++ {"SignASN1", Func, 15}, ++ {"Verify", Func, 0}, ++ {"VerifyASN1", Func, 15}, ++ }, ++ "crypto/ed25519": { ++ {"(*Options).HashFunc", Method, 20}, ++ {"(PrivateKey).Equal", Method, 15}, ++ {"(PrivateKey).Public", Method, 13}, ++ {"(PrivateKey).Seed", Method, 13}, ++ {"(PrivateKey).Sign", Method, 13}, ++ {"(PublicKey).Equal", Method, 15}, ++ {"GenerateKey", Func, 13}, ++ {"NewKeyFromSeed", Func, 13}, ++ {"Options", Type, 20}, ++ {"Options.Context", Field, 20}, ++ {"Options.Hash", Field, 20}, ++ {"PrivateKey", Type, 13}, ++ {"PrivateKeySize", Const, 13}, ++ {"PublicKey", Type, 13}, ++ {"PublicKeySize", Const, 13}, ++ {"SeedSize", Const, 13}, ++ {"Sign", Func, 13}, ++ {"SignatureSize", Const, 13}, ++ {"Verify", Func, 13}, ++ {"VerifyWithOptions", Func, 20}, ++ }, ++ "crypto/elliptic": { ++ {"(*CurveParams).Add", Method, 0}, ++ {"(*CurveParams).Double", Method, 0}, ++ {"(*CurveParams).IsOnCurve", Method, 0}, ++ {"(*CurveParams).Params", Method, 0}, ++ {"(*CurveParams).ScalarBaseMult", Method, 0}, ++ {"(*CurveParams).ScalarMult", Method, 0}, ++ {"Curve", Type, 0}, ++ {"CurveParams", Type, 0}, ++ {"CurveParams.B", Field, 0}, ++ {"CurveParams.BitSize", Field, 0}, ++ {"CurveParams.Gx", Field, 0}, ++ {"CurveParams.Gy", Field, 0}, ++ {"CurveParams.N", Field, 0}, ++ {"CurveParams.Name", Field, 5}, ++ {"CurveParams.P", Field, 0}, ++ {"GenerateKey", Func, 0}, ++ {"Marshal", Func, 0}, ++ {"MarshalCompressed", Func, 15}, ++ {"P224", Func, 0}, ++ {"P256", Func, 0}, ++ {"P384", Func, 0}, ++ {"P521", Func, 0}, ++ {"Unmarshal", Func, 0}, ++ {"UnmarshalCompressed", Func, 15}, ++ }, ++ "crypto/hmac": { ++ {"Equal", Func, 1}, ++ {"New", Func, 0}, ++ }, ++ "crypto/md5": { ++ {"BlockSize", Const, 0}, ++ {"New", Func, 0}, ++ {"Size", Const, 0}, ++ {"Sum", Func, 2}, ++ }, ++ "crypto/rand": { ++ {"Int", Func, 0}, ++ {"Prime", Func, 0}, ++ {"Read", Func, 0}, ++ {"Reader", Var, 0}, ++ }, ++ "crypto/rc4": { ++ {"(*Cipher).Reset", Method, 0}, ++ {"(*Cipher).XORKeyStream", Method, 0}, ++ {"(KeySizeError).Error", Method, 0}, ++ {"Cipher", Type, 0}, ++ {"KeySizeError", Type, 0}, ++ {"NewCipher", Func, 0}, ++ }, ++ "crypto/rsa": { ++ {"(*PSSOptions).HashFunc", Method, 4}, ++ {"(*PrivateKey).Decrypt", Method, 5}, ++ {"(*PrivateKey).Equal", Method, 15}, ++ {"(*PrivateKey).Precompute", Method, 0}, ++ {"(*PrivateKey).Public", Method, 4}, ++ {"(*PrivateKey).Sign", Method, 4}, ++ {"(*PrivateKey).Size", Method, 11}, ++ {"(*PrivateKey).Validate", Method, 0}, ++ {"(*PublicKey).Equal", Method, 15}, ++ {"(*PublicKey).Size", Method, 11}, ++ {"CRTValue", Type, 0}, ++ {"CRTValue.Coeff", Field, 0}, ++ {"CRTValue.Exp", Field, 0}, ++ {"CRTValue.R", Field, 0}, ++ {"DecryptOAEP", Func, 0}, ++ {"DecryptPKCS1v15", Func, 0}, ++ {"DecryptPKCS1v15SessionKey", Func, 0}, ++ {"EncryptOAEP", Func, 0}, ++ {"EncryptPKCS1v15", Func, 0}, ++ {"ErrDecryption", Var, 0}, ++ {"ErrMessageTooLong", Var, 0}, ++ {"ErrVerification", Var, 0}, ++ {"GenerateKey", Func, 0}, ++ {"GenerateMultiPrimeKey", Func, 0}, ++ {"OAEPOptions", Type, 5}, ++ {"OAEPOptions.Hash", Field, 5}, ++ {"OAEPOptions.Label", Field, 5}, ++ {"OAEPOptions.MGFHash", Field, 20}, ++ {"PKCS1v15DecryptOptions", Type, 5}, ++ {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5}, ++ {"PSSOptions", Type, 2}, ++ {"PSSOptions.Hash", Field, 4}, ++ {"PSSOptions.SaltLength", Field, 2}, ++ {"PSSSaltLengthAuto", Const, 2}, ++ {"PSSSaltLengthEqualsHash", Const, 2}, ++ {"PrecomputedValues", Type, 0}, ++ {"PrecomputedValues.CRTValues", Field, 0}, ++ {"PrecomputedValues.Dp", Field, 0}, ++ {"PrecomputedValues.Dq", Field, 0}, ++ {"PrecomputedValues.Qinv", Field, 0}, ++ {"PrivateKey", Type, 0}, ++ {"PrivateKey.D", Field, 0}, ++ {"PrivateKey.Precomputed", Field, 0}, ++ {"PrivateKey.Primes", Field, 0}, ++ {"PrivateKey.PublicKey", Field, 0}, ++ {"PublicKey", Type, 0}, ++ {"PublicKey.E", Field, 0}, ++ {"PublicKey.N", Field, 0}, ++ {"SignPKCS1v15", Func, 0}, ++ {"SignPSS", Func, 2}, ++ {"VerifyPKCS1v15", Func, 0}, ++ {"VerifyPSS", Func, 2}, ++ }, ++ "crypto/sha1": { ++ {"BlockSize", Const, 0}, ++ {"New", Func, 0}, ++ {"Size", Const, 0}, ++ {"Sum", Func, 2}, ++ }, ++ "crypto/sha256": { ++ {"BlockSize", Const, 0}, ++ {"New", Func, 0}, ++ {"New224", Func, 0}, ++ {"Size", Const, 0}, ++ {"Size224", Const, 0}, ++ {"Sum224", Func, 2}, ++ {"Sum256", Func, 2}, ++ }, ++ "crypto/sha512": { ++ {"BlockSize", Const, 0}, ++ {"New", Func, 0}, ++ {"New384", Func, 0}, ++ {"New512_224", Func, 5}, ++ {"New512_256", Func, 5}, ++ {"Size", Const, 0}, ++ {"Size224", Const, 5}, ++ {"Size256", Const, 5}, ++ {"Size384", Const, 0}, ++ {"Sum384", Func, 2}, ++ {"Sum512", Func, 2}, ++ {"Sum512_224", Func, 5}, ++ {"Sum512_256", Func, 5}, ++ }, ++ "crypto/subtle": { ++ {"ConstantTimeByteEq", Func, 0}, ++ {"ConstantTimeCompare", Func, 0}, ++ {"ConstantTimeCopy", Func, 0}, ++ {"ConstantTimeEq", Func, 0}, ++ {"ConstantTimeLessOrEq", Func, 2}, ++ {"ConstantTimeSelect", Func, 0}, ++ {"XORBytes", Func, 20}, ++ }, ++ "crypto/tls": { ++ {"(*CertificateRequestInfo).Context", Method, 17}, ++ {"(*CertificateRequestInfo).SupportsCertificate", Method, 14}, ++ {"(*CertificateVerificationError).Error", Method, 20}, ++ {"(*CertificateVerificationError).Unwrap", Method, 20}, ++ {"(*ClientHelloInfo).Context", Method, 17}, ++ {"(*ClientHelloInfo).SupportsCertificate", Method, 14}, ++ {"(*ClientSessionState).ResumptionState", Method, 21}, ++ {"(*Config).BuildNameToCertificate", Method, 0}, ++ {"(*Config).Clone", Method, 8}, ++ {"(*Config).DecryptTicket", Method, 21}, ++ {"(*Config).EncryptTicket", Method, 21}, ++ {"(*Config).SetSessionTicketKeys", Method, 5}, ++ {"(*Conn).Close", Method, 0}, ++ {"(*Conn).CloseWrite", Method, 8}, ++ {"(*Conn).ConnectionState", Method, 0}, ++ {"(*Conn).Handshake", Method, 0}, ++ {"(*Conn).HandshakeContext", Method, 17}, ++ {"(*Conn).LocalAddr", Method, 0}, ++ {"(*Conn).NetConn", Method, 18}, ++ {"(*Conn).OCSPResponse", Method, 0}, ++ {"(*Conn).Read", Method, 0}, ++ {"(*Conn).RemoteAddr", Method, 0}, ++ {"(*Conn).SetDeadline", Method, 0}, ++ {"(*Conn).SetReadDeadline", Method, 0}, ++ {"(*Conn).SetWriteDeadline", Method, 0}, ++ {"(*Conn).VerifyHostname", Method, 0}, ++ {"(*Conn).Write", Method, 0}, ++ {"(*ConnectionState).ExportKeyingMaterial", Method, 11}, ++ {"(*Dialer).Dial", Method, 15}, ++ {"(*Dialer).DialContext", Method, 15}, ++ {"(*QUICConn).Close", Method, 21}, ++ {"(*QUICConn).ConnectionState", Method, 21}, ++ {"(*QUICConn).HandleData", Method, 21}, ++ {"(*QUICConn).NextEvent", Method, 21}, ++ {"(*QUICConn).SendSessionTicket", Method, 21}, ++ {"(*QUICConn).SetTransportParameters", Method, 21}, ++ {"(*QUICConn).Start", Method, 21}, ++ {"(*SessionState).Bytes", Method, 21}, ++ {"(AlertError).Error", Method, 21}, ++ {"(ClientAuthType).String", Method, 15}, ++ {"(CurveID).String", Method, 15}, ++ {"(QUICEncryptionLevel).String", Method, 21}, ++ {"(RecordHeaderError).Error", Method, 6}, ++ {"(SignatureScheme).String", Method, 15}, ++ {"AlertError", Type, 21}, ++ {"Certificate", Type, 0}, ++ {"Certificate.Certificate", Field, 0}, ++ {"Certificate.Leaf", Field, 0}, ++ {"Certificate.OCSPStaple", Field, 0}, ++ {"Certificate.PrivateKey", Field, 0}, ++ {"Certificate.SignedCertificateTimestamps", Field, 5}, ++ {"Certificate.SupportedSignatureAlgorithms", Field, 14}, ++ {"CertificateRequestInfo", Type, 8}, ++ {"CertificateRequestInfo.AcceptableCAs", Field, 8}, ++ {"CertificateRequestInfo.SignatureSchemes", Field, 8}, ++ {"CertificateRequestInfo.Version", Field, 14}, ++ {"CertificateVerificationError", Type, 20}, ++ {"CertificateVerificationError.Err", Field, 20}, ++ {"CertificateVerificationError.UnverifiedCertificates", Field, 20}, ++ {"CipherSuite", Type, 14}, ++ {"CipherSuite.ID", Field, 14}, ++ {"CipherSuite.Insecure", Field, 14}, ++ {"CipherSuite.Name", Field, 14}, ++ {"CipherSuite.SupportedVersions", Field, 14}, ++ {"CipherSuiteName", Func, 14}, ++ {"CipherSuites", Func, 14}, ++ {"Client", Func, 0}, ++ {"ClientAuthType", Type, 0}, ++ {"ClientHelloInfo", Type, 4}, ++ {"ClientHelloInfo.CipherSuites", Field, 4}, ++ {"ClientHelloInfo.Conn", Field, 8}, ++ {"ClientHelloInfo.ServerName", Field, 4}, ++ {"ClientHelloInfo.SignatureSchemes", Field, 8}, ++ {"ClientHelloInfo.SupportedCurves", Field, 4}, ++ {"ClientHelloInfo.SupportedPoints", Field, 4}, ++ {"ClientHelloInfo.SupportedProtos", Field, 8}, ++ {"ClientHelloInfo.SupportedVersions", Field, 8}, ++ {"ClientSessionCache", Type, 3}, ++ {"ClientSessionState", Type, 3}, ++ {"Config", Type, 0}, ++ {"Config.Certificates", Field, 0}, ++ {"Config.CipherSuites", Field, 0}, ++ {"Config.ClientAuth", Field, 0}, ++ {"Config.ClientCAs", Field, 0}, ++ {"Config.ClientSessionCache", Field, 3}, ++ {"Config.CurvePreferences", Field, 3}, ++ {"Config.DynamicRecordSizingDisabled", Field, 7}, ++ {"Config.GetCertificate", Field, 4}, ++ {"Config.GetClientCertificate", Field, 8}, ++ {"Config.GetConfigForClient", Field, 8}, ++ {"Config.InsecureSkipVerify", Field, 0}, ++ {"Config.KeyLogWriter", Field, 8}, ++ {"Config.MaxVersion", Field, 2}, ++ {"Config.MinVersion", Field, 2}, ++ {"Config.NameToCertificate", Field, 0}, ++ {"Config.NextProtos", Field, 0}, ++ {"Config.PreferServerCipherSuites", Field, 1}, ++ {"Config.Rand", Field, 0}, ++ {"Config.Renegotiation", Field, 7}, ++ {"Config.RootCAs", Field, 0}, ++ {"Config.ServerName", Field, 0}, ++ {"Config.SessionTicketKey", Field, 1}, ++ {"Config.SessionTicketsDisabled", Field, 1}, ++ {"Config.Time", Field, 0}, ++ {"Config.UnwrapSession", Field, 21}, ++ {"Config.VerifyConnection", Field, 15}, ++ {"Config.VerifyPeerCertificate", Field, 8}, ++ {"Config.WrapSession", Field, 21}, ++ {"Conn", Type, 0}, ++ {"ConnectionState", Type, 0}, ++ {"ConnectionState.CipherSuite", Field, 0}, ++ {"ConnectionState.DidResume", Field, 1}, ++ {"ConnectionState.HandshakeComplete", Field, 0}, ++ {"ConnectionState.NegotiatedProtocol", Field, 0}, ++ {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0}, ++ {"ConnectionState.OCSPResponse", Field, 5}, ++ {"ConnectionState.PeerCertificates", Field, 0}, ++ {"ConnectionState.ServerName", Field, 0}, ++ {"ConnectionState.SignedCertificateTimestamps", Field, 5}, ++ {"ConnectionState.TLSUnique", Field, 4}, ++ {"ConnectionState.VerifiedChains", Field, 0}, ++ {"ConnectionState.Version", Field, 3}, ++ {"CurveID", Type, 3}, ++ {"CurveP256", Const, 3}, ++ {"CurveP384", Const, 3}, ++ {"CurveP521", Const, 3}, ++ {"Dial", Func, 0}, ++ {"DialWithDialer", Func, 3}, ++ {"Dialer", Type, 15}, ++ {"Dialer.Config", Field, 15}, ++ {"Dialer.NetDialer", Field, 15}, ++ {"ECDSAWithP256AndSHA256", Const, 8}, ++ {"ECDSAWithP384AndSHA384", Const, 8}, ++ {"ECDSAWithP521AndSHA512", Const, 8}, ++ {"ECDSAWithSHA1", Const, 10}, ++ {"Ed25519", Const, 13}, ++ {"InsecureCipherSuites", Func, 14}, ++ {"Listen", Func, 0}, ++ {"LoadX509KeyPair", Func, 0}, ++ {"NewLRUClientSessionCache", Func, 3}, ++ {"NewListener", Func, 0}, ++ {"NewResumptionState", Func, 21}, ++ {"NoClientCert", Const, 0}, ++ {"PKCS1WithSHA1", Const, 8}, ++ {"PKCS1WithSHA256", Const, 8}, ++ {"PKCS1WithSHA384", Const, 8}, ++ {"PKCS1WithSHA512", Const, 8}, ++ {"PSSWithSHA256", Const, 8}, ++ {"PSSWithSHA384", Const, 8}, ++ {"PSSWithSHA512", Const, 8}, ++ {"ParseSessionState", Func, 21}, ++ {"QUICClient", Func, 21}, ++ {"QUICConfig", Type, 21}, ++ {"QUICConfig.TLSConfig", Field, 21}, ++ {"QUICConn", Type, 21}, ++ {"QUICEncryptionLevel", Type, 21}, ++ {"QUICEncryptionLevelApplication", Const, 21}, ++ {"QUICEncryptionLevelEarly", Const, 21}, ++ {"QUICEncryptionLevelHandshake", Const, 21}, ++ {"QUICEncryptionLevelInitial", Const, 21}, ++ {"QUICEvent", Type, 21}, ++ {"QUICEvent.Data", Field, 21}, ++ {"QUICEvent.Kind", Field, 21}, ++ {"QUICEvent.Level", Field, 21}, ++ {"QUICEvent.Suite", Field, 21}, ++ {"QUICEventKind", Type, 21}, ++ {"QUICHandshakeDone", Const, 21}, ++ {"QUICNoEvent", Const, 21}, ++ {"QUICRejectedEarlyData", Const, 21}, ++ {"QUICServer", Func, 21}, ++ {"QUICSessionTicketOptions", Type, 21}, ++ {"QUICSessionTicketOptions.EarlyData", Field, 21}, ++ {"QUICSetReadSecret", Const, 21}, ++ {"QUICSetWriteSecret", Const, 21}, ++ {"QUICTransportParameters", Const, 21}, ++ {"QUICTransportParametersRequired", Const, 21}, ++ {"QUICWriteData", Const, 21}, ++ {"RecordHeaderError", Type, 6}, ++ {"RecordHeaderError.Conn", Field, 12}, ++ {"RecordHeaderError.Msg", Field, 6}, ++ {"RecordHeaderError.RecordHeader", Field, 6}, ++ {"RenegotiateFreelyAsClient", Const, 7}, ++ {"RenegotiateNever", Const, 7}, ++ {"RenegotiateOnceAsClient", Const, 7}, ++ {"RenegotiationSupport", Type, 7}, ++ {"RequestClientCert", Const, 0}, ++ {"RequireAndVerifyClientCert", Const, 0}, ++ {"RequireAnyClientCert", Const, 0}, ++ {"Server", Func, 0}, ++ {"SessionState", Type, 21}, ++ {"SessionState.EarlyData", Field, 21}, ++ {"SessionState.Extra", Field, 21}, ++ {"SignatureScheme", Type, 8}, ++ {"TLS_AES_128_GCM_SHA256", Const, 12}, ++ {"TLS_AES_256_GCM_SHA384", Const, 12}, ++ {"TLS_CHACHA20_POLY1305_SHA256", Const, 12}, ++ {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2}, ++ {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8}, ++ {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2}, ++ {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2}, ++ {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5}, ++ {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8}, ++ {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, ++ {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2}, ++ {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, ++ {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0}, ++ {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, ++ {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2}, ++ {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1}, ++ {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5}, ++ {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8}, ++ {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, ++ {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0}, ++ {"TLS_FALLBACK_SCSV", Const, 4}, ++ {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, ++ {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0}, ++ {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, ++ {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6}, ++ {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1}, ++ {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6}, ++ {"TLS_RSA_WITH_RC4_128_SHA", Const, 0}, ++ {"VerifyClientCertIfGiven", Const, 0}, ++ {"VersionName", Func, 21}, ++ {"VersionSSL30", Const, 2}, ++ {"VersionTLS10", Const, 2}, ++ {"VersionTLS11", Const, 2}, ++ {"VersionTLS12", Const, 2}, ++ {"VersionTLS13", Const, 12}, ++ {"X25519", Const, 8}, ++ {"X509KeyPair", Func, 0}, ++ }, ++ "crypto/x509": { ++ {"(*CertPool).AddCert", Method, 0}, ++ {"(*CertPool).AddCertWithConstraint", Method, 22}, ++ {"(*CertPool).AppendCertsFromPEM", Method, 0}, ++ {"(*CertPool).Clone", Method, 19}, ++ {"(*CertPool).Equal", Method, 19}, ++ {"(*CertPool).Subjects", Method, 0}, ++ {"(*Certificate).CheckCRLSignature", Method, 0}, ++ {"(*Certificate).CheckSignature", Method, 0}, ++ {"(*Certificate).CheckSignatureFrom", Method, 0}, ++ {"(*Certificate).CreateCRL", Method, 0}, ++ {"(*Certificate).Equal", Method, 0}, ++ {"(*Certificate).Verify", Method, 0}, ++ {"(*Certificate).VerifyHostname", Method, 0}, ++ {"(*CertificateRequest).CheckSignature", Method, 5}, ++ {"(*RevocationList).CheckSignatureFrom", Method, 19}, ++ {"(CertificateInvalidError).Error", Method, 0}, ++ {"(ConstraintViolationError).Error", Method, 0}, ++ {"(HostnameError).Error", Method, 0}, ++ {"(InsecureAlgorithmError).Error", Method, 6}, ++ {"(OID).Equal", Method, 22}, ++ {"(OID).EqualASN1OID", Method, 22}, ++ {"(OID).String", Method, 22}, ++ {"(PublicKeyAlgorithm).String", Method, 10}, ++ {"(SignatureAlgorithm).String", Method, 6}, ++ {"(SystemRootsError).Error", Method, 1}, ++ {"(SystemRootsError).Unwrap", Method, 16}, ++ {"(UnhandledCriticalExtension).Error", Method, 0}, ++ {"(UnknownAuthorityError).Error", Method, 0}, ++ {"CANotAuthorizedForExtKeyUsage", Const, 10}, ++ {"CANotAuthorizedForThisName", Const, 0}, ++ {"CertPool", Type, 0}, ++ {"Certificate", Type, 0}, ++ {"Certificate.AuthorityKeyId", Field, 0}, ++ {"Certificate.BasicConstraintsValid", Field, 0}, ++ {"Certificate.CRLDistributionPoints", Field, 2}, ++ {"Certificate.DNSNames", Field, 0}, ++ {"Certificate.EmailAddresses", Field, 0}, ++ {"Certificate.ExcludedDNSDomains", Field, 9}, ++ {"Certificate.ExcludedEmailAddresses", Field, 10}, ++ {"Certificate.ExcludedIPRanges", Field, 10}, ++ {"Certificate.ExcludedURIDomains", Field, 10}, ++ {"Certificate.ExtKeyUsage", Field, 0}, ++ {"Certificate.Extensions", Field, 2}, ++ {"Certificate.ExtraExtensions", Field, 2}, ++ {"Certificate.IPAddresses", Field, 1}, ++ {"Certificate.IsCA", Field, 0}, ++ {"Certificate.Issuer", Field, 0}, ++ {"Certificate.IssuingCertificateURL", Field, 2}, ++ {"Certificate.KeyUsage", Field, 0}, ++ {"Certificate.MaxPathLen", Field, 0}, ++ {"Certificate.MaxPathLenZero", Field, 4}, ++ {"Certificate.NotAfter", Field, 0}, ++ {"Certificate.NotBefore", Field, 0}, ++ {"Certificate.OCSPServer", Field, 2}, ++ {"Certificate.PermittedDNSDomains", Field, 0}, ++ {"Certificate.PermittedDNSDomainsCritical", Field, 0}, ++ {"Certificate.PermittedEmailAddresses", Field, 10}, ++ {"Certificate.PermittedIPRanges", Field, 10}, ++ {"Certificate.PermittedURIDomains", Field, 10}, ++ {"Certificate.Policies", Field, 22}, ++ {"Certificate.PolicyIdentifiers", Field, 0}, ++ {"Certificate.PublicKey", Field, 0}, ++ {"Certificate.PublicKeyAlgorithm", Field, 0}, ++ {"Certificate.Raw", Field, 0}, ++ {"Certificate.RawIssuer", Field, 0}, ++ {"Certificate.RawSubject", Field, 0}, ++ {"Certificate.RawSubjectPublicKeyInfo", Field, 0}, ++ {"Certificate.RawTBSCertificate", Field, 0}, ++ {"Certificate.SerialNumber", Field, 0}, ++ {"Certificate.Signature", Field, 0}, ++ {"Certificate.SignatureAlgorithm", Field, 0}, ++ {"Certificate.Subject", Field, 0}, ++ {"Certificate.SubjectKeyId", Field, 0}, ++ {"Certificate.URIs", Field, 10}, ++ {"Certificate.UnhandledCriticalExtensions", Field, 5}, ++ {"Certificate.UnknownExtKeyUsage", Field, 0}, ++ {"Certificate.Version", Field, 0}, ++ {"CertificateInvalidError", Type, 0}, ++ {"CertificateInvalidError.Cert", Field, 0}, ++ {"CertificateInvalidError.Detail", Field, 10}, ++ {"CertificateInvalidError.Reason", Field, 0}, ++ {"CertificateRequest", Type, 3}, ++ {"CertificateRequest.Attributes", Field, 3}, ++ {"CertificateRequest.DNSNames", Field, 3}, ++ {"CertificateRequest.EmailAddresses", Field, 3}, ++ {"CertificateRequest.Extensions", Field, 3}, ++ {"CertificateRequest.ExtraExtensions", Field, 3}, ++ {"CertificateRequest.IPAddresses", Field, 3}, ++ {"CertificateRequest.PublicKey", Field, 3}, ++ {"CertificateRequest.PublicKeyAlgorithm", Field, 3}, ++ {"CertificateRequest.Raw", Field, 3}, ++ {"CertificateRequest.RawSubject", Field, 3}, ++ {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3}, ++ {"CertificateRequest.RawTBSCertificateRequest", Field, 3}, ++ {"CertificateRequest.Signature", Field, 3}, ++ {"CertificateRequest.SignatureAlgorithm", Field, 3}, ++ {"CertificateRequest.Subject", Field, 3}, ++ {"CertificateRequest.URIs", Field, 10}, ++ {"CertificateRequest.Version", Field, 3}, ++ {"ConstraintViolationError", Type, 0}, ++ {"CreateCertificate", Func, 0}, ++ {"CreateCertificateRequest", Func, 3}, ++ {"CreateRevocationList", Func, 15}, ++ {"DSA", Const, 0}, ++ {"DSAWithSHA1", Const, 0}, ++ {"DSAWithSHA256", Const, 0}, ++ {"DecryptPEMBlock", Func, 1}, ++ {"ECDSA", Const, 1}, ++ {"ECDSAWithSHA1", Const, 1}, ++ {"ECDSAWithSHA256", Const, 1}, ++ {"ECDSAWithSHA384", Const, 1}, ++ {"ECDSAWithSHA512", Const, 1}, ++ {"Ed25519", Const, 13}, ++ {"EncryptPEMBlock", Func, 1}, ++ {"ErrUnsupportedAlgorithm", Var, 0}, ++ {"Expired", Const, 0}, ++ {"ExtKeyUsage", Type, 0}, ++ {"ExtKeyUsageAny", Const, 0}, ++ {"ExtKeyUsageClientAuth", Const, 0}, ++ {"ExtKeyUsageCodeSigning", Const, 0}, ++ {"ExtKeyUsageEmailProtection", Const, 0}, ++ {"ExtKeyUsageIPSECEndSystem", Const, 1}, ++ {"ExtKeyUsageIPSECTunnel", Const, 1}, ++ {"ExtKeyUsageIPSECUser", Const, 1}, ++ {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10}, ++ {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10}, ++ {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1}, ++ {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1}, ++ {"ExtKeyUsageOCSPSigning", Const, 0}, ++ {"ExtKeyUsageServerAuth", Const, 0}, ++ {"ExtKeyUsageTimeStamping", Const, 0}, ++ {"HostnameError", Type, 0}, ++ {"HostnameError.Certificate", Field, 0}, ++ {"HostnameError.Host", Field, 0}, ++ {"IncompatibleUsage", Const, 1}, ++ {"IncorrectPasswordError", Var, 1}, ++ {"InsecureAlgorithmError", Type, 6}, ++ {"InvalidReason", Type, 0}, ++ {"IsEncryptedPEMBlock", Func, 1}, ++ {"KeyUsage", Type, 0}, ++ {"KeyUsageCRLSign", Const, 0}, ++ {"KeyUsageCertSign", Const, 0}, ++ {"KeyUsageContentCommitment", Const, 0}, ++ {"KeyUsageDataEncipherment", Const, 0}, ++ {"KeyUsageDecipherOnly", Const, 0}, ++ {"KeyUsageDigitalSignature", Const, 0}, ++ {"KeyUsageEncipherOnly", Const, 0}, ++ {"KeyUsageKeyAgreement", Const, 0}, ++ {"KeyUsageKeyEncipherment", Const, 0}, ++ {"MD2WithRSA", Const, 0}, ++ {"MD5WithRSA", Const, 0}, ++ {"MarshalECPrivateKey", Func, 2}, ++ {"MarshalPKCS1PrivateKey", Func, 0}, ++ {"MarshalPKCS1PublicKey", Func, 10}, ++ {"MarshalPKCS8PrivateKey", Func, 10}, ++ {"MarshalPKIXPublicKey", Func, 0}, ++ {"NameConstraintsWithoutSANs", Const, 10}, ++ {"NameMismatch", Const, 8}, ++ {"NewCertPool", Func, 0}, ++ {"NotAuthorizedToSign", Const, 0}, ++ {"OID", Type, 22}, ++ {"OIDFromInts", Func, 22}, ++ {"PEMCipher", Type, 1}, ++ {"PEMCipher3DES", Const, 1}, ++ {"PEMCipherAES128", Const, 1}, ++ {"PEMCipherAES192", Const, 1}, ++ {"PEMCipherAES256", Const, 1}, ++ {"PEMCipherDES", Const, 1}, ++ {"ParseCRL", Func, 0}, ++ {"ParseCertificate", Func, 0}, ++ {"ParseCertificateRequest", Func, 3}, ++ {"ParseCertificates", Func, 0}, ++ {"ParseDERCRL", Func, 0}, ++ {"ParseECPrivateKey", Func, 1}, ++ {"ParsePKCS1PrivateKey", Func, 0}, ++ {"ParsePKCS1PublicKey", Func, 10}, ++ {"ParsePKCS8PrivateKey", Func, 0}, ++ {"ParsePKIXPublicKey", Func, 0}, ++ {"ParseRevocationList", Func, 19}, ++ {"PublicKeyAlgorithm", Type, 0}, ++ {"PureEd25519", Const, 13}, ++ {"RSA", Const, 0}, ++ {"RevocationList", Type, 15}, ++ {"RevocationList.AuthorityKeyId", Field, 19}, ++ {"RevocationList.Extensions", Field, 19}, ++ {"RevocationList.ExtraExtensions", Field, 15}, ++ {"RevocationList.Issuer", Field, 19}, ++ {"RevocationList.NextUpdate", Field, 15}, ++ {"RevocationList.Number", Field, 15}, ++ {"RevocationList.Raw", Field, 19}, ++ {"RevocationList.RawIssuer", Field, 19}, ++ {"RevocationList.RawTBSRevocationList", Field, 19}, ++ {"RevocationList.RevokedCertificateEntries", Field, 21}, ++ {"RevocationList.RevokedCertificates", Field, 15}, ++ {"RevocationList.Signature", Field, 19}, ++ {"RevocationList.SignatureAlgorithm", Field, 15}, ++ {"RevocationList.ThisUpdate", Field, 15}, ++ {"RevocationListEntry", Type, 21}, ++ {"RevocationListEntry.Extensions", Field, 21}, ++ {"RevocationListEntry.ExtraExtensions", Field, 21}, ++ {"RevocationListEntry.Raw", Field, 21}, ++ {"RevocationListEntry.ReasonCode", Field, 21}, ++ {"RevocationListEntry.RevocationTime", Field, 21}, ++ {"RevocationListEntry.SerialNumber", Field, 21}, ++ {"SHA1WithRSA", Const, 0}, ++ {"SHA256WithRSA", Const, 0}, ++ {"SHA256WithRSAPSS", Const, 8}, ++ {"SHA384WithRSA", Const, 0}, ++ {"SHA384WithRSAPSS", Const, 8}, ++ {"SHA512WithRSA", Const, 0}, ++ {"SHA512WithRSAPSS", Const, 8}, ++ {"SetFallbackRoots", Func, 20}, ++ {"SignatureAlgorithm", Type, 0}, ++ {"SystemCertPool", Func, 7}, ++ {"SystemRootsError", Type, 1}, ++ {"SystemRootsError.Err", Field, 7}, ++ {"TooManyConstraints", Const, 10}, ++ {"TooManyIntermediates", Const, 0}, ++ {"UnconstrainedName", Const, 10}, ++ {"UnhandledCriticalExtension", Type, 0}, ++ {"UnknownAuthorityError", Type, 0}, ++ {"UnknownAuthorityError.Cert", Field, 8}, ++ {"UnknownPublicKeyAlgorithm", Const, 0}, ++ {"UnknownSignatureAlgorithm", Const, 0}, ++ {"VerifyOptions", Type, 0}, ++ {"VerifyOptions.CurrentTime", Field, 0}, ++ {"VerifyOptions.DNSName", Field, 0}, ++ {"VerifyOptions.Intermediates", Field, 0}, ++ {"VerifyOptions.KeyUsages", Field, 1}, ++ {"VerifyOptions.MaxConstraintComparisions", Field, 10}, ++ {"VerifyOptions.Roots", Field, 0}, ++ }, ++ "crypto/x509/pkix": { ++ {"(*CertificateList).HasExpired", Method, 0}, ++ {"(*Name).FillFromRDNSequence", Method, 0}, ++ {"(Name).String", Method, 10}, ++ {"(Name).ToRDNSequence", Method, 0}, ++ {"(RDNSequence).String", Method, 10}, ++ {"AlgorithmIdentifier", Type, 0}, ++ {"AlgorithmIdentifier.Algorithm", Field, 0}, ++ {"AlgorithmIdentifier.Parameters", Field, 0}, ++ {"AttributeTypeAndValue", Type, 0}, ++ {"AttributeTypeAndValue.Type", Field, 0}, ++ {"AttributeTypeAndValue.Value", Field, 0}, ++ {"AttributeTypeAndValueSET", Type, 3}, ++ {"AttributeTypeAndValueSET.Type", Field, 3}, ++ {"AttributeTypeAndValueSET.Value", Field, 3}, ++ {"CertificateList", Type, 0}, ++ {"CertificateList.SignatureAlgorithm", Field, 0}, ++ {"CertificateList.SignatureValue", Field, 0}, ++ {"CertificateList.TBSCertList", Field, 0}, ++ {"Extension", Type, 0}, ++ {"Extension.Critical", Field, 0}, ++ {"Extension.Id", Field, 0}, ++ {"Extension.Value", Field, 0}, ++ {"Name", Type, 0}, ++ {"Name.CommonName", Field, 0}, ++ {"Name.Country", Field, 0}, ++ {"Name.ExtraNames", Field, 5}, ++ {"Name.Locality", Field, 0}, ++ {"Name.Names", Field, 0}, ++ {"Name.Organization", Field, 0}, ++ {"Name.OrganizationalUnit", Field, 0}, ++ {"Name.PostalCode", Field, 0}, ++ {"Name.Province", Field, 0}, ++ {"Name.SerialNumber", Field, 0}, ++ {"Name.StreetAddress", Field, 0}, ++ {"RDNSequence", Type, 0}, ++ {"RelativeDistinguishedNameSET", Type, 0}, ++ {"RevokedCertificate", Type, 0}, ++ {"RevokedCertificate.Extensions", Field, 0}, ++ {"RevokedCertificate.RevocationTime", Field, 0}, ++ {"RevokedCertificate.SerialNumber", Field, 0}, ++ {"TBSCertificateList", Type, 0}, ++ {"TBSCertificateList.Extensions", Field, 0}, ++ {"TBSCertificateList.Issuer", Field, 0}, ++ {"TBSCertificateList.NextUpdate", Field, 0}, ++ {"TBSCertificateList.Raw", Field, 0}, ++ {"TBSCertificateList.RevokedCertificates", Field, 0}, ++ {"TBSCertificateList.Signature", Field, 0}, ++ {"TBSCertificateList.ThisUpdate", Field, 0}, ++ {"TBSCertificateList.Version", Field, 0}, ++ }, ++ "database/sql": { ++ {"(*ColumnType).DatabaseTypeName", Method, 8}, ++ {"(*ColumnType).DecimalSize", Method, 8}, ++ {"(*ColumnType).Length", Method, 8}, ++ {"(*ColumnType).Name", Method, 8}, ++ {"(*ColumnType).Nullable", Method, 8}, ++ {"(*ColumnType).ScanType", Method, 8}, ++ {"(*Conn).BeginTx", Method, 9}, ++ {"(*Conn).Close", Method, 9}, ++ {"(*Conn).ExecContext", Method, 9}, ++ {"(*Conn).PingContext", Method, 9}, ++ {"(*Conn).PrepareContext", Method, 9}, ++ {"(*Conn).QueryContext", Method, 9}, ++ {"(*Conn).QueryRowContext", Method, 9}, ++ {"(*Conn).Raw", Method, 13}, ++ {"(*DB).Begin", Method, 0}, ++ {"(*DB).BeginTx", Method, 8}, ++ {"(*DB).Close", Method, 0}, ++ {"(*DB).Conn", Method, 9}, ++ {"(*DB).Driver", Method, 0}, ++ {"(*DB).Exec", Method, 0}, ++ {"(*DB).ExecContext", Method, 8}, ++ {"(*DB).Ping", Method, 1}, ++ {"(*DB).PingContext", Method, 8}, ++ {"(*DB).Prepare", Method, 0}, ++ {"(*DB).PrepareContext", Method, 8}, ++ {"(*DB).Query", Method, 0}, ++ {"(*DB).QueryContext", Method, 8}, ++ {"(*DB).QueryRow", Method, 0}, ++ {"(*DB).QueryRowContext", Method, 8}, ++ {"(*DB).SetConnMaxIdleTime", Method, 15}, ++ {"(*DB).SetConnMaxLifetime", Method, 6}, ++ {"(*DB).SetMaxIdleConns", Method, 1}, ++ {"(*DB).SetMaxOpenConns", Method, 2}, ++ {"(*DB).Stats", Method, 5}, ++ {"(*Null).Scan", Method, 22}, ++ {"(*NullBool).Scan", Method, 0}, ++ {"(*NullByte).Scan", Method, 17}, ++ {"(*NullFloat64).Scan", Method, 0}, ++ {"(*NullInt16).Scan", Method, 17}, ++ {"(*NullInt32).Scan", Method, 13}, ++ {"(*NullInt64).Scan", Method, 0}, ++ {"(*NullString).Scan", Method, 0}, ++ {"(*NullTime).Scan", Method, 13}, ++ {"(*Row).Err", Method, 15}, ++ {"(*Row).Scan", Method, 0}, ++ {"(*Rows).Close", Method, 0}, ++ {"(*Rows).ColumnTypes", Method, 8}, ++ {"(*Rows).Columns", Method, 0}, ++ {"(*Rows).Err", Method, 0}, ++ {"(*Rows).Next", Method, 0}, ++ {"(*Rows).NextResultSet", Method, 8}, ++ {"(*Rows).Scan", Method, 0}, ++ {"(*Stmt).Close", Method, 0}, ++ {"(*Stmt).Exec", Method, 0}, ++ {"(*Stmt).ExecContext", Method, 8}, ++ {"(*Stmt).Query", Method, 0}, ++ {"(*Stmt).QueryContext", Method, 8}, ++ {"(*Stmt).QueryRow", Method, 0}, ++ {"(*Stmt).QueryRowContext", Method, 8}, ++ {"(*Tx).Commit", Method, 0}, ++ {"(*Tx).Exec", Method, 0}, ++ {"(*Tx).ExecContext", Method, 8}, ++ {"(*Tx).Prepare", Method, 0}, ++ {"(*Tx).PrepareContext", Method, 8}, ++ {"(*Tx).Query", Method, 0}, ++ {"(*Tx).QueryContext", Method, 8}, ++ {"(*Tx).QueryRow", Method, 0}, ++ {"(*Tx).QueryRowContext", Method, 8}, ++ {"(*Tx).Rollback", Method, 0}, ++ {"(*Tx).Stmt", Method, 0}, ++ {"(*Tx).StmtContext", Method, 8}, ++ {"(IsolationLevel).String", Method, 11}, ++ {"(Null).Value", Method, 22}, ++ {"(NullBool).Value", Method, 0}, ++ {"(NullByte).Value", Method, 17}, ++ {"(NullFloat64).Value", Method, 0}, ++ {"(NullInt16).Value", Method, 17}, ++ {"(NullInt32).Value", Method, 13}, ++ {"(NullInt64).Value", Method, 0}, ++ {"(NullString).Value", Method, 0}, ++ {"(NullTime).Value", Method, 13}, ++ {"ColumnType", Type, 8}, ++ {"Conn", Type, 9}, ++ {"DB", Type, 0}, ++ {"DBStats", Type, 5}, ++ {"DBStats.Idle", Field, 11}, ++ {"DBStats.InUse", Field, 11}, ++ {"DBStats.MaxIdleClosed", Field, 11}, ++ {"DBStats.MaxIdleTimeClosed", Field, 15}, ++ {"DBStats.MaxLifetimeClosed", Field, 11}, ++ {"DBStats.MaxOpenConnections", Field, 11}, ++ {"DBStats.OpenConnections", Field, 5}, ++ {"DBStats.WaitCount", Field, 11}, ++ {"DBStats.WaitDuration", Field, 11}, ++ {"Drivers", Func, 4}, ++ {"ErrConnDone", Var, 9}, ++ {"ErrNoRows", Var, 0}, ++ {"ErrTxDone", Var, 0}, ++ {"IsolationLevel", Type, 8}, ++ {"LevelDefault", Const, 8}, ++ {"LevelLinearizable", Const, 8}, ++ {"LevelReadCommitted", Const, 8}, ++ {"LevelReadUncommitted", Const, 8}, ++ {"LevelRepeatableRead", Const, 8}, ++ {"LevelSerializable", Const, 8}, ++ {"LevelSnapshot", Const, 8}, ++ {"LevelWriteCommitted", Const, 8}, ++ {"Named", Func, 8}, ++ {"NamedArg", Type, 8}, ++ {"NamedArg.Name", Field, 8}, ++ {"NamedArg.Value", Field, 8}, ++ {"Null", Type, 22}, ++ {"Null.V", Field, 22}, ++ {"Null.Valid", Field, 22}, ++ {"NullBool", Type, 0}, ++ {"NullBool.Bool", Field, 0}, ++ {"NullBool.Valid", Field, 0}, ++ {"NullByte", Type, 17}, ++ {"NullByte.Byte", Field, 17}, ++ {"NullByte.Valid", Field, 17}, ++ {"NullFloat64", Type, 0}, ++ {"NullFloat64.Float64", Field, 0}, ++ {"NullFloat64.Valid", Field, 0}, ++ {"NullInt16", Type, 17}, ++ {"NullInt16.Int16", Field, 17}, ++ {"NullInt16.Valid", Field, 17}, ++ {"NullInt32", Type, 13}, ++ {"NullInt32.Int32", Field, 13}, ++ {"NullInt32.Valid", Field, 13}, ++ {"NullInt64", Type, 0}, ++ {"NullInt64.Int64", Field, 0}, ++ {"NullInt64.Valid", Field, 0}, ++ {"NullString", Type, 0}, ++ {"NullString.String", Field, 0}, ++ {"NullString.Valid", Field, 0}, ++ {"NullTime", Type, 13}, ++ {"NullTime.Time", Field, 13}, ++ {"NullTime.Valid", Field, 13}, ++ {"Open", Func, 0}, ++ {"OpenDB", Func, 10}, ++ {"Out", Type, 9}, ++ {"Out.Dest", Field, 9}, ++ {"Out.In", Field, 9}, ++ {"RawBytes", Type, 0}, ++ {"Register", Func, 0}, ++ {"Result", Type, 0}, ++ {"Row", Type, 0}, ++ {"Rows", Type, 0}, ++ {"Scanner", Type, 0}, ++ {"Stmt", Type, 0}, ++ {"Tx", Type, 0}, ++ {"TxOptions", Type, 8}, ++ {"TxOptions.Isolation", Field, 8}, ++ {"TxOptions.ReadOnly", Field, 8}, ++ }, ++ "database/sql/driver": { ++ {"(NotNull).ConvertValue", Method, 0}, ++ {"(Null).ConvertValue", Method, 0}, ++ {"(RowsAffected).LastInsertId", Method, 0}, ++ {"(RowsAffected).RowsAffected", Method, 0}, ++ {"Bool", Var, 0}, ++ {"ColumnConverter", Type, 0}, ++ {"Conn", Type, 0}, ++ {"ConnBeginTx", Type, 8}, ++ {"ConnPrepareContext", Type, 8}, ++ {"Connector", Type, 10}, ++ {"DefaultParameterConverter", Var, 0}, ++ {"Driver", Type, 0}, ++ {"DriverContext", Type, 10}, ++ {"ErrBadConn", Var, 0}, ++ {"ErrRemoveArgument", Var, 9}, ++ {"ErrSkip", Var, 0}, ++ {"Execer", Type, 0}, ++ {"ExecerContext", Type, 8}, ++ {"Int32", Var, 0}, ++ {"IsScanValue", Func, 0}, ++ {"IsValue", Func, 0}, ++ {"IsolationLevel", Type, 8}, ++ {"NamedValue", Type, 8}, ++ {"NamedValue.Name", Field, 8}, ++ {"NamedValue.Ordinal", Field, 8}, ++ {"NamedValue.Value", Field, 8}, ++ {"NamedValueChecker", Type, 9}, ++ {"NotNull", Type, 0}, ++ {"NotNull.Converter", Field, 0}, ++ {"Null", Type, 0}, ++ {"Null.Converter", Field, 0}, ++ {"Pinger", Type, 8}, ++ {"Queryer", Type, 1}, ++ {"QueryerContext", Type, 8}, ++ {"Result", Type, 0}, ++ {"ResultNoRows", Var, 0}, ++ {"Rows", Type, 0}, ++ {"RowsAffected", Type, 0}, ++ {"RowsColumnTypeDatabaseTypeName", Type, 8}, ++ {"RowsColumnTypeLength", Type, 8}, ++ {"RowsColumnTypeNullable", Type, 8}, ++ {"RowsColumnTypePrecisionScale", Type, 8}, ++ {"RowsColumnTypeScanType", Type, 8}, ++ {"RowsNextResultSet", Type, 8}, ++ {"SessionResetter", Type, 10}, ++ {"Stmt", Type, 0}, ++ {"StmtExecContext", Type, 8}, ++ {"StmtQueryContext", Type, 8}, ++ {"String", Var, 0}, ++ {"Tx", Type, 0}, ++ {"TxOptions", Type, 8}, ++ {"TxOptions.Isolation", Field, 8}, ++ {"TxOptions.ReadOnly", Field, 8}, ++ {"Validator", Type, 15}, ++ {"Value", Type, 0}, ++ {"ValueConverter", Type, 0}, ++ {"Valuer", Type, 0}, ++ }, ++ "debug/buildinfo": { ++ {"BuildInfo", Type, 18}, ++ {"Read", Func, 18}, ++ {"ReadFile", Func, 18}, ++ }, ++ "debug/dwarf": { ++ {"(*AddrType).Basic", Method, 0}, ++ {"(*AddrType).Common", Method, 0}, ++ {"(*AddrType).Size", Method, 0}, ++ {"(*AddrType).String", Method, 0}, ++ {"(*ArrayType).Common", Method, 0}, ++ {"(*ArrayType).Size", Method, 0}, ++ {"(*ArrayType).String", Method, 0}, ++ {"(*BasicType).Basic", Method, 0}, ++ {"(*BasicType).Common", Method, 0}, ++ {"(*BasicType).Size", Method, 0}, ++ {"(*BasicType).String", Method, 0}, ++ {"(*BoolType).Basic", Method, 0}, ++ {"(*BoolType).Common", Method, 0}, ++ {"(*BoolType).Size", Method, 0}, ++ {"(*BoolType).String", Method, 0}, ++ {"(*CharType).Basic", Method, 0}, ++ {"(*CharType).Common", Method, 0}, ++ {"(*CharType).Size", Method, 0}, ++ {"(*CharType).String", Method, 0}, ++ {"(*CommonType).Common", Method, 0}, ++ {"(*CommonType).Size", Method, 0}, ++ {"(*ComplexType).Basic", Method, 0}, ++ {"(*ComplexType).Common", Method, 0}, ++ {"(*ComplexType).Size", Method, 0}, ++ {"(*ComplexType).String", Method, 0}, ++ {"(*Data).AddSection", Method, 14}, ++ {"(*Data).AddTypes", Method, 3}, ++ {"(*Data).LineReader", Method, 5}, ++ {"(*Data).Ranges", Method, 7}, ++ {"(*Data).Reader", Method, 0}, ++ {"(*Data).Type", Method, 0}, ++ {"(*DotDotDotType).Common", Method, 0}, ++ {"(*DotDotDotType).Size", Method, 0}, ++ {"(*DotDotDotType).String", Method, 0}, ++ {"(*Entry).AttrField", Method, 5}, ++ {"(*Entry).Val", Method, 0}, ++ {"(*EnumType).Common", Method, 0}, ++ {"(*EnumType).Size", Method, 0}, ++ {"(*EnumType).String", Method, 0}, ++ {"(*FloatType).Basic", Method, 0}, ++ {"(*FloatType).Common", Method, 0}, ++ {"(*FloatType).Size", Method, 0}, ++ {"(*FloatType).String", Method, 0}, ++ {"(*FuncType).Common", Method, 0}, ++ {"(*FuncType).Size", Method, 0}, ++ {"(*FuncType).String", Method, 0}, ++ {"(*IntType).Basic", Method, 0}, ++ {"(*IntType).Common", Method, 0}, ++ {"(*IntType).Size", Method, 0}, ++ {"(*IntType).String", Method, 0}, ++ {"(*LineReader).Files", Method, 14}, ++ {"(*LineReader).Next", Method, 5}, ++ {"(*LineReader).Reset", Method, 5}, ++ {"(*LineReader).Seek", Method, 5}, ++ {"(*LineReader).SeekPC", Method, 5}, ++ {"(*LineReader).Tell", Method, 5}, ++ {"(*PtrType).Common", Method, 0}, ++ {"(*PtrType).Size", Method, 0}, ++ {"(*PtrType).String", Method, 0}, ++ {"(*QualType).Common", Method, 0}, ++ {"(*QualType).Size", Method, 0}, ++ {"(*QualType).String", Method, 0}, ++ {"(*Reader).AddressSize", Method, 5}, ++ {"(*Reader).ByteOrder", Method, 14}, ++ {"(*Reader).Next", Method, 0}, ++ {"(*Reader).Seek", Method, 0}, ++ {"(*Reader).SeekPC", Method, 7}, ++ {"(*Reader).SkipChildren", Method, 0}, ++ {"(*StructType).Common", Method, 0}, ++ {"(*StructType).Defn", Method, 0}, ++ {"(*StructType).Size", Method, 0}, ++ {"(*StructType).String", Method, 0}, ++ {"(*TypedefType).Common", Method, 0}, ++ {"(*TypedefType).Size", Method, 0}, ++ {"(*TypedefType).String", Method, 0}, ++ {"(*UcharType).Basic", Method, 0}, ++ {"(*UcharType).Common", Method, 0}, ++ {"(*UcharType).Size", Method, 0}, ++ {"(*UcharType).String", Method, 0}, ++ {"(*UintType).Basic", Method, 0}, ++ {"(*UintType).Common", Method, 0}, ++ {"(*UintType).Size", Method, 0}, ++ {"(*UintType).String", Method, 0}, ++ {"(*UnspecifiedType).Basic", Method, 4}, ++ {"(*UnspecifiedType).Common", Method, 4}, ++ {"(*UnspecifiedType).Size", Method, 4}, ++ {"(*UnspecifiedType).String", Method, 4}, ++ {"(*UnsupportedType).Common", Method, 13}, ++ {"(*UnsupportedType).Size", Method, 13}, ++ {"(*UnsupportedType).String", Method, 13}, ++ {"(*VoidType).Common", Method, 0}, ++ {"(*VoidType).Size", Method, 0}, ++ {"(*VoidType).String", Method, 0}, ++ {"(Attr).GoString", Method, 0}, ++ {"(Attr).String", Method, 0}, ++ {"(Class).GoString", Method, 5}, ++ {"(Class).String", Method, 5}, ++ {"(DecodeError).Error", Method, 0}, ++ {"(Tag).GoString", Method, 0}, ++ {"(Tag).String", Method, 0}, ++ {"AddrType", Type, 0}, ++ {"AddrType.BasicType", Field, 0}, ++ {"ArrayType", Type, 0}, ++ {"ArrayType.CommonType", Field, 0}, ++ {"ArrayType.Count", Field, 0}, ++ {"ArrayType.StrideBitSize", Field, 0}, ++ {"ArrayType.Type", Field, 0}, ++ {"Attr", Type, 0}, ++ {"AttrAbstractOrigin", Const, 0}, ++ {"AttrAccessibility", Const, 0}, ++ {"AttrAddrBase", Const, 14}, ++ {"AttrAddrClass", Const, 0}, ++ {"AttrAlignment", Const, 14}, ++ {"AttrAllocated", Const, 0}, ++ {"AttrArtificial", Const, 0}, ++ {"AttrAssociated", Const, 0}, ++ {"AttrBaseTypes", Const, 0}, ++ {"AttrBinaryScale", Const, 14}, ++ {"AttrBitOffset", Const, 0}, ++ {"AttrBitSize", Const, 0}, ++ {"AttrByteSize", Const, 0}, ++ {"AttrCallAllCalls", Const, 14}, ++ {"AttrCallAllSourceCalls", Const, 14}, ++ {"AttrCallAllTailCalls", Const, 14}, ++ {"AttrCallColumn", Const, 0}, ++ {"AttrCallDataLocation", Const, 14}, ++ {"AttrCallDataValue", Const, 14}, ++ {"AttrCallFile", Const, 0}, ++ {"AttrCallLine", Const, 0}, ++ {"AttrCallOrigin", Const, 14}, ++ {"AttrCallPC", Const, 14}, ++ {"AttrCallParameter", Const, 14}, ++ {"AttrCallReturnPC", Const, 14}, ++ {"AttrCallTailCall", Const, 14}, ++ {"AttrCallTarget", Const, 14}, ++ {"AttrCallTargetClobbered", Const, 14}, ++ {"AttrCallValue", Const, 14}, ++ {"AttrCalling", Const, 0}, ++ {"AttrCommonRef", Const, 0}, ++ {"AttrCompDir", Const, 0}, ++ {"AttrConstExpr", Const, 14}, ++ {"AttrConstValue", Const, 0}, ++ {"AttrContainingType", Const, 0}, ++ {"AttrCount", Const, 0}, ++ {"AttrDataBitOffset", Const, 14}, ++ {"AttrDataLocation", Const, 0}, ++ {"AttrDataMemberLoc", Const, 0}, ++ {"AttrDecimalScale", Const, 14}, ++ {"AttrDecimalSign", Const, 14}, ++ {"AttrDeclColumn", Const, 0}, ++ {"AttrDeclFile", Const, 0}, ++ {"AttrDeclLine", Const, 0}, ++ {"AttrDeclaration", Const, 0}, ++ {"AttrDefaultValue", Const, 0}, ++ {"AttrDefaulted", Const, 14}, ++ {"AttrDeleted", Const, 14}, ++ {"AttrDescription", Const, 0}, ++ {"AttrDigitCount", Const, 14}, ++ {"AttrDiscr", Const, 0}, ++ {"AttrDiscrList", Const, 0}, ++ {"AttrDiscrValue", Const, 0}, ++ {"AttrDwoName", Const, 14}, ++ {"AttrElemental", Const, 14}, ++ {"AttrEncoding", Const, 0}, ++ {"AttrEndianity", Const, 14}, ++ {"AttrEntrypc", Const, 0}, ++ {"AttrEnumClass", Const, 14}, ++ {"AttrExplicit", Const, 14}, ++ {"AttrExportSymbols", Const, 14}, ++ {"AttrExtension", Const, 0}, ++ {"AttrExternal", Const, 0}, ++ {"AttrFrameBase", Const, 0}, ++ {"AttrFriend", Const, 0}, ++ {"AttrHighpc", Const, 0}, ++ {"AttrIdentifierCase", Const, 0}, ++ {"AttrImport", Const, 0}, ++ {"AttrInline", Const, 0}, ++ {"AttrIsOptional", Const, 0}, ++ {"AttrLanguage", Const, 0}, ++ {"AttrLinkageName", Const, 14}, ++ {"AttrLocation", Const, 0}, ++ {"AttrLoclistsBase", Const, 14}, ++ {"AttrLowerBound", Const, 0}, ++ {"AttrLowpc", Const, 0}, ++ {"AttrMacroInfo", Const, 0}, ++ {"AttrMacros", Const, 14}, ++ {"AttrMainSubprogram", Const, 14}, ++ {"AttrMutable", Const, 14}, ++ {"AttrName", Const, 0}, ++ {"AttrNamelistItem", Const, 0}, ++ {"AttrNoreturn", Const, 14}, ++ {"AttrObjectPointer", Const, 14}, ++ {"AttrOrdering", Const, 0}, ++ {"AttrPictureString", Const, 14}, ++ {"AttrPriority", Const, 0}, ++ {"AttrProducer", Const, 0}, ++ {"AttrPrototyped", Const, 0}, ++ {"AttrPure", Const, 14}, ++ {"AttrRanges", Const, 0}, ++ {"AttrRank", Const, 14}, ++ {"AttrRecursive", Const, 14}, ++ {"AttrReference", Const, 14}, ++ {"AttrReturnAddr", Const, 0}, ++ {"AttrRnglistsBase", Const, 14}, ++ {"AttrRvalueReference", Const, 14}, ++ {"AttrSegment", Const, 0}, ++ {"AttrSibling", Const, 0}, ++ {"AttrSignature", Const, 14}, ++ {"AttrSmall", Const, 14}, ++ {"AttrSpecification", Const, 0}, ++ {"AttrStartScope", Const, 0}, ++ {"AttrStaticLink", Const, 0}, ++ {"AttrStmtList", Const, 0}, ++ {"AttrStrOffsetsBase", Const, 14}, ++ {"AttrStride", Const, 0}, ++ {"AttrStrideSize", Const, 0}, ++ {"AttrStringLength", Const, 0}, ++ {"AttrStringLengthBitSize", Const, 14}, ++ {"AttrStringLengthByteSize", Const, 14}, ++ {"AttrThreadsScaled", Const, 14}, ++ {"AttrTrampoline", Const, 0}, ++ {"AttrType", Const, 0}, ++ {"AttrUpperBound", Const, 0}, ++ {"AttrUseLocation", Const, 0}, ++ {"AttrUseUTF8", Const, 0}, ++ {"AttrVarParam", Const, 0}, ++ {"AttrVirtuality", Const, 0}, ++ {"AttrVisibility", Const, 0}, ++ {"AttrVtableElemLoc", Const, 0}, ++ {"BasicType", Type, 0}, ++ {"BasicType.BitOffset", Field, 0}, ++ {"BasicType.BitSize", Field, 0}, ++ {"BasicType.CommonType", Field, 0}, ++ {"BasicType.DataBitOffset", Field, 18}, ++ {"BoolType", Type, 0}, ++ {"BoolType.BasicType", Field, 0}, ++ {"CharType", Type, 0}, ++ {"CharType.BasicType", Field, 0}, ++ {"Class", Type, 5}, ++ {"ClassAddrPtr", Const, 14}, ++ {"ClassAddress", Const, 5}, ++ {"ClassBlock", Const, 5}, ++ {"ClassConstant", Const, 5}, ++ {"ClassExprLoc", Const, 5}, ++ {"ClassFlag", Const, 5}, ++ {"ClassLinePtr", Const, 5}, ++ {"ClassLocList", Const, 14}, ++ {"ClassLocListPtr", Const, 5}, ++ {"ClassMacPtr", Const, 5}, ++ {"ClassRangeListPtr", Const, 5}, ++ {"ClassReference", Const, 5}, ++ {"ClassReferenceAlt", Const, 5}, ++ {"ClassReferenceSig", Const, 5}, ++ {"ClassRngList", Const, 14}, ++ {"ClassRngListsPtr", Const, 14}, ++ {"ClassStrOffsetsPtr", Const, 14}, ++ {"ClassString", Const, 5}, ++ {"ClassStringAlt", Const, 5}, ++ {"ClassUnknown", Const, 6}, ++ {"CommonType", Type, 0}, ++ {"CommonType.ByteSize", Field, 0}, ++ {"CommonType.Name", Field, 0}, ++ {"ComplexType", Type, 0}, ++ {"ComplexType.BasicType", Field, 0}, ++ {"Data", Type, 0}, ++ {"DecodeError", Type, 0}, ++ {"DecodeError.Err", Field, 0}, ++ {"DecodeError.Name", Field, 0}, ++ {"DecodeError.Offset", Field, 0}, ++ {"DotDotDotType", Type, 0}, ++ {"DotDotDotType.CommonType", Field, 0}, ++ {"Entry", Type, 0}, ++ {"Entry.Children", Field, 0}, ++ {"Entry.Field", Field, 0}, ++ {"Entry.Offset", Field, 0}, ++ {"Entry.Tag", Field, 0}, ++ {"EnumType", Type, 0}, ++ {"EnumType.CommonType", Field, 0}, ++ {"EnumType.EnumName", Field, 0}, ++ {"EnumType.Val", Field, 0}, ++ {"EnumValue", Type, 0}, ++ {"EnumValue.Name", Field, 0}, ++ {"EnumValue.Val", Field, 0}, ++ {"ErrUnknownPC", Var, 5}, ++ {"Field", Type, 0}, ++ {"Field.Attr", Field, 0}, ++ {"Field.Class", Field, 5}, ++ {"Field.Val", Field, 0}, ++ {"FloatType", Type, 0}, ++ {"FloatType.BasicType", Field, 0}, ++ {"FuncType", Type, 0}, ++ {"FuncType.CommonType", Field, 0}, ++ {"FuncType.ParamType", Field, 0}, ++ {"FuncType.ReturnType", Field, 0}, ++ {"IntType", Type, 0}, ++ {"IntType.BasicType", Field, 0}, ++ {"LineEntry", Type, 5}, ++ {"LineEntry.Address", Field, 5}, ++ {"LineEntry.BasicBlock", Field, 5}, ++ {"LineEntry.Column", Field, 5}, ++ {"LineEntry.Discriminator", Field, 5}, ++ {"LineEntry.EndSequence", Field, 5}, ++ {"LineEntry.EpilogueBegin", Field, 5}, ++ {"LineEntry.File", Field, 5}, ++ {"LineEntry.ISA", Field, 5}, ++ {"LineEntry.IsStmt", Field, 5}, ++ {"LineEntry.Line", Field, 5}, ++ {"LineEntry.OpIndex", Field, 5}, ++ {"LineEntry.PrologueEnd", Field, 5}, ++ {"LineFile", Type, 5}, ++ {"LineFile.Length", Field, 5}, ++ {"LineFile.Mtime", Field, 5}, ++ {"LineFile.Name", Field, 5}, ++ {"LineReader", Type, 5}, ++ {"LineReaderPos", Type, 5}, ++ {"New", Func, 0}, ++ {"Offset", Type, 0}, ++ {"PtrType", Type, 0}, ++ {"PtrType.CommonType", Field, 0}, ++ {"PtrType.Type", Field, 0}, ++ {"QualType", Type, 0}, ++ {"QualType.CommonType", Field, 0}, ++ {"QualType.Qual", Field, 0}, ++ {"QualType.Type", Field, 0}, ++ {"Reader", Type, 0}, ++ {"StructField", Type, 0}, ++ {"StructField.BitOffset", Field, 0}, ++ {"StructField.BitSize", Field, 0}, ++ {"StructField.ByteOffset", Field, 0}, ++ {"StructField.ByteSize", Field, 0}, ++ {"StructField.DataBitOffset", Field, 18}, ++ {"StructField.Name", Field, 0}, ++ {"StructField.Type", Field, 0}, ++ {"StructType", Type, 0}, ++ {"StructType.CommonType", Field, 0}, ++ {"StructType.Field", Field, 0}, ++ {"StructType.Incomplete", Field, 0}, ++ {"StructType.Kind", Field, 0}, ++ {"StructType.StructName", Field, 0}, ++ {"Tag", Type, 0}, ++ {"TagAccessDeclaration", Const, 0}, ++ {"TagArrayType", Const, 0}, ++ {"TagAtomicType", Const, 14}, ++ {"TagBaseType", Const, 0}, ++ {"TagCallSite", Const, 14}, ++ {"TagCallSiteParameter", Const, 14}, ++ {"TagCatchDwarfBlock", Const, 0}, ++ {"TagClassType", Const, 0}, ++ {"TagCoarrayType", Const, 14}, ++ {"TagCommonDwarfBlock", Const, 0}, ++ {"TagCommonInclusion", Const, 0}, ++ {"TagCompileUnit", Const, 0}, ++ {"TagCondition", Const, 3}, ++ {"TagConstType", Const, 0}, ++ {"TagConstant", Const, 0}, ++ {"TagDwarfProcedure", Const, 0}, ++ {"TagDynamicType", Const, 14}, ++ {"TagEntryPoint", Const, 0}, ++ {"TagEnumerationType", Const, 0}, ++ {"TagEnumerator", Const, 0}, ++ {"TagFileType", Const, 0}, ++ {"TagFormalParameter", Const, 0}, ++ {"TagFriend", Const, 0}, ++ {"TagGenericSubrange", Const, 14}, ++ {"TagImmutableType", Const, 14}, ++ {"TagImportedDeclaration", Const, 0}, ++ {"TagImportedModule", Const, 0}, ++ {"TagImportedUnit", Const, 0}, ++ {"TagInheritance", Const, 0}, ++ {"TagInlinedSubroutine", Const, 0}, ++ {"TagInterfaceType", Const, 0}, ++ {"TagLabel", Const, 0}, ++ {"TagLexDwarfBlock", Const, 0}, ++ {"TagMember", Const, 0}, ++ {"TagModule", Const, 0}, ++ {"TagMutableType", Const, 0}, ++ {"TagNamelist", Const, 0}, ++ {"TagNamelistItem", Const, 0}, ++ {"TagNamespace", Const, 0}, ++ {"TagPackedType", Const, 0}, ++ {"TagPartialUnit", Const, 0}, ++ {"TagPointerType", Const, 0}, ++ {"TagPtrToMemberType", Const, 0}, ++ {"TagReferenceType", Const, 0}, ++ {"TagRestrictType", Const, 0}, ++ {"TagRvalueReferenceType", Const, 3}, ++ {"TagSetType", Const, 0}, ++ {"TagSharedType", Const, 3}, ++ {"TagSkeletonUnit", Const, 14}, ++ {"TagStringType", Const, 0}, ++ {"TagStructType", Const, 0}, ++ {"TagSubprogram", Const, 0}, ++ {"TagSubrangeType", Const, 0}, ++ {"TagSubroutineType", Const, 0}, ++ {"TagTemplateAlias", Const, 3}, ++ {"TagTemplateTypeParameter", Const, 0}, ++ {"TagTemplateValueParameter", Const, 0}, ++ {"TagThrownType", Const, 0}, ++ {"TagTryDwarfBlock", Const, 0}, ++ {"TagTypeUnit", Const, 3}, ++ {"TagTypedef", Const, 0}, ++ {"TagUnionType", Const, 0}, ++ {"TagUnspecifiedParameters", Const, 0}, ++ {"TagUnspecifiedType", Const, 0}, ++ {"TagVariable", Const, 0}, ++ {"TagVariant", Const, 0}, ++ {"TagVariantPart", Const, 0}, ++ {"TagVolatileType", Const, 0}, ++ {"TagWithStmt", Const, 0}, ++ {"Type", Type, 0}, ++ {"TypedefType", Type, 0}, ++ {"TypedefType.CommonType", Field, 0}, ++ {"TypedefType.Type", Field, 0}, ++ {"UcharType", Type, 0}, ++ {"UcharType.BasicType", Field, 0}, ++ {"UintType", Type, 0}, ++ {"UintType.BasicType", Field, 0}, ++ {"UnspecifiedType", Type, 4}, ++ {"UnspecifiedType.BasicType", Field, 4}, ++ {"UnsupportedType", Type, 13}, ++ {"UnsupportedType.CommonType", Field, 13}, ++ {"UnsupportedType.Tag", Field, 13}, ++ {"VoidType", Type, 0}, ++ {"VoidType.CommonType", Field, 0}, ++ }, ++ "debug/elf": { ++ {"(*File).Close", Method, 0}, ++ {"(*File).DWARF", Method, 0}, ++ {"(*File).DynString", Method, 1}, ++ {"(*File).DynValue", Method, 21}, ++ {"(*File).DynamicSymbols", Method, 4}, ++ {"(*File).ImportedLibraries", Method, 0}, ++ {"(*File).ImportedSymbols", Method, 0}, ++ {"(*File).Section", Method, 0}, ++ {"(*File).SectionByType", Method, 0}, ++ {"(*File).Symbols", Method, 0}, ++ {"(*FormatError).Error", Method, 0}, ++ {"(*Prog).Open", Method, 0}, ++ {"(*Section).Data", Method, 0}, ++ {"(*Section).Open", Method, 0}, ++ {"(Class).GoString", Method, 0}, ++ {"(Class).String", Method, 0}, ++ {"(CompressionType).GoString", Method, 6}, ++ {"(CompressionType).String", Method, 6}, ++ {"(Data).GoString", Method, 0}, ++ {"(Data).String", Method, 0}, ++ {"(DynFlag).GoString", Method, 0}, ++ {"(DynFlag).String", Method, 0}, ++ {"(DynFlag1).GoString", Method, 21}, ++ {"(DynFlag1).String", Method, 21}, ++ {"(DynTag).GoString", Method, 0}, ++ {"(DynTag).String", Method, 0}, ++ {"(Machine).GoString", Method, 0}, ++ {"(Machine).String", Method, 0}, ++ {"(NType).GoString", Method, 0}, ++ {"(NType).String", Method, 0}, ++ {"(OSABI).GoString", Method, 0}, ++ {"(OSABI).String", Method, 0}, ++ {"(Prog).ReadAt", Method, 0}, ++ {"(ProgFlag).GoString", Method, 0}, ++ {"(ProgFlag).String", Method, 0}, ++ {"(ProgType).GoString", Method, 0}, ++ {"(ProgType).String", Method, 0}, ++ {"(R_386).GoString", Method, 0}, ++ {"(R_386).String", Method, 0}, ++ {"(R_390).GoString", Method, 7}, ++ {"(R_390).String", Method, 7}, ++ {"(R_AARCH64).GoString", Method, 4}, ++ {"(R_AARCH64).String", Method, 4}, ++ {"(R_ALPHA).GoString", Method, 0}, ++ {"(R_ALPHA).String", Method, 0}, ++ {"(R_ARM).GoString", Method, 0}, ++ {"(R_ARM).String", Method, 0}, ++ {"(R_LARCH).GoString", Method, 19}, ++ {"(R_LARCH).String", Method, 19}, ++ {"(R_MIPS).GoString", Method, 6}, ++ {"(R_MIPS).String", Method, 6}, ++ {"(R_PPC).GoString", Method, 0}, ++ {"(R_PPC).String", Method, 0}, ++ {"(R_PPC64).GoString", Method, 5}, ++ {"(R_PPC64).String", Method, 5}, ++ {"(R_RISCV).GoString", Method, 11}, ++ {"(R_RISCV).String", Method, 11}, ++ {"(R_SPARC).GoString", Method, 0}, ++ {"(R_SPARC).String", Method, 0}, ++ {"(R_X86_64).GoString", Method, 0}, ++ {"(R_X86_64).String", Method, 0}, ++ {"(Section).ReadAt", Method, 0}, ++ {"(SectionFlag).GoString", Method, 0}, ++ {"(SectionFlag).String", Method, 0}, ++ {"(SectionIndex).GoString", Method, 0}, ++ {"(SectionIndex).String", Method, 0}, ++ {"(SectionType).GoString", Method, 0}, ++ {"(SectionType).String", Method, 0}, ++ {"(SymBind).GoString", Method, 0}, ++ {"(SymBind).String", Method, 0}, ++ {"(SymType).GoString", Method, 0}, ++ {"(SymType).String", Method, 0}, ++ {"(SymVis).GoString", Method, 0}, ++ {"(SymVis).String", Method, 0}, ++ {"(Type).GoString", Method, 0}, ++ {"(Type).String", Method, 0}, ++ {"(Version).GoString", Method, 0}, ++ {"(Version).String", Method, 0}, ++ {"ARM_MAGIC_TRAMP_NUMBER", Const, 0}, ++ {"COMPRESS_HIOS", Const, 6}, ++ {"COMPRESS_HIPROC", Const, 6}, ++ {"COMPRESS_LOOS", Const, 6}, ++ {"COMPRESS_LOPROC", Const, 6}, ++ {"COMPRESS_ZLIB", Const, 6}, ++ {"COMPRESS_ZSTD", Const, 21}, ++ {"Chdr32", Type, 6}, ++ {"Chdr32.Addralign", Field, 6}, ++ {"Chdr32.Size", Field, 6}, ++ {"Chdr32.Type", Field, 6}, ++ {"Chdr64", Type, 6}, ++ {"Chdr64.Addralign", Field, 6}, ++ {"Chdr64.Size", Field, 6}, ++ {"Chdr64.Type", Field, 6}, ++ {"Class", Type, 0}, ++ {"CompressionType", Type, 6}, ++ {"DF_1_CONFALT", Const, 21}, ++ {"DF_1_DIRECT", Const, 21}, ++ {"DF_1_DISPRELDNE", Const, 21}, ++ {"DF_1_DISPRELPND", Const, 21}, ++ {"DF_1_EDITED", Const, 21}, ++ {"DF_1_ENDFILTEE", Const, 21}, ++ {"DF_1_GLOBAL", Const, 21}, ++ {"DF_1_GLOBAUDIT", Const, 21}, ++ {"DF_1_GROUP", Const, 21}, ++ {"DF_1_IGNMULDEF", Const, 21}, ++ {"DF_1_INITFIRST", Const, 21}, ++ {"DF_1_INTERPOSE", Const, 21}, ++ {"DF_1_KMOD", Const, 21}, ++ {"DF_1_LOADFLTR", Const, 21}, ++ {"DF_1_NOCOMMON", Const, 21}, ++ {"DF_1_NODEFLIB", Const, 21}, ++ {"DF_1_NODELETE", Const, 21}, ++ {"DF_1_NODIRECT", Const, 21}, ++ {"DF_1_NODUMP", Const, 21}, ++ {"DF_1_NOHDR", Const, 21}, ++ {"DF_1_NOKSYMS", Const, 21}, ++ {"DF_1_NOOPEN", Const, 21}, ++ {"DF_1_NORELOC", Const, 21}, ++ {"DF_1_NOW", Const, 21}, ++ {"DF_1_ORIGIN", Const, 21}, ++ {"DF_1_PIE", Const, 21}, ++ {"DF_1_SINGLETON", Const, 21}, ++ {"DF_1_STUB", Const, 21}, ++ {"DF_1_SYMINTPOSE", Const, 21}, ++ {"DF_1_TRANS", Const, 21}, ++ {"DF_1_WEAKFILTER", Const, 21}, ++ {"DF_BIND_NOW", Const, 0}, ++ {"DF_ORIGIN", Const, 0}, ++ {"DF_STATIC_TLS", Const, 0}, ++ {"DF_SYMBOLIC", Const, 0}, ++ {"DF_TEXTREL", Const, 0}, ++ {"DT_ADDRRNGHI", Const, 16}, ++ {"DT_ADDRRNGLO", Const, 16}, ++ {"DT_AUDIT", Const, 16}, ++ {"DT_AUXILIARY", Const, 16}, ++ {"DT_BIND_NOW", Const, 0}, ++ {"DT_CHECKSUM", Const, 16}, ++ {"DT_CONFIG", Const, 16}, ++ {"DT_DEBUG", Const, 0}, ++ {"DT_DEPAUDIT", Const, 16}, ++ {"DT_ENCODING", Const, 0}, ++ {"DT_FEATURE", Const, 16}, ++ {"DT_FILTER", Const, 16}, ++ {"DT_FINI", Const, 0}, ++ {"DT_FINI_ARRAY", Const, 0}, ++ {"DT_FINI_ARRAYSZ", Const, 0}, ++ {"DT_FLAGS", Const, 0}, ++ {"DT_FLAGS_1", Const, 16}, ++ {"DT_GNU_CONFLICT", Const, 16}, ++ {"DT_GNU_CONFLICTSZ", Const, 16}, ++ {"DT_GNU_HASH", Const, 16}, ++ {"DT_GNU_LIBLIST", Const, 16}, ++ {"DT_GNU_LIBLISTSZ", Const, 16}, ++ {"DT_GNU_PRELINKED", Const, 16}, ++ {"DT_HASH", Const, 0}, ++ {"DT_HIOS", Const, 0}, ++ {"DT_HIPROC", Const, 0}, ++ {"DT_INIT", Const, 0}, ++ {"DT_INIT_ARRAY", Const, 0}, ++ {"DT_INIT_ARRAYSZ", Const, 0}, ++ {"DT_JMPREL", Const, 0}, ++ {"DT_LOOS", Const, 0}, ++ {"DT_LOPROC", Const, 0}, ++ {"DT_MIPS_AUX_DYNAMIC", Const, 16}, ++ {"DT_MIPS_BASE_ADDRESS", Const, 16}, ++ {"DT_MIPS_COMPACT_SIZE", Const, 16}, ++ {"DT_MIPS_CONFLICT", Const, 16}, ++ {"DT_MIPS_CONFLICTNO", Const, 16}, ++ {"DT_MIPS_CXX_FLAGS", Const, 16}, ++ {"DT_MIPS_DELTA_CLASS", Const, 16}, ++ {"DT_MIPS_DELTA_CLASSSYM", Const, 16}, ++ {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16}, ++ {"DT_MIPS_DELTA_CLASS_NO", Const, 16}, ++ {"DT_MIPS_DELTA_INSTANCE", Const, 16}, ++ {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16}, ++ {"DT_MIPS_DELTA_RELOC", Const, 16}, ++ {"DT_MIPS_DELTA_RELOC_NO", Const, 16}, ++ {"DT_MIPS_DELTA_SYM", Const, 16}, ++ {"DT_MIPS_DELTA_SYM_NO", Const, 16}, ++ {"DT_MIPS_DYNSTR_ALIGN", Const, 16}, ++ {"DT_MIPS_FLAGS", Const, 16}, ++ {"DT_MIPS_GOTSYM", Const, 16}, ++ {"DT_MIPS_GP_VALUE", Const, 16}, ++ {"DT_MIPS_HIDDEN_GOTIDX", Const, 16}, ++ {"DT_MIPS_HIPAGENO", Const, 16}, ++ {"DT_MIPS_ICHECKSUM", Const, 16}, ++ {"DT_MIPS_INTERFACE", Const, 16}, ++ {"DT_MIPS_INTERFACE_SIZE", Const, 16}, ++ {"DT_MIPS_IVERSION", Const, 16}, ++ {"DT_MIPS_LIBLIST", Const, 16}, ++ {"DT_MIPS_LIBLISTNO", Const, 16}, ++ {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16}, ++ {"DT_MIPS_LOCAL_GOTIDX", Const, 16}, ++ {"DT_MIPS_LOCAL_GOTNO", Const, 16}, ++ {"DT_MIPS_MSYM", Const, 16}, ++ {"DT_MIPS_OPTIONS", Const, 16}, ++ {"DT_MIPS_PERF_SUFFIX", Const, 16}, ++ {"DT_MIPS_PIXIE_INIT", Const, 16}, ++ {"DT_MIPS_PLTGOT", Const, 16}, ++ {"DT_MIPS_PROTECTED_GOTIDX", Const, 16}, ++ {"DT_MIPS_RLD_MAP", Const, 16}, ++ {"DT_MIPS_RLD_MAP_REL", Const, 16}, ++ {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16}, ++ {"DT_MIPS_RLD_VERSION", Const, 16}, ++ {"DT_MIPS_RWPLT", Const, 16}, ++ {"DT_MIPS_SYMBOL_LIB", Const, 16}, ++ {"DT_MIPS_SYMTABNO", Const, 16}, ++ {"DT_MIPS_TIME_STAMP", Const, 16}, ++ {"DT_MIPS_UNREFEXTNO", Const, 16}, ++ {"DT_MOVEENT", Const, 16}, ++ {"DT_MOVESZ", Const, 16}, ++ {"DT_MOVETAB", Const, 16}, ++ {"DT_NEEDED", Const, 0}, ++ {"DT_NULL", Const, 0}, ++ {"DT_PLTGOT", Const, 0}, ++ {"DT_PLTPAD", Const, 16}, ++ {"DT_PLTPADSZ", Const, 16}, ++ {"DT_PLTREL", Const, 0}, ++ {"DT_PLTRELSZ", Const, 0}, ++ {"DT_POSFLAG_1", Const, 16}, ++ {"DT_PPC64_GLINK", Const, 16}, ++ {"DT_PPC64_OPD", Const, 16}, ++ {"DT_PPC64_OPDSZ", Const, 16}, ++ {"DT_PPC64_OPT", Const, 16}, ++ {"DT_PPC_GOT", Const, 16}, ++ {"DT_PPC_OPT", Const, 16}, ++ {"DT_PREINIT_ARRAY", Const, 0}, ++ {"DT_PREINIT_ARRAYSZ", Const, 0}, ++ {"DT_REL", Const, 0}, ++ {"DT_RELA", Const, 0}, ++ {"DT_RELACOUNT", Const, 16}, ++ {"DT_RELAENT", Const, 0}, ++ {"DT_RELASZ", Const, 0}, ++ {"DT_RELCOUNT", Const, 16}, ++ {"DT_RELENT", Const, 0}, ++ {"DT_RELSZ", Const, 0}, ++ {"DT_RPATH", Const, 0}, ++ {"DT_RUNPATH", Const, 0}, ++ {"DT_SONAME", Const, 0}, ++ {"DT_SPARC_REGISTER", Const, 16}, ++ {"DT_STRSZ", Const, 0}, ++ {"DT_STRTAB", Const, 0}, ++ {"DT_SYMBOLIC", Const, 0}, ++ {"DT_SYMENT", Const, 0}, ++ {"DT_SYMINENT", Const, 16}, ++ {"DT_SYMINFO", Const, 16}, ++ {"DT_SYMINSZ", Const, 16}, ++ {"DT_SYMTAB", Const, 0}, ++ {"DT_SYMTAB_SHNDX", Const, 16}, ++ {"DT_TEXTREL", Const, 0}, ++ {"DT_TLSDESC_GOT", Const, 16}, ++ {"DT_TLSDESC_PLT", Const, 16}, ++ {"DT_USED", Const, 16}, ++ {"DT_VALRNGHI", Const, 16}, ++ {"DT_VALRNGLO", Const, 16}, ++ {"DT_VERDEF", Const, 16}, ++ {"DT_VERDEFNUM", Const, 16}, ++ {"DT_VERNEED", Const, 0}, ++ {"DT_VERNEEDNUM", Const, 0}, ++ {"DT_VERSYM", Const, 0}, ++ {"Data", Type, 0}, ++ {"Dyn32", Type, 0}, ++ {"Dyn32.Tag", Field, 0}, ++ {"Dyn32.Val", Field, 0}, ++ {"Dyn64", Type, 0}, ++ {"Dyn64.Tag", Field, 0}, ++ {"Dyn64.Val", Field, 0}, ++ {"DynFlag", Type, 0}, ++ {"DynFlag1", Type, 21}, ++ {"DynTag", Type, 0}, ++ {"EI_ABIVERSION", Const, 0}, ++ {"EI_CLASS", Const, 0}, ++ {"EI_DATA", Const, 0}, ++ {"EI_NIDENT", Const, 0}, ++ {"EI_OSABI", Const, 0}, ++ {"EI_PAD", Const, 0}, ++ {"EI_VERSION", Const, 0}, ++ {"ELFCLASS32", Const, 0}, ++ {"ELFCLASS64", Const, 0}, ++ {"ELFCLASSNONE", Const, 0}, ++ {"ELFDATA2LSB", Const, 0}, ++ {"ELFDATA2MSB", Const, 0}, ++ {"ELFDATANONE", Const, 0}, ++ {"ELFMAG", Const, 0}, ++ {"ELFOSABI_86OPEN", Const, 0}, ++ {"ELFOSABI_AIX", Const, 0}, ++ {"ELFOSABI_ARM", Const, 0}, ++ {"ELFOSABI_AROS", Const, 11}, ++ {"ELFOSABI_CLOUDABI", Const, 11}, ++ {"ELFOSABI_FENIXOS", Const, 11}, ++ {"ELFOSABI_FREEBSD", Const, 0}, ++ {"ELFOSABI_HPUX", Const, 0}, ++ {"ELFOSABI_HURD", Const, 0}, ++ {"ELFOSABI_IRIX", Const, 0}, ++ {"ELFOSABI_LINUX", Const, 0}, ++ {"ELFOSABI_MODESTO", Const, 0}, ++ {"ELFOSABI_NETBSD", Const, 0}, ++ {"ELFOSABI_NONE", Const, 0}, ++ {"ELFOSABI_NSK", Const, 0}, ++ {"ELFOSABI_OPENBSD", Const, 0}, ++ {"ELFOSABI_OPENVMS", Const, 0}, ++ {"ELFOSABI_SOLARIS", Const, 0}, ++ {"ELFOSABI_STANDALONE", Const, 0}, ++ {"ELFOSABI_TRU64", Const, 0}, ++ {"EM_386", Const, 0}, ++ {"EM_486", Const, 0}, ++ {"EM_56800EX", Const, 11}, ++ {"EM_68HC05", Const, 11}, ++ {"EM_68HC08", Const, 11}, ++ {"EM_68HC11", Const, 11}, ++ {"EM_68HC12", Const, 0}, ++ {"EM_68HC16", Const, 11}, ++ {"EM_68K", Const, 0}, ++ {"EM_78KOR", Const, 11}, ++ {"EM_8051", Const, 11}, ++ {"EM_860", Const, 0}, ++ {"EM_88K", Const, 0}, ++ {"EM_960", Const, 0}, ++ {"EM_AARCH64", Const, 4}, ++ {"EM_ALPHA", Const, 0}, ++ {"EM_ALPHA_STD", Const, 0}, ++ {"EM_ALTERA_NIOS2", Const, 11}, ++ {"EM_AMDGPU", Const, 11}, ++ {"EM_ARC", Const, 0}, ++ {"EM_ARCA", Const, 11}, ++ {"EM_ARC_COMPACT", Const, 11}, ++ {"EM_ARC_COMPACT2", Const, 11}, ++ {"EM_ARM", Const, 0}, ++ {"EM_AVR", Const, 11}, ++ {"EM_AVR32", Const, 11}, ++ {"EM_BA1", Const, 11}, ++ {"EM_BA2", Const, 11}, ++ {"EM_BLACKFIN", Const, 11}, ++ {"EM_BPF", Const, 11}, ++ {"EM_C166", Const, 11}, ++ {"EM_CDP", Const, 11}, ++ {"EM_CE", Const, 11}, ++ {"EM_CLOUDSHIELD", Const, 11}, ++ {"EM_COGE", Const, 11}, ++ {"EM_COLDFIRE", Const, 0}, ++ {"EM_COOL", Const, 11}, ++ {"EM_COREA_1ST", Const, 11}, ++ {"EM_COREA_2ND", Const, 11}, ++ {"EM_CR", Const, 11}, ++ {"EM_CR16", Const, 11}, ++ {"EM_CRAYNV2", Const, 11}, ++ {"EM_CRIS", Const, 11}, ++ {"EM_CRX", Const, 11}, ++ {"EM_CSR_KALIMBA", Const, 11}, ++ {"EM_CUDA", Const, 11}, ++ {"EM_CYPRESS_M8C", Const, 11}, ++ {"EM_D10V", Const, 11}, ++ {"EM_D30V", Const, 11}, ++ {"EM_DSP24", Const, 11}, ++ {"EM_DSPIC30F", Const, 11}, ++ {"EM_DXP", Const, 11}, ++ {"EM_ECOG1", Const, 11}, ++ {"EM_ECOG16", Const, 11}, ++ {"EM_ECOG1X", Const, 11}, ++ {"EM_ECOG2", Const, 11}, ++ {"EM_ETPU", Const, 11}, ++ {"EM_EXCESS", Const, 11}, ++ {"EM_F2MC16", Const, 11}, ++ {"EM_FIREPATH", Const, 11}, ++ {"EM_FR20", Const, 0}, ++ {"EM_FR30", Const, 11}, ++ {"EM_FT32", Const, 11}, ++ {"EM_FX66", Const, 11}, ++ {"EM_H8S", Const, 0}, ++ {"EM_H8_300", Const, 0}, ++ {"EM_H8_300H", Const, 0}, ++ {"EM_H8_500", Const, 0}, ++ {"EM_HUANY", Const, 11}, ++ {"EM_IA_64", Const, 0}, ++ {"EM_INTEL205", Const, 11}, ++ {"EM_INTEL206", Const, 11}, ++ {"EM_INTEL207", Const, 11}, ++ {"EM_INTEL208", Const, 11}, ++ {"EM_INTEL209", Const, 11}, ++ {"EM_IP2K", Const, 11}, ++ {"EM_JAVELIN", Const, 11}, ++ {"EM_K10M", Const, 11}, ++ {"EM_KM32", Const, 11}, ++ {"EM_KMX16", Const, 11}, ++ {"EM_KMX32", Const, 11}, ++ {"EM_KMX8", Const, 11}, ++ {"EM_KVARC", Const, 11}, ++ {"EM_L10M", Const, 11}, ++ {"EM_LANAI", Const, 11}, ++ {"EM_LATTICEMICO32", Const, 11}, ++ {"EM_LOONGARCH", Const, 19}, ++ {"EM_M16C", Const, 11}, ++ {"EM_M32", Const, 0}, ++ {"EM_M32C", Const, 11}, ++ {"EM_M32R", Const, 11}, ++ {"EM_MANIK", Const, 11}, ++ {"EM_MAX", Const, 11}, ++ {"EM_MAXQ30", Const, 11}, ++ {"EM_MCHP_PIC", Const, 11}, ++ {"EM_MCST_ELBRUS", Const, 11}, ++ {"EM_ME16", Const, 0}, ++ {"EM_METAG", Const, 11}, ++ {"EM_MICROBLAZE", Const, 11}, ++ {"EM_MIPS", Const, 0}, ++ {"EM_MIPS_RS3_LE", Const, 0}, ++ {"EM_MIPS_RS4_BE", Const, 0}, ++ {"EM_MIPS_X", Const, 0}, ++ {"EM_MMA", Const, 0}, ++ {"EM_MMDSP_PLUS", Const, 11}, ++ {"EM_MMIX", Const, 11}, ++ {"EM_MN10200", Const, 11}, ++ {"EM_MN10300", Const, 11}, ++ {"EM_MOXIE", Const, 11}, ++ {"EM_MSP430", Const, 11}, ++ {"EM_NCPU", Const, 0}, ++ {"EM_NDR1", Const, 0}, ++ {"EM_NDS32", Const, 11}, ++ {"EM_NONE", Const, 0}, ++ {"EM_NORC", Const, 11}, ++ {"EM_NS32K", Const, 11}, ++ {"EM_OPEN8", Const, 11}, ++ {"EM_OPENRISC", Const, 11}, ++ {"EM_PARISC", Const, 0}, ++ {"EM_PCP", Const, 0}, ++ {"EM_PDP10", Const, 11}, ++ {"EM_PDP11", Const, 11}, ++ {"EM_PDSP", Const, 11}, ++ {"EM_PJ", Const, 11}, ++ {"EM_PPC", Const, 0}, ++ {"EM_PPC64", Const, 0}, ++ {"EM_PRISM", Const, 11}, ++ {"EM_QDSP6", Const, 11}, ++ {"EM_R32C", Const, 11}, ++ {"EM_RCE", Const, 0}, ++ {"EM_RH32", Const, 0}, ++ {"EM_RISCV", Const, 11}, ++ {"EM_RL78", Const, 11}, ++ {"EM_RS08", Const, 11}, ++ {"EM_RX", Const, 11}, ++ {"EM_S370", Const, 0}, ++ {"EM_S390", Const, 0}, ++ {"EM_SCORE7", Const, 11}, ++ {"EM_SEP", Const, 11}, ++ {"EM_SE_C17", Const, 11}, ++ {"EM_SE_C33", Const, 11}, ++ {"EM_SH", Const, 0}, ++ {"EM_SHARC", Const, 11}, ++ {"EM_SLE9X", Const, 11}, ++ {"EM_SNP1K", Const, 11}, ++ {"EM_SPARC", Const, 0}, ++ {"EM_SPARC32PLUS", Const, 0}, ++ {"EM_SPARCV9", Const, 0}, ++ {"EM_ST100", Const, 0}, ++ {"EM_ST19", Const, 11}, ++ {"EM_ST200", Const, 11}, ++ {"EM_ST7", Const, 11}, ++ {"EM_ST9PLUS", Const, 11}, ++ {"EM_STARCORE", Const, 0}, ++ {"EM_STM8", Const, 11}, ++ {"EM_STXP7X", Const, 11}, ++ {"EM_SVX", Const, 11}, ++ {"EM_TILE64", Const, 11}, ++ {"EM_TILEGX", Const, 11}, ++ {"EM_TILEPRO", Const, 11}, ++ {"EM_TINYJ", Const, 0}, ++ {"EM_TI_ARP32", Const, 11}, ++ {"EM_TI_C2000", Const, 11}, ++ {"EM_TI_C5500", Const, 11}, ++ {"EM_TI_C6000", Const, 11}, ++ {"EM_TI_PRU", Const, 11}, ++ {"EM_TMM_GPP", Const, 11}, ++ {"EM_TPC", Const, 11}, ++ {"EM_TRICORE", Const, 0}, ++ {"EM_TRIMEDIA", Const, 11}, ++ {"EM_TSK3000", Const, 11}, ++ {"EM_UNICORE", Const, 11}, ++ {"EM_V800", Const, 0}, ++ {"EM_V850", Const, 11}, ++ {"EM_VAX", Const, 11}, ++ {"EM_VIDEOCORE", Const, 11}, ++ {"EM_VIDEOCORE3", Const, 11}, ++ {"EM_VIDEOCORE5", Const, 11}, ++ {"EM_VISIUM", Const, 11}, ++ {"EM_VPP500", Const, 0}, ++ {"EM_X86_64", Const, 0}, ++ {"EM_XCORE", Const, 11}, ++ {"EM_XGATE", Const, 11}, ++ {"EM_XIMO16", Const, 11}, ++ {"EM_XTENSA", Const, 11}, ++ {"EM_Z80", Const, 11}, ++ {"EM_ZSP", Const, 11}, ++ {"ET_CORE", Const, 0}, ++ {"ET_DYN", Const, 0}, ++ {"ET_EXEC", Const, 0}, ++ {"ET_HIOS", Const, 0}, ++ {"ET_HIPROC", Const, 0}, ++ {"ET_LOOS", Const, 0}, ++ {"ET_LOPROC", Const, 0}, ++ {"ET_NONE", Const, 0}, ++ {"ET_REL", Const, 0}, ++ {"EV_CURRENT", Const, 0}, ++ {"EV_NONE", Const, 0}, ++ {"ErrNoSymbols", Var, 4}, ++ {"File", Type, 0}, ++ {"File.FileHeader", Field, 0}, ++ {"File.Progs", Field, 0}, ++ {"File.Sections", Field, 0}, ++ {"FileHeader", Type, 0}, ++ {"FileHeader.ABIVersion", Field, 0}, ++ {"FileHeader.ByteOrder", Field, 0}, ++ {"FileHeader.Class", Field, 0}, ++ {"FileHeader.Data", Field, 0}, ++ {"FileHeader.Entry", Field, 1}, ++ {"FileHeader.Machine", Field, 0}, ++ {"FileHeader.OSABI", Field, 0}, ++ {"FileHeader.Type", Field, 0}, ++ {"FileHeader.Version", Field, 0}, ++ {"FormatError", Type, 0}, ++ {"Header32", Type, 0}, ++ {"Header32.Ehsize", Field, 0}, ++ {"Header32.Entry", Field, 0}, ++ {"Header32.Flags", Field, 0}, ++ {"Header32.Ident", Field, 0}, ++ {"Header32.Machine", Field, 0}, ++ {"Header32.Phentsize", Field, 0}, ++ {"Header32.Phnum", Field, 0}, ++ {"Header32.Phoff", Field, 0}, ++ {"Header32.Shentsize", Field, 0}, ++ {"Header32.Shnum", Field, 0}, ++ {"Header32.Shoff", Field, 0}, ++ {"Header32.Shstrndx", Field, 0}, ++ {"Header32.Type", Field, 0}, ++ {"Header32.Version", Field, 0}, ++ {"Header64", Type, 0}, ++ {"Header64.Ehsize", Field, 0}, ++ {"Header64.Entry", Field, 0}, ++ {"Header64.Flags", Field, 0}, ++ {"Header64.Ident", Field, 0}, ++ {"Header64.Machine", Field, 0}, ++ {"Header64.Phentsize", Field, 0}, ++ {"Header64.Phnum", Field, 0}, ++ {"Header64.Phoff", Field, 0}, ++ {"Header64.Shentsize", Field, 0}, ++ {"Header64.Shnum", Field, 0}, ++ {"Header64.Shoff", Field, 0}, ++ {"Header64.Shstrndx", Field, 0}, ++ {"Header64.Type", Field, 0}, ++ {"Header64.Version", Field, 0}, ++ {"ImportedSymbol", Type, 0}, ++ {"ImportedSymbol.Library", Field, 0}, ++ {"ImportedSymbol.Name", Field, 0}, ++ {"ImportedSymbol.Version", Field, 0}, ++ {"Machine", Type, 0}, ++ {"NT_FPREGSET", Const, 0}, ++ {"NT_PRPSINFO", Const, 0}, ++ {"NT_PRSTATUS", Const, 0}, ++ {"NType", Type, 0}, ++ {"NewFile", Func, 0}, ++ {"OSABI", Type, 0}, ++ {"Open", Func, 0}, ++ {"PF_MASKOS", Const, 0}, ++ {"PF_MASKPROC", Const, 0}, ++ {"PF_R", Const, 0}, ++ {"PF_W", Const, 0}, ++ {"PF_X", Const, 0}, ++ {"PT_AARCH64_ARCHEXT", Const, 16}, ++ {"PT_AARCH64_UNWIND", Const, 16}, ++ {"PT_ARM_ARCHEXT", Const, 16}, ++ {"PT_ARM_EXIDX", Const, 16}, ++ {"PT_DYNAMIC", Const, 0}, ++ {"PT_GNU_EH_FRAME", Const, 16}, ++ {"PT_GNU_MBIND_HI", Const, 16}, ++ {"PT_GNU_MBIND_LO", Const, 16}, ++ {"PT_GNU_PROPERTY", Const, 16}, ++ {"PT_GNU_RELRO", Const, 16}, ++ {"PT_GNU_STACK", Const, 16}, ++ {"PT_HIOS", Const, 0}, ++ {"PT_HIPROC", Const, 0}, ++ {"PT_INTERP", Const, 0}, ++ {"PT_LOAD", Const, 0}, ++ {"PT_LOOS", Const, 0}, ++ {"PT_LOPROC", Const, 0}, ++ {"PT_MIPS_ABIFLAGS", Const, 16}, ++ {"PT_MIPS_OPTIONS", Const, 16}, ++ {"PT_MIPS_REGINFO", Const, 16}, ++ {"PT_MIPS_RTPROC", Const, 16}, ++ {"PT_NOTE", Const, 0}, ++ {"PT_NULL", Const, 0}, ++ {"PT_OPENBSD_BOOTDATA", Const, 16}, ++ {"PT_OPENBSD_RANDOMIZE", Const, 16}, ++ {"PT_OPENBSD_WXNEEDED", Const, 16}, ++ {"PT_PAX_FLAGS", Const, 16}, ++ {"PT_PHDR", Const, 0}, ++ {"PT_S390_PGSTE", Const, 16}, ++ {"PT_SHLIB", Const, 0}, ++ {"PT_SUNWSTACK", Const, 16}, ++ {"PT_SUNW_EH_FRAME", Const, 16}, ++ {"PT_TLS", Const, 0}, ++ {"Prog", Type, 0}, ++ {"Prog.ProgHeader", Field, 0}, ++ {"Prog.ReaderAt", Field, 0}, ++ {"Prog32", Type, 0}, ++ {"Prog32.Align", Field, 0}, ++ {"Prog32.Filesz", Field, 0}, ++ {"Prog32.Flags", Field, 0}, ++ {"Prog32.Memsz", Field, 0}, ++ {"Prog32.Off", Field, 0}, ++ {"Prog32.Paddr", Field, 0}, ++ {"Prog32.Type", Field, 0}, ++ {"Prog32.Vaddr", Field, 0}, ++ {"Prog64", Type, 0}, ++ {"Prog64.Align", Field, 0}, ++ {"Prog64.Filesz", Field, 0}, ++ {"Prog64.Flags", Field, 0}, ++ {"Prog64.Memsz", Field, 0}, ++ {"Prog64.Off", Field, 0}, ++ {"Prog64.Paddr", Field, 0}, ++ {"Prog64.Type", Field, 0}, ++ {"Prog64.Vaddr", Field, 0}, ++ {"ProgFlag", Type, 0}, ++ {"ProgHeader", Type, 0}, ++ {"ProgHeader.Align", Field, 0}, ++ {"ProgHeader.Filesz", Field, 0}, ++ {"ProgHeader.Flags", Field, 0}, ++ {"ProgHeader.Memsz", Field, 0}, ++ {"ProgHeader.Off", Field, 0}, ++ {"ProgHeader.Paddr", Field, 0}, ++ {"ProgHeader.Type", Field, 0}, ++ {"ProgHeader.Vaddr", Field, 0}, ++ {"ProgType", Type, 0}, ++ {"R_386", Type, 0}, ++ {"R_386_16", Const, 10}, ++ {"R_386_32", Const, 0}, ++ {"R_386_32PLT", Const, 10}, ++ {"R_386_8", Const, 10}, ++ {"R_386_COPY", Const, 0}, ++ {"R_386_GLOB_DAT", Const, 0}, ++ {"R_386_GOT32", Const, 0}, ++ {"R_386_GOT32X", Const, 10}, ++ {"R_386_GOTOFF", Const, 0}, ++ {"R_386_GOTPC", Const, 0}, ++ {"R_386_IRELATIVE", Const, 10}, ++ {"R_386_JMP_SLOT", Const, 0}, ++ {"R_386_NONE", Const, 0}, ++ {"R_386_PC16", Const, 10}, ++ {"R_386_PC32", Const, 0}, ++ {"R_386_PC8", Const, 10}, ++ {"R_386_PLT32", Const, 0}, ++ {"R_386_RELATIVE", Const, 0}, ++ {"R_386_SIZE32", Const, 10}, ++ {"R_386_TLS_DESC", Const, 10}, ++ {"R_386_TLS_DESC_CALL", Const, 10}, ++ {"R_386_TLS_DTPMOD32", Const, 0}, ++ {"R_386_TLS_DTPOFF32", Const, 0}, ++ {"R_386_TLS_GD", Const, 0}, ++ {"R_386_TLS_GD_32", Const, 0}, ++ {"R_386_TLS_GD_CALL", Const, 0}, ++ {"R_386_TLS_GD_POP", Const, 0}, ++ {"R_386_TLS_GD_PUSH", Const, 0}, ++ {"R_386_TLS_GOTDESC", Const, 10}, ++ {"R_386_TLS_GOTIE", Const, 0}, ++ {"R_386_TLS_IE", Const, 0}, ++ {"R_386_TLS_IE_32", Const, 0}, ++ {"R_386_TLS_LDM", Const, 0}, ++ {"R_386_TLS_LDM_32", Const, 0}, ++ {"R_386_TLS_LDM_CALL", Const, 0}, ++ {"R_386_TLS_LDM_POP", Const, 0}, ++ {"R_386_TLS_LDM_PUSH", Const, 0}, ++ {"R_386_TLS_LDO_32", Const, 0}, ++ {"R_386_TLS_LE", Const, 0}, ++ {"R_386_TLS_LE_32", Const, 0}, ++ {"R_386_TLS_TPOFF", Const, 0}, ++ {"R_386_TLS_TPOFF32", Const, 0}, ++ {"R_390", Type, 7}, ++ {"R_390_12", Const, 7}, ++ {"R_390_16", Const, 7}, ++ {"R_390_20", Const, 7}, ++ {"R_390_32", Const, 7}, ++ {"R_390_64", Const, 7}, ++ {"R_390_8", Const, 7}, ++ {"R_390_COPY", Const, 7}, ++ {"R_390_GLOB_DAT", Const, 7}, ++ {"R_390_GOT12", Const, 7}, ++ {"R_390_GOT16", Const, 7}, ++ {"R_390_GOT20", Const, 7}, ++ {"R_390_GOT32", Const, 7}, ++ {"R_390_GOT64", Const, 7}, ++ {"R_390_GOTENT", Const, 7}, ++ {"R_390_GOTOFF", Const, 7}, ++ {"R_390_GOTOFF16", Const, 7}, ++ {"R_390_GOTOFF64", Const, 7}, ++ {"R_390_GOTPC", Const, 7}, ++ {"R_390_GOTPCDBL", Const, 7}, ++ {"R_390_GOTPLT12", Const, 7}, ++ {"R_390_GOTPLT16", Const, 7}, ++ {"R_390_GOTPLT20", Const, 7}, ++ {"R_390_GOTPLT32", Const, 7}, ++ {"R_390_GOTPLT64", Const, 7}, ++ {"R_390_GOTPLTENT", Const, 7}, ++ {"R_390_GOTPLTOFF16", Const, 7}, ++ {"R_390_GOTPLTOFF32", Const, 7}, ++ {"R_390_GOTPLTOFF64", Const, 7}, ++ {"R_390_JMP_SLOT", Const, 7}, ++ {"R_390_NONE", Const, 7}, ++ {"R_390_PC16", Const, 7}, ++ {"R_390_PC16DBL", Const, 7}, ++ {"R_390_PC32", Const, 7}, ++ {"R_390_PC32DBL", Const, 7}, ++ {"R_390_PC64", Const, 7}, ++ {"R_390_PLT16DBL", Const, 7}, ++ {"R_390_PLT32", Const, 7}, ++ {"R_390_PLT32DBL", Const, 7}, ++ {"R_390_PLT64", Const, 7}, ++ {"R_390_RELATIVE", Const, 7}, ++ {"R_390_TLS_DTPMOD", Const, 7}, ++ {"R_390_TLS_DTPOFF", Const, 7}, ++ {"R_390_TLS_GD32", Const, 7}, ++ {"R_390_TLS_GD64", Const, 7}, ++ {"R_390_TLS_GDCALL", Const, 7}, ++ {"R_390_TLS_GOTIE12", Const, 7}, ++ {"R_390_TLS_GOTIE20", Const, 7}, ++ {"R_390_TLS_GOTIE32", Const, 7}, ++ {"R_390_TLS_GOTIE64", Const, 7}, ++ {"R_390_TLS_IE32", Const, 7}, ++ {"R_390_TLS_IE64", Const, 7}, ++ {"R_390_TLS_IEENT", Const, 7}, ++ {"R_390_TLS_LDCALL", Const, 7}, ++ {"R_390_TLS_LDM32", Const, 7}, ++ {"R_390_TLS_LDM64", Const, 7}, ++ {"R_390_TLS_LDO32", Const, 7}, ++ {"R_390_TLS_LDO64", Const, 7}, ++ {"R_390_TLS_LE32", Const, 7}, ++ {"R_390_TLS_LE64", Const, 7}, ++ {"R_390_TLS_LOAD", Const, 7}, ++ {"R_390_TLS_TPOFF", Const, 7}, ++ {"R_AARCH64", Type, 4}, ++ {"R_AARCH64_ABS16", Const, 4}, ++ {"R_AARCH64_ABS32", Const, 4}, ++ {"R_AARCH64_ABS64", Const, 4}, ++ {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_ADR_GOT_PAGE", Const, 4}, ++ {"R_AARCH64_ADR_PREL_LO21", Const, 4}, ++ {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4}, ++ {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4}, ++ {"R_AARCH64_CALL26", Const, 4}, ++ {"R_AARCH64_CONDBR19", Const, 4}, ++ {"R_AARCH64_COPY", Const, 4}, ++ {"R_AARCH64_GLOB_DAT", Const, 4}, ++ {"R_AARCH64_GOT_LD_PREL19", Const, 4}, ++ {"R_AARCH64_IRELATIVE", Const, 4}, ++ {"R_AARCH64_JUMP26", Const, 4}, ++ {"R_AARCH64_JUMP_SLOT", Const, 4}, ++ {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10}, ++ {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10}, ++ {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4}, ++ {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_LD_PREL_LO19", Const, 4}, ++ {"R_AARCH64_MOVW_SABS_G0", Const, 4}, ++ {"R_AARCH64_MOVW_SABS_G1", Const, 4}, ++ {"R_AARCH64_MOVW_SABS_G2", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G0", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G1", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G2", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4}, ++ {"R_AARCH64_MOVW_UABS_G3", Const, 4}, ++ {"R_AARCH64_NONE", Const, 4}, ++ {"R_AARCH64_NULL", Const, 4}, ++ {"R_AARCH64_P32_ABS16", Const, 4}, ++ {"R_AARCH64_P32_ABS32", Const, 4}, ++ {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4}, ++ {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4}, ++ {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4}, ++ {"R_AARCH64_P32_CALL26", Const, 4}, ++ {"R_AARCH64_P32_CONDBR19", Const, 4}, ++ {"R_AARCH64_P32_COPY", Const, 4}, ++ {"R_AARCH64_P32_GLOB_DAT", Const, 4}, ++ {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4}, ++ {"R_AARCH64_P32_IRELATIVE", Const, 4}, ++ {"R_AARCH64_P32_JUMP26", Const, 4}, ++ {"R_AARCH64_P32_JUMP_SLOT", Const, 4}, ++ {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_LD_PREL_LO19", Const, 4}, ++ {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4}, ++ {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4}, ++ {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4}, ++ {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4}, ++ {"R_AARCH64_P32_PREL16", Const, 4}, ++ {"R_AARCH64_P32_PREL32", Const, 4}, ++ {"R_AARCH64_P32_RELATIVE", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_CALL", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4}, ++ {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4}, ++ {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, ++ {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, ++ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4}, ++ {"R_AARCH64_P32_TLS_DTPMOD", Const, 4}, ++ {"R_AARCH64_P32_TLS_DTPREL", Const, 4}, ++ {"R_AARCH64_P32_TLS_TPREL", Const, 4}, ++ {"R_AARCH64_P32_TSTBR14", Const, 4}, ++ {"R_AARCH64_PREL16", Const, 4}, ++ {"R_AARCH64_PREL32", Const, 4}, ++ {"R_AARCH64_PREL64", Const, 4}, ++ {"R_AARCH64_RELATIVE", Const, 4}, ++ {"R_AARCH64_TLSDESC", Const, 4}, ++ {"R_AARCH64_TLSDESC_ADD", Const, 4}, ++ {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4}, ++ {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4}, ++ {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4}, ++ {"R_AARCH64_TLSDESC_CALL", Const, 4}, ++ {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4}, ++ {"R_AARCH64_TLSDESC_LDR", Const, 4}, ++ {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4}, ++ {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4}, ++ {"R_AARCH64_TLSDESC_OFF_G1", Const, 4}, ++ {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4}, ++ {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4}, ++ {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10}, ++ {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10}, ++ {"R_AARCH64_TLSGD_MOVW_G1", Const, 10}, ++ {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, ++ {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4}, ++ {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, ++ {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4}, ++ {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4}, ++ {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10}, ++ {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10}, ++ {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10}, ++ {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10}, ++ {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4}, ++ {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4}, ++ {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, ++ {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10}, ++ {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10}, ++ {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4}, ++ {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, ++ {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4}, ++ {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4}, ++ {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4}, ++ {"R_AARCH64_TLS_DTPMOD64", Const, 4}, ++ {"R_AARCH64_TLS_DTPREL64", Const, 4}, ++ {"R_AARCH64_TLS_TPREL64", Const, 4}, ++ {"R_AARCH64_TSTBR14", Const, 4}, ++ {"R_ALPHA", Type, 0}, ++ {"R_ALPHA_BRADDR", Const, 0}, ++ {"R_ALPHA_COPY", Const, 0}, ++ {"R_ALPHA_GLOB_DAT", Const, 0}, ++ {"R_ALPHA_GPDISP", Const, 0}, ++ {"R_ALPHA_GPREL32", Const, 0}, ++ {"R_ALPHA_GPRELHIGH", Const, 0}, ++ {"R_ALPHA_GPRELLOW", Const, 0}, ++ {"R_ALPHA_GPVALUE", Const, 0}, ++ {"R_ALPHA_HINT", Const, 0}, ++ {"R_ALPHA_IMMED_BR_HI32", Const, 0}, ++ {"R_ALPHA_IMMED_GP_16", Const, 0}, ++ {"R_ALPHA_IMMED_GP_HI32", Const, 0}, ++ {"R_ALPHA_IMMED_LO32", Const, 0}, ++ {"R_ALPHA_IMMED_SCN_HI32", Const, 0}, ++ {"R_ALPHA_JMP_SLOT", Const, 0}, ++ {"R_ALPHA_LITERAL", Const, 0}, ++ {"R_ALPHA_LITUSE", Const, 0}, ++ {"R_ALPHA_NONE", Const, 0}, ++ {"R_ALPHA_OP_PRSHIFT", Const, 0}, ++ {"R_ALPHA_OP_PSUB", Const, 0}, ++ {"R_ALPHA_OP_PUSH", Const, 0}, ++ {"R_ALPHA_OP_STORE", Const, 0}, ++ {"R_ALPHA_REFLONG", Const, 0}, ++ {"R_ALPHA_REFQUAD", Const, 0}, ++ {"R_ALPHA_RELATIVE", Const, 0}, ++ {"R_ALPHA_SREL16", Const, 0}, ++ {"R_ALPHA_SREL32", Const, 0}, ++ {"R_ALPHA_SREL64", Const, 0}, ++ {"R_ARM", Type, 0}, ++ {"R_ARM_ABS12", Const, 0}, ++ {"R_ARM_ABS16", Const, 0}, ++ {"R_ARM_ABS32", Const, 0}, ++ {"R_ARM_ABS32_NOI", Const, 10}, ++ {"R_ARM_ABS8", Const, 0}, ++ {"R_ARM_ALU_PCREL_15_8", Const, 10}, ++ {"R_ARM_ALU_PCREL_23_15", Const, 10}, ++ {"R_ARM_ALU_PCREL_7_0", Const, 10}, ++ {"R_ARM_ALU_PC_G0", Const, 10}, ++ {"R_ARM_ALU_PC_G0_NC", Const, 10}, ++ {"R_ARM_ALU_PC_G1", Const, 10}, ++ {"R_ARM_ALU_PC_G1_NC", Const, 10}, ++ {"R_ARM_ALU_PC_G2", Const, 10}, ++ {"R_ARM_ALU_SBREL_19_12_NC", Const, 10}, ++ {"R_ARM_ALU_SBREL_27_20_CK", Const, 10}, ++ {"R_ARM_ALU_SB_G0", Const, 10}, ++ {"R_ARM_ALU_SB_G0_NC", Const, 10}, ++ {"R_ARM_ALU_SB_G1", Const, 10}, ++ {"R_ARM_ALU_SB_G1_NC", Const, 10}, ++ {"R_ARM_ALU_SB_G2", Const, 10}, ++ {"R_ARM_AMP_VCALL9", Const, 0}, ++ {"R_ARM_BASE_ABS", Const, 10}, ++ {"R_ARM_CALL", Const, 10}, ++ {"R_ARM_COPY", Const, 0}, ++ {"R_ARM_GLOB_DAT", Const, 0}, ++ {"R_ARM_GNU_VTENTRY", Const, 0}, ++ {"R_ARM_GNU_VTINHERIT", Const, 0}, ++ {"R_ARM_GOT32", Const, 0}, ++ {"R_ARM_GOTOFF", Const, 0}, ++ {"R_ARM_GOTOFF12", Const, 10}, ++ {"R_ARM_GOTPC", Const, 0}, ++ {"R_ARM_GOTRELAX", Const, 10}, ++ {"R_ARM_GOT_ABS", Const, 10}, ++ {"R_ARM_GOT_BREL12", Const, 10}, ++ {"R_ARM_GOT_PREL", Const, 10}, ++ {"R_ARM_IRELATIVE", Const, 10}, ++ {"R_ARM_JUMP24", Const, 10}, ++ {"R_ARM_JUMP_SLOT", Const, 0}, ++ {"R_ARM_LDC_PC_G0", Const, 10}, ++ {"R_ARM_LDC_PC_G1", Const, 10}, ++ {"R_ARM_LDC_PC_G2", Const, 10}, ++ {"R_ARM_LDC_SB_G0", Const, 10}, ++ {"R_ARM_LDC_SB_G1", Const, 10}, ++ {"R_ARM_LDC_SB_G2", Const, 10}, ++ {"R_ARM_LDRS_PC_G0", Const, 10}, ++ {"R_ARM_LDRS_PC_G1", Const, 10}, ++ {"R_ARM_LDRS_PC_G2", Const, 10}, ++ {"R_ARM_LDRS_SB_G0", Const, 10}, ++ {"R_ARM_LDRS_SB_G1", Const, 10}, ++ {"R_ARM_LDRS_SB_G2", Const, 10}, ++ {"R_ARM_LDR_PC_G1", Const, 10}, ++ {"R_ARM_LDR_PC_G2", Const, 10}, ++ {"R_ARM_LDR_SBREL_11_10_NC", Const, 10}, ++ {"R_ARM_LDR_SB_G0", Const, 10}, ++ {"R_ARM_LDR_SB_G1", Const, 10}, ++ {"R_ARM_LDR_SB_G2", Const, 10}, ++ {"R_ARM_ME_TOO", Const, 10}, ++ {"R_ARM_MOVT_ABS", Const, 10}, ++ {"R_ARM_MOVT_BREL", Const, 10}, ++ {"R_ARM_MOVT_PREL", Const, 10}, ++ {"R_ARM_MOVW_ABS_NC", Const, 10}, ++ {"R_ARM_MOVW_BREL", Const, 10}, ++ {"R_ARM_MOVW_BREL_NC", Const, 10}, ++ {"R_ARM_MOVW_PREL_NC", Const, 10}, ++ {"R_ARM_NONE", Const, 0}, ++ {"R_ARM_PC13", Const, 0}, ++ {"R_ARM_PC24", Const, 0}, ++ {"R_ARM_PLT32", Const, 0}, ++ {"R_ARM_PLT32_ABS", Const, 10}, ++ {"R_ARM_PREL31", Const, 10}, ++ {"R_ARM_PRIVATE_0", Const, 10}, ++ {"R_ARM_PRIVATE_1", Const, 10}, ++ {"R_ARM_PRIVATE_10", Const, 10}, ++ {"R_ARM_PRIVATE_11", Const, 10}, ++ {"R_ARM_PRIVATE_12", Const, 10}, ++ {"R_ARM_PRIVATE_13", Const, 10}, ++ {"R_ARM_PRIVATE_14", Const, 10}, ++ {"R_ARM_PRIVATE_15", Const, 10}, ++ {"R_ARM_PRIVATE_2", Const, 10}, ++ {"R_ARM_PRIVATE_3", Const, 10}, ++ {"R_ARM_PRIVATE_4", Const, 10}, ++ {"R_ARM_PRIVATE_5", Const, 10}, ++ {"R_ARM_PRIVATE_6", Const, 10}, ++ {"R_ARM_PRIVATE_7", Const, 10}, ++ {"R_ARM_PRIVATE_8", Const, 10}, ++ {"R_ARM_PRIVATE_9", Const, 10}, ++ {"R_ARM_RABS32", Const, 0}, ++ {"R_ARM_RBASE", Const, 0}, ++ {"R_ARM_REL32", Const, 0}, ++ {"R_ARM_REL32_NOI", Const, 10}, ++ {"R_ARM_RELATIVE", Const, 0}, ++ {"R_ARM_RPC24", Const, 0}, ++ {"R_ARM_RREL32", Const, 0}, ++ {"R_ARM_RSBREL32", Const, 0}, ++ {"R_ARM_RXPC25", Const, 10}, ++ {"R_ARM_SBREL31", Const, 10}, ++ {"R_ARM_SBREL32", Const, 0}, ++ {"R_ARM_SWI24", Const, 0}, ++ {"R_ARM_TARGET1", Const, 10}, ++ {"R_ARM_TARGET2", Const, 10}, ++ {"R_ARM_THM_ABS5", Const, 0}, ++ {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10}, ++ {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10}, ++ {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10}, ++ {"R_ARM_THM_ALU_ABS_G3", Const, 10}, ++ {"R_ARM_THM_ALU_PREL_11_0", Const, 10}, ++ {"R_ARM_THM_GOT_BREL12", Const, 10}, ++ {"R_ARM_THM_JUMP11", Const, 10}, ++ {"R_ARM_THM_JUMP19", Const, 10}, ++ {"R_ARM_THM_JUMP24", Const, 10}, ++ {"R_ARM_THM_JUMP6", Const, 10}, ++ {"R_ARM_THM_JUMP8", Const, 10}, ++ {"R_ARM_THM_MOVT_ABS", Const, 10}, ++ {"R_ARM_THM_MOVT_BREL", Const, 10}, ++ {"R_ARM_THM_MOVT_PREL", Const, 10}, ++ {"R_ARM_THM_MOVW_ABS_NC", Const, 10}, ++ {"R_ARM_THM_MOVW_BREL", Const, 10}, ++ {"R_ARM_THM_MOVW_BREL_NC", Const, 10}, ++ {"R_ARM_THM_MOVW_PREL_NC", Const, 10}, ++ {"R_ARM_THM_PC12", Const, 10}, ++ {"R_ARM_THM_PC22", Const, 0}, ++ {"R_ARM_THM_PC8", Const, 0}, ++ {"R_ARM_THM_RPC22", Const, 0}, ++ {"R_ARM_THM_SWI8", Const, 0}, ++ {"R_ARM_THM_TLS_CALL", Const, 10}, ++ {"R_ARM_THM_TLS_DESCSEQ16", Const, 10}, ++ {"R_ARM_THM_TLS_DESCSEQ32", Const, 10}, ++ {"R_ARM_THM_XPC22", Const, 0}, ++ {"R_ARM_TLS_CALL", Const, 10}, ++ {"R_ARM_TLS_DESCSEQ", Const, 10}, ++ {"R_ARM_TLS_DTPMOD32", Const, 10}, ++ {"R_ARM_TLS_DTPOFF32", Const, 10}, ++ {"R_ARM_TLS_GD32", Const, 10}, ++ {"R_ARM_TLS_GOTDESC", Const, 10}, ++ {"R_ARM_TLS_IE12GP", Const, 10}, ++ {"R_ARM_TLS_IE32", Const, 10}, ++ {"R_ARM_TLS_LDM32", Const, 10}, ++ {"R_ARM_TLS_LDO12", Const, 10}, ++ {"R_ARM_TLS_LDO32", Const, 10}, ++ {"R_ARM_TLS_LE12", Const, 10}, ++ {"R_ARM_TLS_LE32", Const, 10}, ++ {"R_ARM_TLS_TPOFF32", Const, 10}, ++ {"R_ARM_V4BX", Const, 10}, ++ {"R_ARM_XPC25", Const, 0}, ++ {"R_INFO", Func, 0}, ++ {"R_INFO32", Func, 0}, ++ {"R_LARCH", Type, 19}, ++ {"R_LARCH_32", Const, 19}, ++ {"R_LARCH_32_PCREL", Const, 20}, ++ {"R_LARCH_64", Const, 19}, ++ {"R_LARCH_64_PCREL", Const, 22}, ++ {"R_LARCH_ABS64_HI12", Const, 20}, ++ {"R_LARCH_ABS64_LO20", Const, 20}, ++ {"R_LARCH_ABS_HI20", Const, 20}, ++ {"R_LARCH_ABS_LO12", Const, 20}, ++ {"R_LARCH_ADD16", Const, 19}, ++ {"R_LARCH_ADD24", Const, 19}, ++ {"R_LARCH_ADD32", Const, 19}, ++ {"R_LARCH_ADD6", Const, 22}, ++ {"R_LARCH_ADD64", Const, 19}, ++ {"R_LARCH_ADD8", Const, 19}, ++ {"R_LARCH_ADD_ULEB128", Const, 22}, ++ {"R_LARCH_ALIGN", Const, 22}, ++ {"R_LARCH_B16", Const, 20}, ++ {"R_LARCH_B21", Const, 20}, ++ {"R_LARCH_B26", Const, 20}, ++ {"R_LARCH_CFA", Const, 22}, ++ {"R_LARCH_COPY", Const, 19}, ++ {"R_LARCH_DELETE", Const, 22}, ++ {"R_LARCH_GNU_VTENTRY", Const, 20}, ++ {"R_LARCH_GNU_VTINHERIT", Const, 20}, ++ {"R_LARCH_GOT64_HI12", Const, 20}, ++ {"R_LARCH_GOT64_LO20", Const, 20}, ++ {"R_LARCH_GOT64_PC_HI12", Const, 20}, ++ {"R_LARCH_GOT64_PC_LO20", Const, 20}, ++ {"R_LARCH_GOT_HI20", Const, 20}, ++ {"R_LARCH_GOT_LO12", Const, 20}, ++ {"R_LARCH_GOT_PC_HI20", Const, 20}, ++ {"R_LARCH_GOT_PC_LO12", Const, 20}, ++ {"R_LARCH_IRELATIVE", Const, 19}, ++ {"R_LARCH_JUMP_SLOT", Const, 19}, ++ {"R_LARCH_MARK_LA", Const, 19}, ++ {"R_LARCH_MARK_PCREL", Const, 19}, ++ {"R_LARCH_NONE", Const, 19}, ++ {"R_LARCH_PCALA64_HI12", Const, 20}, ++ {"R_LARCH_PCALA64_LO20", Const, 20}, ++ {"R_LARCH_PCALA_HI20", Const, 20}, ++ {"R_LARCH_PCALA_LO12", Const, 20}, ++ {"R_LARCH_PCREL20_S2", Const, 22}, ++ {"R_LARCH_RELATIVE", Const, 19}, ++ {"R_LARCH_RELAX", Const, 20}, ++ {"R_LARCH_SOP_ADD", Const, 19}, ++ {"R_LARCH_SOP_AND", Const, 19}, ++ {"R_LARCH_SOP_ASSERT", Const, 19}, ++ {"R_LARCH_SOP_IF_ELSE", Const, 19}, ++ {"R_LARCH_SOP_NOT", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_10_12", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_10_16", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_10_5", Const, 19}, ++ {"R_LARCH_SOP_POP_32_S_5_20", Const, 19}, ++ {"R_LARCH_SOP_POP_32_U", Const, 19}, ++ {"R_LARCH_SOP_POP_32_U_10_12", Const, 19}, ++ {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19}, ++ {"R_LARCH_SOP_PUSH_DUP", Const, 19}, ++ {"R_LARCH_SOP_PUSH_GPREL", Const, 19}, ++ {"R_LARCH_SOP_PUSH_PCREL", Const, 19}, ++ {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19}, ++ {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19}, ++ {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19}, ++ {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19}, ++ {"R_LARCH_SOP_SL", Const, 19}, ++ {"R_LARCH_SOP_SR", Const, 19}, ++ {"R_LARCH_SOP_SUB", Const, 19}, ++ {"R_LARCH_SUB16", Const, 19}, ++ {"R_LARCH_SUB24", Const, 19}, ++ {"R_LARCH_SUB32", Const, 19}, ++ {"R_LARCH_SUB6", Const, 22}, ++ {"R_LARCH_SUB64", Const, 19}, ++ {"R_LARCH_SUB8", Const, 19}, ++ {"R_LARCH_SUB_ULEB128", Const, 22}, ++ {"R_LARCH_TLS_DTPMOD32", Const, 19}, ++ {"R_LARCH_TLS_DTPMOD64", Const, 19}, ++ {"R_LARCH_TLS_DTPREL32", Const, 19}, ++ {"R_LARCH_TLS_DTPREL64", Const, 19}, ++ {"R_LARCH_TLS_GD_HI20", Const, 20}, ++ {"R_LARCH_TLS_GD_PC_HI20", Const, 20}, ++ {"R_LARCH_TLS_IE64_HI12", Const, 20}, ++ {"R_LARCH_TLS_IE64_LO20", Const, 20}, ++ {"R_LARCH_TLS_IE64_PC_HI12", Const, 20}, ++ {"R_LARCH_TLS_IE64_PC_LO20", Const, 20}, ++ {"R_LARCH_TLS_IE_HI20", Const, 20}, ++ {"R_LARCH_TLS_IE_LO12", Const, 20}, ++ {"R_LARCH_TLS_IE_PC_HI20", Const, 20}, ++ {"R_LARCH_TLS_IE_PC_LO12", Const, 20}, ++ {"R_LARCH_TLS_LD_HI20", Const, 20}, ++ {"R_LARCH_TLS_LD_PC_HI20", Const, 20}, ++ {"R_LARCH_TLS_LE64_HI12", Const, 20}, ++ {"R_LARCH_TLS_LE64_LO20", Const, 20}, ++ {"R_LARCH_TLS_LE_HI20", Const, 20}, ++ {"R_LARCH_TLS_LE_LO12", Const, 20}, ++ {"R_LARCH_TLS_TPREL32", Const, 19}, ++ {"R_LARCH_TLS_TPREL64", Const, 19}, ++ {"R_MIPS", Type, 6}, ++ {"R_MIPS_16", Const, 6}, ++ {"R_MIPS_26", Const, 6}, ++ {"R_MIPS_32", Const, 6}, ++ {"R_MIPS_64", Const, 6}, ++ {"R_MIPS_ADD_IMMEDIATE", Const, 6}, ++ {"R_MIPS_CALL16", Const, 6}, ++ {"R_MIPS_CALL_HI16", Const, 6}, ++ {"R_MIPS_CALL_LO16", Const, 6}, ++ {"R_MIPS_DELETE", Const, 6}, ++ {"R_MIPS_GOT16", Const, 6}, ++ {"R_MIPS_GOT_DISP", Const, 6}, ++ {"R_MIPS_GOT_HI16", Const, 6}, ++ {"R_MIPS_GOT_LO16", Const, 6}, ++ {"R_MIPS_GOT_OFST", Const, 6}, ++ {"R_MIPS_GOT_PAGE", Const, 6}, ++ {"R_MIPS_GPREL16", Const, 6}, ++ {"R_MIPS_GPREL32", Const, 6}, ++ {"R_MIPS_HI16", Const, 6}, ++ {"R_MIPS_HIGHER", Const, 6}, ++ {"R_MIPS_HIGHEST", Const, 6}, ++ {"R_MIPS_INSERT_A", Const, 6}, ++ {"R_MIPS_INSERT_B", Const, 6}, ++ {"R_MIPS_JALR", Const, 6}, ++ {"R_MIPS_LITERAL", Const, 6}, ++ {"R_MIPS_LO16", Const, 6}, ++ {"R_MIPS_NONE", Const, 6}, ++ {"R_MIPS_PC16", Const, 6}, ++ {"R_MIPS_PC32", Const, 22}, ++ {"R_MIPS_PJUMP", Const, 6}, ++ {"R_MIPS_REL16", Const, 6}, ++ {"R_MIPS_REL32", Const, 6}, ++ {"R_MIPS_RELGOT", Const, 6}, ++ {"R_MIPS_SCN_DISP", Const, 6}, ++ {"R_MIPS_SHIFT5", Const, 6}, ++ {"R_MIPS_SHIFT6", Const, 6}, ++ {"R_MIPS_SUB", Const, 6}, ++ {"R_MIPS_TLS_DTPMOD32", Const, 6}, ++ {"R_MIPS_TLS_DTPMOD64", Const, 6}, ++ {"R_MIPS_TLS_DTPREL32", Const, 6}, ++ {"R_MIPS_TLS_DTPREL64", Const, 6}, ++ {"R_MIPS_TLS_DTPREL_HI16", Const, 6}, ++ {"R_MIPS_TLS_DTPREL_LO16", Const, 6}, ++ {"R_MIPS_TLS_GD", Const, 6}, ++ {"R_MIPS_TLS_GOTTPREL", Const, 6}, ++ {"R_MIPS_TLS_LDM", Const, 6}, ++ {"R_MIPS_TLS_TPREL32", Const, 6}, ++ {"R_MIPS_TLS_TPREL64", Const, 6}, ++ {"R_MIPS_TLS_TPREL_HI16", Const, 6}, ++ {"R_MIPS_TLS_TPREL_LO16", Const, 6}, ++ {"R_PPC", Type, 0}, ++ {"R_PPC64", Type, 5}, ++ {"R_PPC64_ADDR14", Const, 5}, ++ {"R_PPC64_ADDR14_BRNTAKEN", Const, 5}, ++ {"R_PPC64_ADDR14_BRTAKEN", Const, 5}, ++ {"R_PPC64_ADDR16", Const, 5}, ++ {"R_PPC64_ADDR16_DS", Const, 5}, ++ {"R_PPC64_ADDR16_HA", Const, 5}, ++ {"R_PPC64_ADDR16_HI", Const, 5}, ++ {"R_PPC64_ADDR16_HIGH", Const, 10}, ++ {"R_PPC64_ADDR16_HIGHA", Const, 10}, ++ {"R_PPC64_ADDR16_HIGHER", Const, 5}, ++ {"R_PPC64_ADDR16_HIGHER34", Const, 20}, ++ {"R_PPC64_ADDR16_HIGHERA", Const, 5}, ++ {"R_PPC64_ADDR16_HIGHERA34", Const, 20}, ++ {"R_PPC64_ADDR16_HIGHEST", Const, 5}, ++ {"R_PPC64_ADDR16_HIGHEST34", Const, 20}, ++ {"R_PPC64_ADDR16_HIGHESTA", Const, 5}, ++ {"R_PPC64_ADDR16_HIGHESTA34", Const, 20}, ++ {"R_PPC64_ADDR16_LO", Const, 5}, ++ {"R_PPC64_ADDR16_LO_DS", Const, 5}, ++ {"R_PPC64_ADDR24", Const, 5}, ++ {"R_PPC64_ADDR32", Const, 5}, ++ {"R_PPC64_ADDR64", Const, 5}, ++ {"R_PPC64_ADDR64_LOCAL", Const, 10}, ++ {"R_PPC64_COPY", Const, 20}, ++ {"R_PPC64_D28", Const, 20}, ++ {"R_PPC64_D34", Const, 20}, ++ {"R_PPC64_D34_HA30", Const, 20}, ++ {"R_PPC64_D34_HI30", Const, 20}, ++ {"R_PPC64_D34_LO", Const, 20}, ++ {"R_PPC64_DTPMOD64", Const, 5}, ++ {"R_PPC64_DTPREL16", Const, 5}, ++ {"R_PPC64_DTPREL16_DS", Const, 5}, ++ {"R_PPC64_DTPREL16_HA", Const, 5}, ++ {"R_PPC64_DTPREL16_HI", Const, 5}, ++ {"R_PPC64_DTPREL16_HIGH", Const, 10}, ++ {"R_PPC64_DTPREL16_HIGHA", Const, 10}, ++ {"R_PPC64_DTPREL16_HIGHER", Const, 5}, ++ {"R_PPC64_DTPREL16_HIGHERA", Const, 5}, ++ {"R_PPC64_DTPREL16_HIGHEST", Const, 5}, ++ {"R_PPC64_DTPREL16_HIGHESTA", Const, 5}, ++ {"R_PPC64_DTPREL16_LO", Const, 5}, ++ {"R_PPC64_DTPREL16_LO_DS", Const, 5}, ++ {"R_PPC64_DTPREL34", Const, 20}, ++ {"R_PPC64_DTPREL64", Const, 5}, ++ {"R_PPC64_ENTRY", Const, 10}, ++ {"R_PPC64_GLOB_DAT", Const, 20}, ++ {"R_PPC64_GNU_VTENTRY", Const, 20}, ++ {"R_PPC64_GNU_VTINHERIT", Const, 20}, ++ {"R_PPC64_GOT16", Const, 5}, ++ {"R_PPC64_GOT16_DS", Const, 5}, ++ {"R_PPC64_GOT16_HA", Const, 5}, ++ {"R_PPC64_GOT16_HI", Const, 5}, ++ {"R_PPC64_GOT16_LO", Const, 5}, ++ {"R_PPC64_GOT16_LO_DS", Const, 5}, ++ {"R_PPC64_GOT_DTPREL16_DS", Const, 5}, ++ {"R_PPC64_GOT_DTPREL16_HA", Const, 5}, ++ {"R_PPC64_GOT_DTPREL16_HI", Const, 5}, ++ {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5}, ++ {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20}, ++ {"R_PPC64_GOT_PCREL34", Const, 20}, ++ {"R_PPC64_GOT_TLSGD16", Const, 5}, ++ {"R_PPC64_GOT_TLSGD16_HA", Const, 5}, ++ {"R_PPC64_GOT_TLSGD16_HI", Const, 5}, ++ {"R_PPC64_GOT_TLSGD16_LO", Const, 5}, ++ {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20}, ++ {"R_PPC64_GOT_TLSLD16", Const, 5}, ++ {"R_PPC64_GOT_TLSLD16_HA", Const, 5}, ++ {"R_PPC64_GOT_TLSLD16_HI", Const, 5}, ++ {"R_PPC64_GOT_TLSLD16_LO", Const, 5}, ++ {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20}, ++ {"R_PPC64_GOT_TPREL16_DS", Const, 5}, ++ {"R_PPC64_GOT_TPREL16_HA", Const, 5}, ++ {"R_PPC64_GOT_TPREL16_HI", Const, 5}, ++ {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5}, ++ {"R_PPC64_GOT_TPREL_PCREL34", Const, 20}, ++ {"R_PPC64_IRELATIVE", Const, 10}, ++ {"R_PPC64_JMP_IREL", Const, 10}, ++ {"R_PPC64_JMP_SLOT", Const, 5}, ++ {"R_PPC64_NONE", Const, 5}, ++ {"R_PPC64_PCREL28", Const, 20}, ++ {"R_PPC64_PCREL34", Const, 20}, ++ {"R_PPC64_PCREL_OPT", Const, 20}, ++ {"R_PPC64_PLT16_HA", Const, 20}, ++ {"R_PPC64_PLT16_HI", Const, 20}, ++ {"R_PPC64_PLT16_LO", Const, 20}, ++ {"R_PPC64_PLT16_LO_DS", Const, 10}, ++ {"R_PPC64_PLT32", Const, 20}, ++ {"R_PPC64_PLT64", Const, 20}, ++ {"R_PPC64_PLTCALL", Const, 20}, ++ {"R_PPC64_PLTCALL_NOTOC", Const, 20}, ++ {"R_PPC64_PLTGOT16", Const, 10}, ++ {"R_PPC64_PLTGOT16_DS", Const, 10}, ++ {"R_PPC64_PLTGOT16_HA", Const, 10}, ++ {"R_PPC64_PLTGOT16_HI", Const, 10}, ++ {"R_PPC64_PLTGOT16_LO", Const, 10}, ++ {"R_PPC64_PLTGOT_LO_DS", Const, 10}, ++ {"R_PPC64_PLTREL32", Const, 20}, ++ {"R_PPC64_PLTREL64", Const, 20}, ++ {"R_PPC64_PLTSEQ", Const, 20}, ++ {"R_PPC64_PLTSEQ_NOTOC", Const, 20}, ++ {"R_PPC64_PLT_PCREL34", Const, 20}, ++ {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20}, ++ {"R_PPC64_REL14", Const, 5}, ++ {"R_PPC64_REL14_BRNTAKEN", Const, 5}, ++ {"R_PPC64_REL14_BRTAKEN", Const, 5}, ++ {"R_PPC64_REL16", Const, 5}, ++ {"R_PPC64_REL16DX_HA", Const, 10}, ++ {"R_PPC64_REL16_HA", Const, 5}, ++ {"R_PPC64_REL16_HI", Const, 5}, ++ {"R_PPC64_REL16_HIGH", Const, 20}, ++ {"R_PPC64_REL16_HIGHA", Const, 20}, ++ {"R_PPC64_REL16_HIGHER", Const, 20}, ++ {"R_PPC64_REL16_HIGHER34", Const, 20}, ++ {"R_PPC64_REL16_HIGHERA", Const, 20}, ++ {"R_PPC64_REL16_HIGHERA34", Const, 20}, ++ {"R_PPC64_REL16_HIGHEST", Const, 20}, ++ {"R_PPC64_REL16_HIGHEST34", Const, 20}, ++ {"R_PPC64_REL16_HIGHESTA", Const, 20}, ++ {"R_PPC64_REL16_HIGHESTA34", Const, 20}, ++ {"R_PPC64_REL16_LO", Const, 5}, ++ {"R_PPC64_REL24", Const, 5}, ++ {"R_PPC64_REL24_NOTOC", Const, 10}, ++ {"R_PPC64_REL24_P9NOTOC", Const, 21}, ++ {"R_PPC64_REL30", Const, 20}, ++ {"R_PPC64_REL32", Const, 5}, ++ {"R_PPC64_REL64", Const, 5}, ++ {"R_PPC64_RELATIVE", Const, 18}, ++ {"R_PPC64_SECTOFF", Const, 20}, ++ {"R_PPC64_SECTOFF_DS", Const, 10}, ++ {"R_PPC64_SECTOFF_HA", Const, 20}, ++ {"R_PPC64_SECTOFF_HI", Const, 20}, ++ {"R_PPC64_SECTOFF_LO", Const, 20}, ++ {"R_PPC64_SECTOFF_LO_DS", Const, 10}, ++ {"R_PPC64_TLS", Const, 5}, ++ {"R_PPC64_TLSGD", Const, 5}, ++ {"R_PPC64_TLSLD", Const, 5}, ++ {"R_PPC64_TOC", Const, 5}, ++ {"R_PPC64_TOC16", Const, 5}, ++ {"R_PPC64_TOC16_DS", Const, 5}, ++ {"R_PPC64_TOC16_HA", Const, 5}, ++ {"R_PPC64_TOC16_HI", Const, 5}, ++ {"R_PPC64_TOC16_LO", Const, 5}, ++ {"R_PPC64_TOC16_LO_DS", Const, 5}, ++ {"R_PPC64_TOCSAVE", Const, 10}, ++ {"R_PPC64_TPREL16", Const, 5}, ++ {"R_PPC64_TPREL16_DS", Const, 5}, ++ {"R_PPC64_TPREL16_HA", Const, 5}, ++ {"R_PPC64_TPREL16_HI", Const, 5}, ++ {"R_PPC64_TPREL16_HIGH", Const, 10}, ++ {"R_PPC64_TPREL16_HIGHA", Const, 10}, ++ {"R_PPC64_TPREL16_HIGHER", Const, 5}, ++ {"R_PPC64_TPREL16_HIGHERA", Const, 5}, ++ {"R_PPC64_TPREL16_HIGHEST", Const, 5}, ++ {"R_PPC64_TPREL16_HIGHESTA", Const, 5}, ++ {"R_PPC64_TPREL16_LO", Const, 5}, ++ {"R_PPC64_TPREL16_LO_DS", Const, 5}, ++ {"R_PPC64_TPREL34", Const, 20}, ++ {"R_PPC64_TPREL64", Const, 5}, ++ {"R_PPC64_UADDR16", Const, 20}, ++ {"R_PPC64_UADDR32", Const, 20}, ++ {"R_PPC64_UADDR64", Const, 20}, ++ {"R_PPC_ADDR14", Const, 0}, ++ {"R_PPC_ADDR14_BRNTAKEN", Const, 0}, ++ {"R_PPC_ADDR14_BRTAKEN", Const, 0}, ++ {"R_PPC_ADDR16", Const, 0}, ++ {"R_PPC_ADDR16_HA", Const, 0}, ++ {"R_PPC_ADDR16_HI", Const, 0}, ++ {"R_PPC_ADDR16_LO", Const, 0}, ++ {"R_PPC_ADDR24", Const, 0}, ++ {"R_PPC_ADDR32", Const, 0}, ++ {"R_PPC_COPY", Const, 0}, ++ {"R_PPC_DTPMOD32", Const, 0}, ++ {"R_PPC_DTPREL16", Const, 0}, ++ {"R_PPC_DTPREL16_HA", Const, 0}, ++ {"R_PPC_DTPREL16_HI", Const, 0}, ++ {"R_PPC_DTPREL16_LO", Const, 0}, ++ {"R_PPC_DTPREL32", Const, 0}, ++ {"R_PPC_EMB_BIT_FLD", Const, 0}, ++ {"R_PPC_EMB_MRKREF", Const, 0}, ++ {"R_PPC_EMB_NADDR16", Const, 0}, ++ {"R_PPC_EMB_NADDR16_HA", Const, 0}, ++ {"R_PPC_EMB_NADDR16_HI", Const, 0}, ++ {"R_PPC_EMB_NADDR16_LO", Const, 0}, ++ {"R_PPC_EMB_NADDR32", Const, 0}, ++ {"R_PPC_EMB_RELSDA", Const, 0}, ++ {"R_PPC_EMB_RELSEC16", Const, 0}, ++ {"R_PPC_EMB_RELST_HA", Const, 0}, ++ {"R_PPC_EMB_RELST_HI", Const, 0}, ++ {"R_PPC_EMB_RELST_LO", Const, 0}, ++ {"R_PPC_EMB_SDA21", Const, 0}, ++ {"R_PPC_EMB_SDA2I16", Const, 0}, ++ {"R_PPC_EMB_SDA2REL", Const, 0}, ++ {"R_PPC_EMB_SDAI16", Const, 0}, ++ {"R_PPC_GLOB_DAT", Const, 0}, ++ {"R_PPC_GOT16", Const, 0}, ++ {"R_PPC_GOT16_HA", Const, 0}, ++ {"R_PPC_GOT16_HI", Const, 0}, ++ {"R_PPC_GOT16_LO", Const, 0}, ++ {"R_PPC_GOT_TLSGD16", Const, 0}, ++ {"R_PPC_GOT_TLSGD16_HA", Const, 0}, ++ {"R_PPC_GOT_TLSGD16_HI", Const, 0}, ++ {"R_PPC_GOT_TLSGD16_LO", Const, 0}, ++ {"R_PPC_GOT_TLSLD16", Const, 0}, ++ {"R_PPC_GOT_TLSLD16_HA", Const, 0}, ++ {"R_PPC_GOT_TLSLD16_HI", Const, 0}, ++ {"R_PPC_GOT_TLSLD16_LO", Const, 0}, ++ {"R_PPC_GOT_TPREL16", Const, 0}, ++ {"R_PPC_GOT_TPREL16_HA", Const, 0}, ++ {"R_PPC_GOT_TPREL16_HI", Const, 0}, ++ {"R_PPC_GOT_TPREL16_LO", Const, 0}, ++ {"R_PPC_JMP_SLOT", Const, 0}, ++ {"R_PPC_LOCAL24PC", Const, 0}, ++ {"R_PPC_NONE", Const, 0}, ++ {"R_PPC_PLT16_HA", Const, 0}, ++ {"R_PPC_PLT16_HI", Const, 0}, ++ {"R_PPC_PLT16_LO", Const, 0}, ++ {"R_PPC_PLT32", Const, 0}, ++ {"R_PPC_PLTREL24", Const, 0}, ++ {"R_PPC_PLTREL32", Const, 0}, ++ {"R_PPC_REL14", Const, 0}, ++ {"R_PPC_REL14_BRNTAKEN", Const, 0}, ++ {"R_PPC_REL14_BRTAKEN", Const, 0}, ++ {"R_PPC_REL24", Const, 0}, ++ {"R_PPC_REL32", Const, 0}, ++ {"R_PPC_RELATIVE", Const, 0}, ++ {"R_PPC_SDAREL16", Const, 0}, ++ {"R_PPC_SECTOFF", Const, 0}, ++ {"R_PPC_SECTOFF_HA", Const, 0}, ++ {"R_PPC_SECTOFF_HI", Const, 0}, ++ {"R_PPC_SECTOFF_LO", Const, 0}, ++ {"R_PPC_TLS", Const, 0}, ++ {"R_PPC_TPREL16", Const, 0}, ++ {"R_PPC_TPREL16_HA", Const, 0}, ++ {"R_PPC_TPREL16_HI", Const, 0}, ++ {"R_PPC_TPREL16_LO", Const, 0}, ++ {"R_PPC_TPREL32", Const, 0}, ++ {"R_PPC_UADDR16", Const, 0}, ++ {"R_PPC_UADDR32", Const, 0}, ++ {"R_RISCV", Type, 11}, ++ {"R_RISCV_32", Const, 11}, ++ {"R_RISCV_32_PCREL", Const, 12}, ++ {"R_RISCV_64", Const, 11}, ++ {"R_RISCV_ADD16", Const, 11}, ++ {"R_RISCV_ADD32", Const, 11}, ++ {"R_RISCV_ADD64", Const, 11}, ++ {"R_RISCV_ADD8", Const, 11}, ++ {"R_RISCV_ALIGN", Const, 11}, ++ {"R_RISCV_BRANCH", Const, 11}, ++ {"R_RISCV_CALL", Const, 11}, ++ {"R_RISCV_CALL_PLT", Const, 11}, ++ {"R_RISCV_COPY", Const, 11}, ++ {"R_RISCV_GNU_VTENTRY", Const, 11}, ++ {"R_RISCV_GNU_VTINHERIT", Const, 11}, ++ {"R_RISCV_GOT_HI20", Const, 11}, ++ {"R_RISCV_GPREL_I", Const, 11}, ++ {"R_RISCV_GPREL_S", Const, 11}, ++ {"R_RISCV_HI20", Const, 11}, ++ {"R_RISCV_JAL", Const, 11}, ++ {"R_RISCV_JUMP_SLOT", Const, 11}, ++ {"R_RISCV_LO12_I", Const, 11}, ++ {"R_RISCV_LO12_S", Const, 11}, ++ {"R_RISCV_NONE", Const, 11}, ++ {"R_RISCV_PCREL_HI20", Const, 11}, ++ {"R_RISCV_PCREL_LO12_I", Const, 11}, ++ {"R_RISCV_PCREL_LO12_S", Const, 11}, ++ {"R_RISCV_RELATIVE", Const, 11}, ++ {"R_RISCV_RELAX", Const, 11}, ++ {"R_RISCV_RVC_BRANCH", Const, 11}, ++ {"R_RISCV_RVC_JUMP", Const, 11}, ++ {"R_RISCV_RVC_LUI", Const, 11}, ++ {"R_RISCV_SET16", Const, 11}, ++ {"R_RISCV_SET32", Const, 11}, ++ {"R_RISCV_SET6", Const, 11}, ++ {"R_RISCV_SET8", Const, 11}, ++ {"R_RISCV_SUB16", Const, 11}, ++ {"R_RISCV_SUB32", Const, 11}, ++ {"R_RISCV_SUB6", Const, 11}, ++ {"R_RISCV_SUB64", Const, 11}, ++ {"R_RISCV_SUB8", Const, 11}, ++ {"R_RISCV_TLS_DTPMOD32", Const, 11}, ++ {"R_RISCV_TLS_DTPMOD64", Const, 11}, ++ {"R_RISCV_TLS_DTPREL32", Const, 11}, ++ {"R_RISCV_TLS_DTPREL64", Const, 11}, ++ {"R_RISCV_TLS_GD_HI20", Const, 11}, ++ {"R_RISCV_TLS_GOT_HI20", Const, 11}, ++ {"R_RISCV_TLS_TPREL32", Const, 11}, ++ {"R_RISCV_TLS_TPREL64", Const, 11}, ++ {"R_RISCV_TPREL_ADD", Const, 11}, ++ {"R_RISCV_TPREL_HI20", Const, 11}, ++ {"R_RISCV_TPREL_I", Const, 11}, ++ {"R_RISCV_TPREL_LO12_I", Const, 11}, ++ {"R_RISCV_TPREL_LO12_S", Const, 11}, ++ {"R_RISCV_TPREL_S", Const, 11}, ++ {"R_SPARC", Type, 0}, ++ {"R_SPARC_10", Const, 0}, ++ {"R_SPARC_11", Const, 0}, ++ {"R_SPARC_13", Const, 0}, ++ {"R_SPARC_16", Const, 0}, ++ {"R_SPARC_22", Const, 0}, ++ {"R_SPARC_32", Const, 0}, ++ {"R_SPARC_5", Const, 0}, ++ {"R_SPARC_6", Const, 0}, ++ {"R_SPARC_64", Const, 0}, ++ {"R_SPARC_7", Const, 0}, ++ {"R_SPARC_8", Const, 0}, ++ {"R_SPARC_COPY", Const, 0}, ++ {"R_SPARC_DISP16", Const, 0}, ++ {"R_SPARC_DISP32", Const, 0}, ++ {"R_SPARC_DISP64", Const, 0}, ++ {"R_SPARC_DISP8", Const, 0}, ++ {"R_SPARC_GLOB_DAT", Const, 0}, ++ {"R_SPARC_GLOB_JMP", Const, 0}, ++ {"R_SPARC_GOT10", Const, 0}, ++ {"R_SPARC_GOT13", Const, 0}, ++ {"R_SPARC_GOT22", Const, 0}, ++ {"R_SPARC_H44", Const, 0}, ++ {"R_SPARC_HH22", Const, 0}, ++ {"R_SPARC_HI22", Const, 0}, ++ {"R_SPARC_HIPLT22", Const, 0}, ++ {"R_SPARC_HIX22", Const, 0}, ++ {"R_SPARC_HM10", Const, 0}, ++ {"R_SPARC_JMP_SLOT", Const, 0}, ++ {"R_SPARC_L44", Const, 0}, ++ {"R_SPARC_LM22", Const, 0}, ++ {"R_SPARC_LO10", Const, 0}, ++ {"R_SPARC_LOPLT10", Const, 0}, ++ {"R_SPARC_LOX10", Const, 0}, ++ {"R_SPARC_M44", Const, 0}, ++ {"R_SPARC_NONE", Const, 0}, ++ {"R_SPARC_OLO10", Const, 0}, ++ {"R_SPARC_PC10", Const, 0}, ++ {"R_SPARC_PC22", Const, 0}, ++ {"R_SPARC_PCPLT10", Const, 0}, ++ {"R_SPARC_PCPLT22", Const, 0}, ++ {"R_SPARC_PCPLT32", Const, 0}, ++ {"R_SPARC_PC_HH22", Const, 0}, ++ {"R_SPARC_PC_HM10", Const, 0}, ++ {"R_SPARC_PC_LM22", Const, 0}, ++ {"R_SPARC_PLT32", Const, 0}, ++ {"R_SPARC_PLT64", Const, 0}, ++ {"R_SPARC_REGISTER", Const, 0}, ++ {"R_SPARC_RELATIVE", Const, 0}, ++ {"R_SPARC_UA16", Const, 0}, ++ {"R_SPARC_UA32", Const, 0}, ++ {"R_SPARC_UA64", Const, 0}, ++ {"R_SPARC_WDISP16", Const, 0}, ++ {"R_SPARC_WDISP19", Const, 0}, ++ {"R_SPARC_WDISP22", Const, 0}, ++ {"R_SPARC_WDISP30", Const, 0}, ++ {"R_SPARC_WPLT30", Const, 0}, ++ {"R_SYM32", Func, 0}, ++ {"R_SYM64", Func, 0}, ++ {"R_TYPE32", Func, 0}, ++ {"R_TYPE64", Func, 0}, ++ {"R_X86_64", Type, 0}, ++ {"R_X86_64_16", Const, 0}, ++ {"R_X86_64_32", Const, 0}, ++ {"R_X86_64_32S", Const, 0}, ++ {"R_X86_64_64", Const, 0}, ++ {"R_X86_64_8", Const, 0}, ++ {"R_X86_64_COPY", Const, 0}, ++ {"R_X86_64_DTPMOD64", Const, 0}, ++ {"R_X86_64_DTPOFF32", Const, 0}, ++ {"R_X86_64_DTPOFF64", Const, 0}, ++ {"R_X86_64_GLOB_DAT", Const, 0}, ++ {"R_X86_64_GOT32", Const, 0}, ++ {"R_X86_64_GOT64", Const, 10}, ++ {"R_X86_64_GOTOFF64", Const, 10}, ++ {"R_X86_64_GOTPC32", Const, 10}, ++ {"R_X86_64_GOTPC32_TLSDESC", Const, 10}, ++ {"R_X86_64_GOTPC64", Const, 10}, ++ {"R_X86_64_GOTPCREL", Const, 0}, ++ {"R_X86_64_GOTPCREL64", Const, 10}, ++ {"R_X86_64_GOTPCRELX", Const, 10}, ++ {"R_X86_64_GOTPLT64", Const, 10}, ++ {"R_X86_64_GOTTPOFF", Const, 0}, ++ {"R_X86_64_IRELATIVE", Const, 10}, ++ {"R_X86_64_JMP_SLOT", Const, 0}, ++ {"R_X86_64_NONE", Const, 0}, ++ {"R_X86_64_PC16", Const, 0}, ++ {"R_X86_64_PC32", Const, 0}, ++ {"R_X86_64_PC32_BND", Const, 10}, ++ {"R_X86_64_PC64", Const, 10}, ++ {"R_X86_64_PC8", Const, 0}, ++ {"R_X86_64_PLT32", Const, 0}, ++ {"R_X86_64_PLT32_BND", Const, 10}, ++ {"R_X86_64_PLTOFF64", Const, 10}, ++ {"R_X86_64_RELATIVE", Const, 0}, ++ {"R_X86_64_RELATIVE64", Const, 10}, ++ {"R_X86_64_REX_GOTPCRELX", Const, 10}, ++ {"R_X86_64_SIZE32", Const, 10}, ++ {"R_X86_64_SIZE64", Const, 10}, ++ {"R_X86_64_TLSDESC", Const, 10}, ++ {"R_X86_64_TLSDESC_CALL", Const, 10}, ++ {"R_X86_64_TLSGD", Const, 0}, ++ {"R_X86_64_TLSLD", Const, 0}, ++ {"R_X86_64_TPOFF32", Const, 0}, ++ {"R_X86_64_TPOFF64", Const, 0}, ++ {"Rel32", Type, 0}, ++ {"Rel32.Info", Field, 0}, ++ {"Rel32.Off", Field, 0}, ++ {"Rel64", Type, 0}, ++ {"Rel64.Info", Field, 0}, ++ {"Rel64.Off", Field, 0}, ++ {"Rela32", Type, 0}, ++ {"Rela32.Addend", Field, 0}, ++ {"Rela32.Info", Field, 0}, ++ {"Rela32.Off", Field, 0}, ++ {"Rela64", Type, 0}, ++ {"Rela64.Addend", Field, 0}, ++ {"Rela64.Info", Field, 0}, ++ {"Rela64.Off", Field, 0}, ++ {"SHF_ALLOC", Const, 0}, ++ {"SHF_COMPRESSED", Const, 6}, ++ {"SHF_EXECINSTR", Const, 0}, ++ {"SHF_GROUP", Const, 0}, ++ {"SHF_INFO_LINK", Const, 0}, ++ {"SHF_LINK_ORDER", Const, 0}, ++ {"SHF_MASKOS", Const, 0}, ++ {"SHF_MASKPROC", Const, 0}, ++ {"SHF_MERGE", Const, 0}, ++ {"SHF_OS_NONCONFORMING", Const, 0}, ++ {"SHF_STRINGS", Const, 0}, ++ {"SHF_TLS", Const, 0}, ++ {"SHF_WRITE", Const, 0}, ++ {"SHN_ABS", Const, 0}, ++ {"SHN_COMMON", Const, 0}, ++ {"SHN_HIOS", Const, 0}, ++ {"SHN_HIPROC", Const, 0}, ++ {"SHN_HIRESERVE", Const, 0}, ++ {"SHN_LOOS", Const, 0}, ++ {"SHN_LOPROC", Const, 0}, ++ {"SHN_LORESERVE", Const, 0}, ++ {"SHN_UNDEF", Const, 0}, ++ {"SHN_XINDEX", Const, 0}, ++ {"SHT_DYNAMIC", Const, 0}, ++ {"SHT_DYNSYM", Const, 0}, ++ {"SHT_FINI_ARRAY", Const, 0}, ++ {"SHT_GNU_ATTRIBUTES", Const, 0}, ++ {"SHT_GNU_HASH", Const, 0}, ++ {"SHT_GNU_LIBLIST", Const, 0}, ++ {"SHT_GNU_VERDEF", Const, 0}, ++ {"SHT_GNU_VERNEED", Const, 0}, ++ {"SHT_GNU_VERSYM", Const, 0}, ++ {"SHT_GROUP", Const, 0}, ++ {"SHT_HASH", Const, 0}, ++ {"SHT_HIOS", Const, 0}, ++ {"SHT_HIPROC", Const, 0}, ++ {"SHT_HIUSER", Const, 0}, ++ {"SHT_INIT_ARRAY", Const, 0}, ++ {"SHT_LOOS", Const, 0}, ++ {"SHT_LOPROC", Const, 0}, ++ {"SHT_LOUSER", Const, 0}, ++ {"SHT_MIPS_ABIFLAGS", Const, 17}, ++ {"SHT_NOBITS", Const, 0}, ++ {"SHT_NOTE", Const, 0}, ++ {"SHT_NULL", Const, 0}, ++ {"SHT_PREINIT_ARRAY", Const, 0}, ++ {"SHT_PROGBITS", Const, 0}, ++ {"SHT_REL", Const, 0}, ++ {"SHT_RELA", Const, 0}, ++ {"SHT_SHLIB", Const, 0}, ++ {"SHT_STRTAB", Const, 0}, ++ {"SHT_SYMTAB", Const, 0}, ++ {"SHT_SYMTAB_SHNDX", Const, 0}, ++ {"STB_GLOBAL", Const, 0}, ++ {"STB_HIOS", Const, 0}, ++ {"STB_HIPROC", Const, 0}, ++ {"STB_LOCAL", Const, 0}, ++ {"STB_LOOS", Const, 0}, ++ {"STB_LOPROC", Const, 0}, ++ {"STB_WEAK", Const, 0}, ++ {"STT_COMMON", Const, 0}, ++ {"STT_FILE", Const, 0}, ++ {"STT_FUNC", Const, 0}, ++ {"STT_HIOS", Const, 0}, ++ {"STT_HIPROC", Const, 0}, ++ {"STT_LOOS", Const, 0}, ++ {"STT_LOPROC", Const, 0}, ++ {"STT_NOTYPE", Const, 0}, ++ {"STT_OBJECT", Const, 0}, ++ {"STT_SECTION", Const, 0}, ++ {"STT_TLS", Const, 0}, ++ {"STV_DEFAULT", Const, 0}, ++ {"STV_HIDDEN", Const, 0}, ++ {"STV_INTERNAL", Const, 0}, ++ {"STV_PROTECTED", Const, 0}, ++ {"ST_BIND", Func, 0}, ++ {"ST_INFO", Func, 0}, ++ {"ST_TYPE", Func, 0}, ++ {"ST_VISIBILITY", Func, 0}, ++ {"Section", Type, 0}, ++ {"Section.ReaderAt", Field, 0}, ++ {"Section.SectionHeader", Field, 0}, ++ {"Section32", Type, 0}, ++ {"Section32.Addr", Field, 0}, ++ {"Section32.Addralign", Field, 0}, ++ {"Section32.Entsize", Field, 0}, ++ {"Section32.Flags", Field, 0}, ++ {"Section32.Info", Field, 0}, ++ {"Section32.Link", Field, 0}, ++ {"Section32.Name", Field, 0}, ++ {"Section32.Off", Field, 0}, ++ {"Section32.Size", Field, 0}, ++ {"Section32.Type", Field, 0}, ++ {"Section64", Type, 0}, ++ {"Section64.Addr", Field, 0}, ++ {"Section64.Addralign", Field, 0}, ++ {"Section64.Entsize", Field, 0}, ++ {"Section64.Flags", Field, 0}, ++ {"Section64.Info", Field, 0}, ++ {"Section64.Link", Field, 0}, ++ {"Section64.Name", Field, 0}, ++ {"Section64.Off", Field, 0}, ++ {"Section64.Size", Field, 0}, ++ {"Section64.Type", Field, 0}, ++ {"SectionFlag", Type, 0}, ++ {"SectionHeader", Type, 0}, ++ {"SectionHeader.Addr", Field, 0}, ++ {"SectionHeader.Addralign", Field, 0}, ++ {"SectionHeader.Entsize", Field, 0}, ++ {"SectionHeader.FileSize", Field, 6}, ++ {"SectionHeader.Flags", Field, 0}, ++ {"SectionHeader.Info", Field, 0}, ++ {"SectionHeader.Link", Field, 0}, ++ {"SectionHeader.Name", Field, 0}, ++ {"SectionHeader.Offset", Field, 0}, ++ {"SectionHeader.Size", Field, 0}, ++ {"SectionHeader.Type", Field, 0}, ++ {"SectionIndex", Type, 0}, ++ {"SectionType", Type, 0}, ++ {"Sym32", Type, 0}, ++ {"Sym32.Info", Field, 0}, ++ {"Sym32.Name", Field, 0}, ++ {"Sym32.Other", Field, 0}, ++ {"Sym32.Shndx", Field, 0}, ++ {"Sym32.Size", Field, 0}, ++ {"Sym32.Value", Field, 0}, ++ {"Sym32Size", Const, 0}, ++ {"Sym64", Type, 0}, ++ {"Sym64.Info", Field, 0}, ++ {"Sym64.Name", Field, 0}, ++ {"Sym64.Other", Field, 0}, ++ {"Sym64.Shndx", Field, 0}, ++ {"Sym64.Size", Field, 0}, ++ {"Sym64.Value", Field, 0}, ++ {"Sym64Size", Const, 0}, ++ {"SymBind", Type, 0}, ++ {"SymType", Type, 0}, ++ {"SymVis", Type, 0}, ++ {"Symbol", Type, 0}, ++ {"Symbol.Info", Field, 0}, ++ {"Symbol.Library", Field, 13}, ++ {"Symbol.Name", Field, 0}, ++ {"Symbol.Other", Field, 0}, ++ {"Symbol.Section", Field, 0}, ++ {"Symbol.Size", Field, 0}, ++ {"Symbol.Value", Field, 0}, ++ {"Symbol.Version", Field, 13}, ++ {"Type", Type, 0}, ++ {"Version", Type, 0}, ++ }, ++ "debug/gosym": { ++ {"(*DecodingError).Error", Method, 0}, ++ {"(*LineTable).LineToPC", Method, 0}, ++ {"(*LineTable).PCToLine", Method, 0}, ++ {"(*Sym).BaseName", Method, 0}, ++ {"(*Sym).PackageName", Method, 0}, ++ {"(*Sym).ReceiverName", Method, 0}, ++ {"(*Sym).Static", Method, 0}, ++ {"(*Table).LineToPC", Method, 0}, ++ {"(*Table).LookupFunc", Method, 0}, ++ {"(*Table).LookupSym", Method, 0}, ++ {"(*Table).PCToFunc", Method, 0}, ++ {"(*Table).PCToLine", Method, 0}, ++ {"(*Table).SymByAddr", Method, 0}, ++ {"(*UnknownLineError).Error", Method, 0}, ++ {"(Func).BaseName", Method, 0}, ++ {"(Func).PackageName", Method, 0}, ++ {"(Func).ReceiverName", Method, 0}, ++ {"(Func).Static", Method, 0}, ++ {"(UnknownFileError).Error", Method, 0}, ++ {"DecodingError", Type, 0}, ++ {"Func", Type, 0}, ++ {"Func.End", Field, 0}, ++ {"Func.Entry", Field, 0}, ++ {"Func.FrameSize", Field, 0}, ++ {"Func.LineTable", Field, 0}, ++ {"Func.Locals", Field, 0}, ++ {"Func.Obj", Field, 0}, ++ {"Func.Params", Field, 0}, ++ {"Func.Sym", Field, 0}, ++ {"LineTable", Type, 0}, ++ {"LineTable.Data", Field, 0}, ++ {"LineTable.Line", Field, 0}, ++ {"LineTable.PC", Field, 0}, ++ {"NewLineTable", Func, 0}, ++ {"NewTable", Func, 0}, ++ {"Obj", Type, 0}, ++ {"Obj.Funcs", Field, 0}, ++ {"Obj.Paths", Field, 0}, ++ {"Sym", Type, 0}, ++ {"Sym.Func", Field, 0}, ++ {"Sym.GoType", Field, 0}, ++ {"Sym.Name", Field, 0}, ++ {"Sym.Type", Field, 0}, ++ {"Sym.Value", Field, 0}, ++ {"Table", Type, 0}, ++ {"Table.Files", Field, 0}, ++ {"Table.Funcs", Field, 0}, ++ {"Table.Objs", Field, 0}, ++ {"Table.Syms", Field, 0}, ++ {"UnknownFileError", Type, 0}, ++ {"UnknownLineError", Type, 0}, ++ {"UnknownLineError.File", Field, 0}, ++ {"UnknownLineError.Line", Field, 0}, ++ }, ++ "debug/macho": { ++ {"(*FatFile).Close", Method, 3}, ++ {"(*File).Close", Method, 0}, ++ {"(*File).DWARF", Method, 0}, ++ {"(*File).ImportedLibraries", Method, 0}, ++ {"(*File).ImportedSymbols", Method, 0}, ++ {"(*File).Section", Method, 0}, ++ {"(*File).Segment", Method, 0}, ++ {"(*FormatError).Error", Method, 0}, ++ {"(*Section).Data", Method, 0}, ++ {"(*Section).Open", Method, 0}, ++ {"(*Segment).Data", Method, 0}, ++ {"(*Segment).Open", Method, 0}, ++ {"(Cpu).GoString", Method, 0}, ++ {"(Cpu).String", Method, 0}, ++ {"(Dylib).Raw", Method, 0}, ++ {"(Dysymtab).Raw", Method, 0}, ++ {"(FatArch).Close", Method, 3}, ++ {"(FatArch).DWARF", Method, 3}, ++ {"(FatArch).ImportedLibraries", Method, 3}, ++ {"(FatArch).ImportedSymbols", Method, 3}, ++ {"(FatArch).Section", Method, 3}, ++ {"(FatArch).Segment", Method, 3}, ++ {"(LoadBytes).Raw", Method, 0}, ++ {"(LoadCmd).GoString", Method, 0}, ++ {"(LoadCmd).String", Method, 0}, ++ {"(RelocTypeARM).GoString", Method, 10}, ++ {"(RelocTypeARM).String", Method, 10}, ++ {"(RelocTypeARM64).GoString", Method, 10}, ++ {"(RelocTypeARM64).String", Method, 10}, ++ {"(RelocTypeGeneric).GoString", Method, 10}, ++ {"(RelocTypeGeneric).String", Method, 10}, ++ {"(RelocTypeX86_64).GoString", Method, 10}, ++ {"(RelocTypeX86_64).String", Method, 10}, ++ {"(Rpath).Raw", Method, 10}, ++ {"(Section).ReadAt", Method, 0}, ++ {"(Segment).Raw", Method, 0}, ++ {"(Segment).ReadAt", Method, 0}, ++ {"(Symtab).Raw", Method, 0}, ++ {"(Type).GoString", Method, 10}, ++ {"(Type).String", Method, 10}, ++ {"ARM64_RELOC_ADDEND", Const, 10}, ++ {"ARM64_RELOC_BRANCH26", Const, 10}, ++ {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10}, ++ {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10}, ++ {"ARM64_RELOC_PAGE21", Const, 10}, ++ {"ARM64_RELOC_PAGEOFF12", Const, 10}, ++ {"ARM64_RELOC_POINTER_TO_GOT", Const, 10}, ++ {"ARM64_RELOC_SUBTRACTOR", Const, 10}, ++ {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10}, ++ {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10}, ++ {"ARM64_RELOC_UNSIGNED", Const, 10}, ++ {"ARM_RELOC_BR24", Const, 10}, ++ {"ARM_RELOC_HALF", Const, 10}, ++ {"ARM_RELOC_HALF_SECTDIFF", Const, 10}, ++ {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10}, ++ {"ARM_RELOC_PAIR", Const, 10}, ++ {"ARM_RELOC_PB_LA_PTR", Const, 10}, ++ {"ARM_RELOC_SECTDIFF", Const, 10}, ++ {"ARM_RELOC_VANILLA", Const, 10}, ++ {"ARM_THUMB_32BIT_BRANCH", Const, 10}, ++ {"ARM_THUMB_RELOC_BR22", Const, 10}, ++ {"Cpu", Type, 0}, ++ {"Cpu386", Const, 0}, ++ {"CpuAmd64", Const, 0}, ++ {"CpuArm", Const, 3}, ++ {"CpuArm64", Const, 11}, ++ {"CpuPpc", Const, 3}, ++ {"CpuPpc64", Const, 3}, ++ {"Dylib", Type, 0}, ++ {"Dylib.CompatVersion", Field, 0}, ++ {"Dylib.CurrentVersion", Field, 0}, ++ {"Dylib.LoadBytes", Field, 0}, ++ {"Dylib.Name", Field, 0}, ++ {"Dylib.Time", Field, 0}, ++ {"DylibCmd", Type, 0}, ++ {"DylibCmd.Cmd", Field, 0}, ++ {"DylibCmd.CompatVersion", Field, 0}, ++ {"DylibCmd.CurrentVersion", Field, 0}, ++ {"DylibCmd.Len", Field, 0}, ++ {"DylibCmd.Name", Field, 0}, ++ {"DylibCmd.Time", Field, 0}, ++ {"Dysymtab", Type, 0}, ++ {"Dysymtab.DysymtabCmd", Field, 0}, ++ {"Dysymtab.IndirectSyms", Field, 0}, ++ {"Dysymtab.LoadBytes", Field, 0}, ++ {"DysymtabCmd", Type, 0}, ++ {"DysymtabCmd.Cmd", Field, 0}, ++ {"DysymtabCmd.Extrefsymoff", Field, 0}, ++ {"DysymtabCmd.Extreloff", Field, 0}, ++ {"DysymtabCmd.Iextdefsym", Field, 0}, ++ {"DysymtabCmd.Ilocalsym", Field, 0}, ++ {"DysymtabCmd.Indirectsymoff", Field, 0}, ++ {"DysymtabCmd.Iundefsym", Field, 0}, ++ {"DysymtabCmd.Len", Field, 0}, ++ {"DysymtabCmd.Locreloff", Field, 0}, ++ {"DysymtabCmd.Modtaboff", Field, 0}, ++ {"DysymtabCmd.Nextdefsym", Field, 0}, ++ {"DysymtabCmd.Nextrefsyms", Field, 0}, ++ {"DysymtabCmd.Nextrel", Field, 0}, ++ {"DysymtabCmd.Nindirectsyms", Field, 0}, ++ {"DysymtabCmd.Nlocalsym", Field, 0}, ++ {"DysymtabCmd.Nlocrel", Field, 0}, ++ {"DysymtabCmd.Nmodtab", Field, 0}, ++ {"DysymtabCmd.Ntoc", Field, 0}, ++ {"DysymtabCmd.Nundefsym", Field, 0}, ++ {"DysymtabCmd.Tocoffset", Field, 0}, ++ {"ErrNotFat", Var, 3}, ++ {"FatArch", Type, 3}, ++ {"FatArch.FatArchHeader", Field, 3}, ++ {"FatArch.File", Field, 3}, ++ {"FatArchHeader", Type, 3}, ++ {"FatArchHeader.Align", Field, 3}, ++ {"FatArchHeader.Cpu", Field, 3}, ++ {"FatArchHeader.Offset", Field, 3}, ++ {"FatArchHeader.Size", Field, 3}, ++ {"FatArchHeader.SubCpu", Field, 3}, ++ {"FatFile", Type, 3}, ++ {"FatFile.Arches", Field, 3}, ++ {"FatFile.Magic", Field, 3}, ++ {"File", Type, 0}, ++ {"File.ByteOrder", Field, 0}, ++ {"File.Dysymtab", Field, 0}, ++ {"File.FileHeader", Field, 0}, ++ {"File.Loads", Field, 0}, ++ {"File.Sections", Field, 0}, ++ {"File.Symtab", Field, 0}, ++ {"FileHeader", Type, 0}, ++ {"FileHeader.Cmdsz", Field, 0}, ++ {"FileHeader.Cpu", Field, 0}, ++ {"FileHeader.Flags", Field, 0}, ++ {"FileHeader.Magic", Field, 0}, ++ {"FileHeader.Ncmd", Field, 0}, ++ {"FileHeader.SubCpu", Field, 0}, ++ {"FileHeader.Type", Field, 0}, ++ {"FlagAllModsBound", Const, 10}, ++ {"FlagAllowStackExecution", Const, 10}, ++ {"FlagAppExtensionSafe", Const, 10}, ++ {"FlagBindAtLoad", Const, 10}, ++ {"FlagBindsToWeak", Const, 10}, ++ {"FlagCanonical", Const, 10}, ++ {"FlagDeadStrippableDylib", Const, 10}, ++ {"FlagDyldLink", Const, 10}, ++ {"FlagForceFlat", Const, 10}, ++ {"FlagHasTLVDescriptors", Const, 10}, ++ {"FlagIncrLink", Const, 10}, ++ {"FlagLazyInit", Const, 10}, ++ {"FlagNoFixPrebinding", Const, 10}, ++ {"FlagNoHeapExecution", Const, 10}, ++ {"FlagNoMultiDefs", Const, 10}, ++ {"FlagNoReexportedDylibs", Const, 10}, ++ {"FlagNoUndefs", Const, 10}, ++ {"FlagPIE", Const, 10}, ++ {"FlagPrebindable", Const, 10}, ++ {"FlagPrebound", Const, 10}, ++ {"FlagRootSafe", Const, 10}, ++ {"FlagSetuidSafe", Const, 10}, ++ {"FlagSplitSegs", Const, 10}, ++ {"FlagSubsectionsViaSymbols", Const, 10}, ++ {"FlagTwoLevel", Const, 10}, ++ {"FlagWeakDefines", Const, 10}, ++ {"FormatError", Type, 0}, ++ {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10}, ++ {"GENERIC_RELOC_PAIR", Const, 10}, ++ {"GENERIC_RELOC_PB_LA_PTR", Const, 10}, ++ {"GENERIC_RELOC_SECTDIFF", Const, 10}, ++ {"GENERIC_RELOC_TLV", Const, 10}, ++ {"GENERIC_RELOC_VANILLA", Const, 10}, ++ {"Load", Type, 0}, ++ {"LoadBytes", Type, 0}, ++ {"LoadCmd", Type, 0}, ++ {"LoadCmdDylib", Const, 0}, ++ {"LoadCmdDylinker", Const, 0}, ++ {"LoadCmdDysymtab", Const, 0}, ++ {"LoadCmdRpath", Const, 10}, ++ {"LoadCmdSegment", Const, 0}, ++ {"LoadCmdSegment64", Const, 0}, ++ {"LoadCmdSymtab", Const, 0}, ++ {"LoadCmdThread", Const, 0}, ++ {"LoadCmdUnixThread", Const, 0}, ++ {"Magic32", Const, 0}, ++ {"Magic64", Const, 0}, ++ {"MagicFat", Const, 3}, ++ {"NewFatFile", Func, 3}, ++ {"NewFile", Func, 0}, ++ {"Nlist32", Type, 0}, ++ {"Nlist32.Desc", Field, 0}, ++ {"Nlist32.Name", Field, 0}, ++ {"Nlist32.Sect", Field, 0}, ++ {"Nlist32.Type", Field, 0}, ++ {"Nlist32.Value", Field, 0}, ++ {"Nlist64", Type, 0}, ++ {"Nlist64.Desc", Field, 0}, ++ {"Nlist64.Name", Field, 0}, ++ {"Nlist64.Sect", Field, 0}, ++ {"Nlist64.Type", Field, 0}, ++ {"Nlist64.Value", Field, 0}, ++ {"Open", Func, 0}, ++ {"OpenFat", Func, 3}, ++ {"Regs386", Type, 0}, ++ {"Regs386.AX", Field, 0}, ++ {"Regs386.BP", Field, 0}, ++ {"Regs386.BX", Field, 0}, ++ {"Regs386.CS", Field, 0}, ++ {"Regs386.CX", Field, 0}, ++ {"Regs386.DI", Field, 0}, ++ {"Regs386.DS", Field, 0}, ++ {"Regs386.DX", Field, 0}, ++ {"Regs386.ES", Field, 0}, ++ {"Regs386.FLAGS", Field, 0}, ++ {"Regs386.FS", Field, 0}, ++ {"Regs386.GS", Field, 0}, ++ {"Regs386.IP", Field, 0}, ++ {"Regs386.SI", Field, 0}, ++ {"Regs386.SP", Field, 0}, ++ {"Regs386.SS", Field, 0}, ++ {"RegsAMD64", Type, 0}, ++ {"RegsAMD64.AX", Field, 0}, ++ {"RegsAMD64.BP", Field, 0}, ++ {"RegsAMD64.BX", Field, 0}, ++ {"RegsAMD64.CS", Field, 0}, ++ {"RegsAMD64.CX", Field, 0}, ++ {"RegsAMD64.DI", Field, 0}, ++ {"RegsAMD64.DX", Field, 0}, ++ {"RegsAMD64.FLAGS", Field, 0}, ++ {"RegsAMD64.FS", Field, 0}, ++ {"RegsAMD64.GS", Field, 0}, ++ {"RegsAMD64.IP", Field, 0}, ++ {"RegsAMD64.R10", Field, 0}, ++ {"RegsAMD64.R11", Field, 0}, ++ {"RegsAMD64.R12", Field, 0}, ++ {"RegsAMD64.R13", Field, 0}, ++ {"RegsAMD64.R14", Field, 0}, ++ {"RegsAMD64.R15", Field, 0}, ++ {"RegsAMD64.R8", Field, 0}, ++ {"RegsAMD64.R9", Field, 0}, ++ {"RegsAMD64.SI", Field, 0}, ++ {"RegsAMD64.SP", Field, 0}, ++ {"Reloc", Type, 10}, ++ {"Reloc.Addr", Field, 10}, ++ {"Reloc.Extern", Field, 10}, ++ {"Reloc.Len", Field, 10}, ++ {"Reloc.Pcrel", Field, 10}, ++ {"Reloc.Scattered", Field, 10}, ++ {"Reloc.Type", Field, 10}, ++ {"Reloc.Value", Field, 10}, ++ {"RelocTypeARM", Type, 10}, ++ {"RelocTypeARM64", Type, 10}, ++ {"RelocTypeGeneric", Type, 10}, ++ {"RelocTypeX86_64", Type, 10}, ++ {"Rpath", Type, 10}, ++ {"Rpath.LoadBytes", Field, 10}, ++ {"Rpath.Path", Field, 10}, ++ {"RpathCmd", Type, 10}, ++ {"RpathCmd.Cmd", Field, 10}, ++ {"RpathCmd.Len", Field, 10}, ++ {"RpathCmd.Path", Field, 10}, ++ {"Section", Type, 0}, ++ {"Section.ReaderAt", Field, 0}, ++ {"Section.Relocs", Field, 10}, ++ {"Section.SectionHeader", Field, 0}, ++ {"Section32", Type, 0}, ++ {"Section32.Addr", Field, 0}, ++ {"Section32.Align", Field, 0}, ++ {"Section32.Flags", Field, 0}, ++ {"Section32.Name", Field, 0}, ++ {"Section32.Nreloc", Field, 0}, ++ {"Section32.Offset", Field, 0}, ++ {"Section32.Reloff", Field, 0}, ++ {"Section32.Reserve1", Field, 0}, ++ {"Section32.Reserve2", Field, 0}, ++ {"Section32.Seg", Field, 0}, ++ {"Section32.Size", Field, 0}, ++ {"Section64", Type, 0}, ++ {"Section64.Addr", Field, 0}, ++ {"Section64.Align", Field, 0}, ++ {"Section64.Flags", Field, 0}, ++ {"Section64.Name", Field, 0}, ++ {"Section64.Nreloc", Field, 0}, ++ {"Section64.Offset", Field, 0}, ++ {"Section64.Reloff", Field, 0}, ++ {"Section64.Reserve1", Field, 0}, ++ {"Section64.Reserve2", Field, 0}, ++ {"Section64.Reserve3", Field, 0}, ++ {"Section64.Seg", Field, 0}, ++ {"Section64.Size", Field, 0}, ++ {"SectionHeader", Type, 0}, ++ {"SectionHeader.Addr", Field, 0}, ++ {"SectionHeader.Align", Field, 0}, ++ {"SectionHeader.Flags", Field, 0}, ++ {"SectionHeader.Name", Field, 0}, ++ {"SectionHeader.Nreloc", Field, 0}, ++ {"SectionHeader.Offset", Field, 0}, ++ {"SectionHeader.Reloff", Field, 0}, ++ {"SectionHeader.Seg", Field, 0}, ++ {"SectionHeader.Size", Field, 0}, ++ {"Segment", Type, 0}, ++ {"Segment.LoadBytes", Field, 0}, ++ {"Segment.ReaderAt", Field, 0}, ++ {"Segment.SegmentHeader", Field, 0}, ++ {"Segment32", Type, 0}, ++ {"Segment32.Addr", Field, 0}, ++ {"Segment32.Cmd", Field, 0}, ++ {"Segment32.Filesz", Field, 0}, ++ {"Segment32.Flag", Field, 0}, ++ {"Segment32.Len", Field, 0}, ++ {"Segment32.Maxprot", Field, 0}, ++ {"Segment32.Memsz", Field, 0}, ++ {"Segment32.Name", Field, 0}, ++ {"Segment32.Nsect", Field, 0}, ++ {"Segment32.Offset", Field, 0}, ++ {"Segment32.Prot", Field, 0}, ++ {"Segment64", Type, 0}, ++ {"Segment64.Addr", Field, 0}, ++ {"Segment64.Cmd", Field, 0}, ++ {"Segment64.Filesz", Field, 0}, ++ {"Segment64.Flag", Field, 0}, ++ {"Segment64.Len", Field, 0}, ++ {"Segment64.Maxprot", Field, 0}, ++ {"Segment64.Memsz", Field, 0}, ++ {"Segment64.Name", Field, 0}, ++ {"Segment64.Nsect", Field, 0}, ++ {"Segment64.Offset", Field, 0}, ++ {"Segment64.Prot", Field, 0}, ++ {"SegmentHeader", Type, 0}, ++ {"SegmentHeader.Addr", Field, 0}, ++ {"SegmentHeader.Cmd", Field, 0}, ++ {"SegmentHeader.Filesz", Field, 0}, ++ {"SegmentHeader.Flag", Field, 0}, ++ {"SegmentHeader.Len", Field, 0}, ++ {"SegmentHeader.Maxprot", Field, 0}, ++ {"SegmentHeader.Memsz", Field, 0}, ++ {"SegmentHeader.Name", Field, 0}, ++ {"SegmentHeader.Nsect", Field, 0}, ++ {"SegmentHeader.Offset", Field, 0}, ++ {"SegmentHeader.Prot", Field, 0}, ++ {"Symbol", Type, 0}, ++ {"Symbol.Desc", Field, 0}, ++ {"Symbol.Name", Field, 0}, ++ {"Symbol.Sect", Field, 0}, ++ {"Symbol.Type", Field, 0}, ++ {"Symbol.Value", Field, 0}, ++ {"Symtab", Type, 0}, ++ {"Symtab.LoadBytes", Field, 0}, ++ {"Symtab.Syms", Field, 0}, ++ {"Symtab.SymtabCmd", Field, 0}, ++ {"SymtabCmd", Type, 0}, ++ {"SymtabCmd.Cmd", Field, 0}, ++ {"SymtabCmd.Len", Field, 0}, ++ {"SymtabCmd.Nsyms", Field, 0}, ++ {"SymtabCmd.Stroff", Field, 0}, ++ {"SymtabCmd.Strsize", Field, 0}, ++ {"SymtabCmd.Symoff", Field, 0}, ++ {"Thread", Type, 0}, ++ {"Thread.Cmd", Field, 0}, ++ {"Thread.Data", Field, 0}, ++ {"Thread.Len", Field, 0}, ++ {"Thread.Type", Field, 0}, ++ {"Type", Type, 0}, ++ {"TypeBundle", Const, 3}, ++ {"TypeDylib", Const, 3}, ++ {"TypeExec", Const, 0}, ++ {"TypeObj", Const, 0}, ++ {"X86_64_RELOC_BRANCH", Const, 10}, ++ {"X86_64_RELOC_GOT", Const, 10}, ++ {"X86_64_RELOC_GOT_LOAD", Const, 10}, ++ {"X86_64_RELOC_SIGNED", Const, 10}, ++ {"X86_64_RELOC_SIGNED_1", Const, 10}, ++ {"X86_64_RELOC_SIGNED_2", Const, 10}, ++ {"X86_64_RELOC_SIGNED_4", Const, 10}, ++ {"X86_64_RELOC_SUBTRACTOR", Const, 10}, ++ {"X86_64_RELOC_TLV", Const, 10}, ++ {"X86_64_RELOC_UNSIGNED", Const, 10}, ++ }, ++ "debug/pe": { ++ {"(*COFFSymbol).FullName", Method, 8}, ++ {"(*File).COFFSymbolReadSectionDefAux", Method, 19}, ++ {"(*File).Close", Method, 0}, ++ {"(*File).DWARF", Method, 0}, ++ {"(*File).ImportedLibraries", Method, 0}, ++ {"(*File).ImportedSymbols", Method, 0}, ++ {"(*File).Section", Method, 0}, ++ {"(*FormatError).Error", Method, 0}, ++ {"(*Section).Data", Method, 0}, ++ {"(*Section).Open", Method, 0}, ++ {"(Section).ReadAt", Method, 0}, ++ {"(StringTable).String", Method, 8}, ++ {"COFFSymbol", Type, 1}, ++ {"COFFSymbol.Name", Field, 1}, ++ {"COFFSymbol.NumberOfAuxSymbols", Field, 1}, ++ {"COFFSymbol.SectionNumber", Field, 1}, ++ {"COFFSymbol.StorageClass", Field, 1}, ++ {"COFFSymbol.Type", Field, 1}, ++ {"COFFSymbol.Value", Field, 1}, ++ {"COFFSymbolAuxFormat5", Type, 19}, ++ {"COFFSymbolAuxFormat5.Checksum", Field, 19}, ++ {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19}, ++ {"COFFSymbolAuxFormat5.NumRelocs", Field, 19}, ++ {"COFFSymbolAuxFormat5.SecNum", Field, 19}, ++ {"COFFSymbolAuxFormat5.Selection", Field, 19}, ++ {"COFFSymbolAuxFormat5.Size", Field, 19}, ++ {"COFFSymbolSize", Const, 1}, ++ {"DataDirectory", Type, 3}, ++ {"DataDirectory.Size", Field, 3}, ++ {"DataDirectory.VirtualAddress", Field, 3}, ++ {"File", Type, 0}, ++ {"File.COFFSymbols", Field, 8}, ++ {"File.FileHeader", Field, 0}, ++ {"File.OptionalHeader", Field, 3}, ++ {"File.Sections", Field, 0}, ++ {"File.StringTable", Field, 8}, ++ {"File.Symbols", Field, 1}, ++ {"FileHeader", Type, 0}, ++ {"FileHeader.Characteristics", Field, 0}, ++ {"FileHeader.Machine", Field, 0}, ++ {"FileHeader.NumberOfSections", Field, 0}, ++ {"FileHeader.NumberOfSymbols", Field, 0}, ++ {"FileHeader.PointerToSymbolTable", Field, 0}, ++ {"FileHeader.SizeOfOptionalHeader", Field, 0}, ++ {"FileHeader.TimeDateStamp", Field, 0}, ++ {"FormatError", Type, 0}, ++ {"IMAGE_COMDAT_SELECT_ANY", Const, 19}, ++ {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19}, ++ {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19}, ++ {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19}, ++ {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19}, ++ {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19}, ++ {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11}, ++ {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11}, ++ {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15}, ++ {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15}, ++ {"IMAGE_FILE_32BIT_MACHINE", Const, 15}, ++ {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15}, ++ {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15}, ++ {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15}, ++ {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15}, ++ {"IMAGE_FILE_DLL", Const, 15}, ++ {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15}, ++ {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15}, ++ {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15}, ++ {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15}, ++ {"IMAGE_FILE_MACHINE_AM33", Const, 0}, ++ {"IMAGE_FILE_MACHINE_AMD64", Const, 0}, ++ {"IMAGE_FILE_MACHINE_ARM", Const, 0}, ++ {"IMAGE_FILE_MACHINE_ARM64", Const, 11}, ++ {"IMAGE_FILE_MACHINE_ARMNT", Const, 12}, ++ {"IMAGE_FILE_MACHINE_EBC", Const, 0}, ++ {"IMAGE_FILE_MACHINE_I386", Const, 0}, ++ {"IMAGE_FILE_MACHINE_IA64", Const, 0}, ++ {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19}, ++ {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19}, ++ {"IMAGE_FILE_MACHINE_M32R", Const, 0}, ++ {"IMAGE_FILE_MACHINE_MIPS16", Const, 0}, ++ {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0}, ++ {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0}, ++ {"IMAGE_FILE_MACHINE_POWERPC", Const, 0}, ++ {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0}, ++ {"IMAGE_FILE_MACHINE_R4000", Const, 0}, ++ {"IMAGE_FILE_MACHINE_RISCV128", Const, 20}, ++ {"IMAGE_FILE_MACHINE_RISCV32", Const, 20}, ++ {"IMAGE_FILE_MACHINE_RISCV64", Const, 20}, ++ {"IMAGE_FILE_MACHINE_SH3", Const, 0}, ++ {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0}, ++ {"IMAGE_FILE_MACHINE_SH4", Const, 0}, ++ {"IMAGE_FILE_MACHINE_SH5", Const, 0}, ++ {"IMAGE_FILE_MACHINE_THUMB", Const, 0}, ++ {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0}, ++ {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0}, ++ {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15}, ++ {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15}, ++ {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15}, ++ {"IMAGE_FILE_SYSTEM", Const, 15}, ++ {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15}, ++ {"IMAGE_SCN_CNT_CODE", Const, 19}, ++ {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19}, ++ {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19}, ++ {"IMAGE_SCN_LNK_COMDAT", Const, 19}, ++ {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19}, ++ {"IMAGE_SCN_MEM_EXECUTE", Const, 19}, ++ {"IMAGE_SCN_MEM_READ", Const, 19}, ++ {"IMAGE_SCN_MEM_WRITE", Const, 19}, ++ {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15}, ++ {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15}, ++ {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15}, ++ {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15}, ++ {"IMAGE_SUBSYSTEM_NATIVE", Const, 15}, ++ {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15}, ++ {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15}, ++ {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15}, ++ {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15}, ++ {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15}, ++ {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15}, ++ {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15}, ++ {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15}, ++ {"IMAGE_SUBSYSTEM_XBOX", Const, 15}, ++ {"ImportDirectory", Type, 0}, ++ {"ImportDirectory.FirstThunk", Field, 0}, ++ {"ImportDirectory.ForwarderChain", Field, 0}, ++ {"ImportDirectory.Name", Field, 0}, ++ {"ImportDirectory.OriginalFirstThunk", Field, 0}, ++ {"ImportDirectory.TimeDateStamp", Field, 0}, ++ {"NewFile", Func, 0}, ++ {"Open", Func, 0}, ++ {"OptionalHeader32", Type, 3}, ++ {"OptionalHeader32.AddressOfEntryPoint", Field, 3}, ++ {"OptionalHeader32.BaseOfCode", Field, 3}, ++ {"OptionalHeader32.BaseOfData", Field, 3}, ++ {"OptionalHeader32.CheckSum", Field, 3}, ++ {"OptionalHeader32.DataDirectory", Field, 3}, ++ {"OptionalHeader32.DllCharacteristics", Field, 3}, ++ {"OptionalHeader32.FileAlignment", Field, 3}, ++ {"OptionalHeader32.ImageBase", Field, 3}, ++ {"OptionalHeader32.LoaderFlags", Field, 3}, ++ {"OptionalHeader32.Magic", Field, 3}, ++ {"OptionalHeader32.MajorImageVersion", Field, 3}, ++ {"OptionalHeader32.MajorLinkerVersion", Field, 3}, ++ {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3}, ++ {"OptionalHeader32.MajorSubsystemVersion", Field, 3}, ++ {"OptionalHeader32.MinorImageVersion", Field, 3}, ++ {"OptionalHeader32.MinorLinkerVersion", Field, 3}, ++ {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3}, ++ {"OptionalHeader32.MinorSubsystemVersion", Field, 3}, ++ {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3}, ++ {"OptionalHeader32.SectionAlignment", Field, 3}, ++ {"OptionalHeader32.SizeOfCode", Field, 3}, ++ {"OptionalHeader32.SizeOfHeaders", Field, 3}, ++ {"OptionalHeader32.SizeOfHeapCommit", Field, 3}, ++ {"OptionalHeader32.SizeOfHeapReserve", Field, 3}, ++ {"OptionalHeader32.SizeOfImage", Field, 3}, ++ {"OptionalHeader32.SizeOfInitializedData", Field, 3}, ++ {"OptionalHeader32.SizeOfStackCommit", Field, 3}, ++ {"OptionalHeader32.SizeOfStackReserve", Field, 3}, ++ {"OptionalHeader32.SizeOfUninitializedData", Field, 3}, ++ {"OptionalHeader32.Subsystem", Field, 3}, ++ {"OptionalHeader32.Win32VersionValue", Field, 3}, ++ {"OptionalHeader64", Type, 3}, ++ {"OptionalHeader64.AddressOfEntryPoint", Field, 3}, ++ {"OptionalHeader64.BaseOfCode", Field, 3}, ++ {"OptionalHeader64.CheckSum", Field, 3}, ++ {"OptionalHeader64.DataDirectory", Field, 3}, ++ {"OptionalHeader64.DllCharacteristics", Field, 3}, ++ {"OptionalHeader64.FileAlignment", Field, 3}, ++ {"OptionalHeader64.ImageBase", Field, 3}, ++ {"OptionalHeader64.LoaderFlags", Field, 3}, ++ {"OptionalHeader64.Magic", Field, 3}, ++ {"OptionalHeader64.MajorImageVersion", Field, 3}, ++ {"OptionalHeader64.MajorLinkerVersion", Field, 3}, ++ {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3}, ++ {"OptionalHeader64.MajorSubsystemVersion", Field, 3}, ++ {"OptionalHeader64.MinorImageVersion", Field, 3}, ++ {"OptionalHeader64.MinorLinkerVersion", Field, 3}, ++ {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3}, ++ {"OptionalHeader64.MinorSubsystemVersion", Field, 3}, ++ {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3}, ++ {"OptionalHeader64.SectionAlignment", Field, 3}, ++ {"OptionalHeader64.SizeOfCode", Field, 3}, ++ {"OptionalHeader64.SizeOfHeaders", Field, 3}, ++ {"OptionalHeader64.SizeOfHeapCommit", Field, 3}, ++ {"OptionalHeader64.SizeOfHeapReserve", Field, 3}, ++ {"OptionalHeader64.SizeOfImage", Field, 3}, ++ {"OptionalHeader64.SizeOfInitializedData", Field, 3}, ++ {"OptionalHeader64.SizeOfStackCommit", Field, 3}, ++ {"OptionalHeader64.SizeOfStackReserve", Field, 3}, ++ {"OptionalHeader64.SizeOfUninitializedData", Field, 3}, ++ {"OptionalHeader64.Subsystem", Field, 3}, ++ {"OptionalHeader64.Win32VersionValue", Field, 3}, ++ {"Reloc", Type, 8}, ++ {"Reloc.SymbolTableIndex", Field, 8}, ++ {"Reloc.Type", Field, 8}, ++ {"Reloc.VirtualAddress", Field, 8}, ++ {"Section", Type, 0}, ++ {"Section.ReaderAt", Field, 0}, ++ {"Section.Relocs", Field, 8}, ++ {"Section.SectionHeader", Field, 0}, ++ {"SectionHeader", Type, 0}, ++ {"SectionHeader.Characteristics", Field, 0}, ++ {"SectionHeader.Name", Field, 0}, ++ {"SectionHeader.NumberOfLineNumbers", Field, 0}, ++ {"SectionHeader.NumberOfRelocations", Field, 0}, ++ {"SectionHeader.Offset", Field, 0}, ++ {"SectionHeader.PointerToLineNumbers", Field, 0}, ++ {"SectionHeader.PointerToRelocations", Field, 0}, ++ {"SectionHeader.Size", Field, 0}, ++ {"SectionHeader.VirtualAddress", Field, 0}, ++ {"SectionHeader.VirtualSize", Field, 0}, ++ {"SectionHeader32", Type, 0}, ++ {"SectionHeader32.Characteristics", Field, 0}, ++ {"SectionHeader32.Name", Field, 0}, ++ {"SectionHeader32.NumberOfLineNumbers", Field, 0}, ++ {"SectionHeader32.NumberOfRelocations", Field, 0}, ++ {"SectionHeader32.PointerToLineNumbers", Field, 0}, ++ {"SectionHeader32.PointerToRawData", Field, 0}, ++ {"SectionHeader32.PointerToRelocations", Field, 0}, ++ {"SectionHeader32.SizeOfRawData", Field, 0}, ++ {"SectionHeader32.VirtualAddress", Field, 0}, ++ {"SectionHeader32.VirtualSize", Field, 0}, ++ {"StringTable", Type, 8}, ++ {"Symbol", Type, 1}, ++ {"Symbol.Name", Field, 1}, ++ {"Symbol.SectionNumber", Field, 1}, ++ {"Symbol.StorageClass", Field, 1}, ++ {"Symbol.Type", Field, 1}, ++ {"Symbol.Value", Field, 1}, ++ }, ++ "debug/plan9obj": { ++ {"(*File).Close", Method, 3}, ++ {"(*File).Section", Method, 3}, ++ {"(*File).Symbols", Method, 3}, ++ {"(*Section).Data", Method, 3}, ++ {"(*Section).Open", Method, 3}, ++ {"(Section).ReadAt", Method, 3}, ++ {"ErrNoSymbols", Var, 18}, ++ {"File", Type, 3}, ++ {"File.FileHeader", Field, 3}, ++ {"File.Sections", Field, 3}, ++ {"FileHeader", Type, 3}, ++ {"FileHeader.Bss", Field, 3}, ++ {"FileHeader.Entry", Field, 3}, ++ {"FileHeader.HdrSize", Field, 4}, ++ {"FileHeader.LoadAddress", Field, 4}, ++ {"FileHeader.Magic", Field, 3}, ++ {"FileHeader.PtrSize", Field, 3}, ++ {"Magic386", Const, 3}, ++ {"Magic64", Const, 3}, ++ {"MagicAMD64", Const, 3}, ++ {"MagicARM", Const, 3}, ++ {"NewFile", Func, 3}, ++ {"Open", Func, 3}, ++ {"Section", Type, 3}, ++ {"Section.ReaderAt", Field, 3}, ++ {"Section.SectionHeader", Field, 3}, ++ {"SectionHeader", Type, 3}, ++ {"SectionHeader.Name", Field, 3}, ++ {"SectionHeader.Offset", Field, 3}, ++ {"SectionHeader.Size", Field, 3}, ++ {"Sym", Type, 3}, ++ {"Sym.Name", Field, 3}, ++ {"Sym.Type", Field, 3}, ++ {"Sym.Value", Field, 3}, ++ }, ++ "embed": { ++ {"(FS).Open", Method, 16}, ++ {"(FS).ReadDir", Method, 16}, ++ {"(FS).ReadFile", Method, 16}, ++ {"FS", Type, 16}, ++ }, ++ "encoding": { ++ {"BinaryMarshaler", Type, 2}, ++ {"BinaryUnmarshaler", Type, 2}, ++ {"TextMarshaler", Type, 2}, ++ {"TextUnmarshaler", Type, 2}, ++ }, ++ "encoding/ascii85": { ++ {"(CorruptInputError).Error", Method, 0}, ++ {"CorruptInputError", Type, 0}, ++ {"Decode", Func, 0}, ++ {"Encode", Func, 0}, ++ {"MaxEncodedLen", Func, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ }, ++ "encoding/asn1": { ++ {"(BitString).At", Method, 0}, ++ {"(BitString).RightAlign", Method, 0}, ++ {"(ObjectIdentifier).Equal", Method, 0}, ++ {"(ObjectIdentifier).String", Method, 3}, ++ {"(StructuralError).Error", Method, 0}, ++ {"(SyntaxError).Error", Method, 0}, ++ {"BitString", Type, 0}, ++ {"BitString.BitLength", Field, 0}, ++ {"BitString.Bytes", Field, 0}, ++ {"ClassApplication", Const, 6}, ++ {"ClassContextSpecific", Const, 6}, ++ {"ClassPrivate", Const, 6}, ++ {"ClassUniversal", Const, 6}, ++ {"Enumerated", Type, 0}, ++ {"Flag", Type, 0}, ++ {"Marshal", Func, 0}, ++ {"MarshalWithParams", Func, 10}, ++ {"NullBytes", Var, 9}, ++ {"NullRawValue", Var, 9}, ++ {"ObjectIdentifier", Type, 0}, ++ {"RawContent", Type, 0}, ++ {"RawValue", Type, 0}, ++ {"RawValue.Bytes", Field, 0}, ++ {"RawValue.Class", Field, 0}, ++ {"RawValue.FullBytes", Field, 0}, ++ {"RawValue.IsCompound", Field, 0}, ++ {"RawValue.Tag", Field, 0}, ++ {"StructuralError", Type, 0}, ++ {"StructuralError.Msg", Field, 0}, ++ {"SyntaxError", Type, 0}, ++ {"SyntaxError.Msg", Field, 0}, ++ {"TagBMPString", Const, 14}, ++ {"TagBitString", Const, 6}, ++ {"TagBoolean", Const, 6}, ++ {"TagEnum", Const, 6}, ++ {"TagGeneralString", Const, 6}, ++ {"TagGeneralizedTime", Const, 6}, ++ {"TagIA5String", Const, 6}, ++ {"TagInteger", Const, 6}, ++ {"TagNull", Const, 9}, ++ {"TagNumericString", Const, 10}, ++ {"TagOID", Const, 6}, ++ {"TagOctetString", Const, 6}, ++ {"TagPrintableString", Const, 6}, ++ {"TagSequence", Const, 6}, ++ {"TagSet", Const, 6}, ++ {"TagT61String", Const, 6}, ++ {"TagUTCTime", Const, 6}, ++ {"TagUTF8String", Const, 6}, ++ {"Unmarshal", Func, 0}, ++ {"UnmarshalWithParams", Func, 0}, ++ }, ++ "encoding/base32": { ++ {"(*Encoding).AppendDecode", Method, 22}, ++ {"(*Encoding).AppendEncode", Method, 22}, ++ {"(*Encoding).Decode", Method, 0}, ++ {"(*Encoding).DecodeString", Method, 0}, ++ {"(*Encoding).DecodedLen", Method, 0}, ++ {"(*Encoding).Encode", Method, 0}, ++ {"(*Encoding).EncodeToString", Method, 0}, ++ {"(*Encoding).EncodedLen", Method, 0}, ++ {"(CorruptInputError).Error", Method, 0}, ++ {"(Encoding).WithPadding", Method, 9}, ++ {"CorruptInputError", Type, 0}, ++ {"Encoding", Type, 0}, ++ {"HexEncoding", Var, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ {"NewEncoding", Func, 0}, ++ {"NoPadding", Const, 9}, ++ {"StdEncoding", Var, 0}, ++ {"StdPadding", Const, 9}, ++ }, ++ "encoding/base64": { ++ {"(*Encoding).AppendDecode", Method, 22}, ++ {"(*Encoding).AppendEncode", Method, 22}, ++ {"(*Encoding).Decode", Method, 0}, ++ {"(*Encoding).DecodeString", Method, 0}, ++ {"(*Encoding).DecodedLen", Method, 0}, ++ {"(*Encoding).Encode", Method, 0}, ++ {"(*Encoding).EncodeToString", Method, 0}, ++ {"(*Encoding).EncodedLen", Method, 0}, ++ {"(CorruptInputError).Error", Method, 0}, ++ {"(Encoding).Strict", Method, 8}, ++ {"(Encoding).WithPadding", Method, 5}, ++ {"CorruptInputError", Type, 0}, ++ {"Encoding", Type, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ {"NewEncoding", Func, 0}, ++ {"NoPadding", Const, 5}, ++ {"RawStdEncoding", Var, 5}, ++ {"RawURLEncoding", Var, 5}, ++ {"StdEncoding", Var, 0}, ++ {"StdPadding", Const, 5}, ++ {"URLEncoding", Var, 0}, ++ }, ++ "encoding/binary": { ++ {"AppendByteOrder", Type, 19}, ++ {"AppendUvarint", Func, 19}, ++ {"AppendVarint", Func, 19}, ++ {"BigEndian", Var, 0}, ++ {"ByteOrder", Type, 0}, ++ {"LittleEndian", Var, 0}, ++ {"MaxVarintLen16", Const, 0}, ++ {"MaxVarintLen32", Const, 0}, ++ {"MaxVarintLen64", Const, 0}, ++ {"NativeEndian", Var, 21}, ++ {"PutUvarint", Func, 0}, ++ {"PutVarint", Func, 0}, ++ {"Read", Func, 0}, ++ {"ReadUvarint", Func, 0}, ++ {"ReadVarint", Func, 0}, ++ {"Size", Func, 0}, ++ {"Uvarint", Func, 0}, ++ {"Varint", Func, 0}, ++ {"Write", Func, 0}, ++ }, ++ "encoding/csv": { ++ {"(*ParseError).Error", Method, 0}, ++ {"(*ParseError).Unwrap", Method, 13}, ++ {"(*Reader).FieldPos", Method, 17}, ++ {"(*Reader).InputOffset", Method, 19}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Reader).ReadAll", Method, 0}, ++ {"(*Writer).Error", Method, 1}, ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).Write", Method, 0}, ++ {"(*Writer).WriteAll", Method, 0}, ++ {"ErrBareQuote", Var, 0}, ++ {"ErrFieldCount", Var, 0}, ++ {"ErrQuote", Var, 0}, ++ {"ErrTrailingComma", Var, 0}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"ParseError", Type, 0}, ++ {"ParseError.Column", Field, 0}, ++ {"ParseError.Err", Field, 0}, ++ {"ParseError.Line", Field, 0}, ++ {"ParseError.StartLine", Field, 10}, ++ {"Reader", Type, 0}, ++ {"Reader.Comma", Field, 0}, ++ {"Reader.Comment", Field, 0}, ++ {"Reader.FieldsPerRecord", Field, 0}, ++ {"Reader.LazyQuotes", Field, 0}, ++ {"Reader.ReuseRecord", Field, 9}, ++ {"Reader.TrailingComma", Field, 0}, ++ {"Reader.TrimLeadingSpace", Field, 0}, ++ {"Writer", Type, 0}, ++ {"Writer.Comma", Field, 0}, ++ {"Writer.UseCRLF", Field, 0}, ++ }, ++ "encoding/gob": { ++ {"(*Decoder).Decode", Method, 0}, ++ {"(*Decoder).DecodeValue", Method, 0}, ++ {"(*Encoder).Encode", Method, 0}, ++ {"(*Encoder).EncodeValue", Method, 0}, ++ {"CommonType", Type, 0}, ++ {"CommonType.Id", Field, 0}, ++ {"CommonType.Name", Field, 0}, ++ {"Decoder", Type, 0}, ++ {"Encoder", Type, 0}, ++ {"GobDecoder", Type, 0}, ++ {"GobEncoder", Type, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ {"Register", Func, 0}, ++ {"RegisterName", Func, 0}, ++ }, ++ "encoding/hex": { ++ {"(InvalidByteError).Error", Method, 0}, ++ {"AppendDecode", Func, 22}, ++ {"AppendEncode", Func, 22}, ++ {"Decode", Func, 0}, ++ {"DecodeString", Func, 0}, ++ {"DecodedLen", Func, 0}, ++ {"Dump", Func, 0}, ++ {"Dumper", Func, 0}, ++ {"Encode", Func, 0}, ++ {"EncodeToString", Func, 0}, ++ {"EncodedLen", Func, 0}, ++ {"ErrLength", Var, 0}, ++ {"InvalidByteError", Type, 0}, ++ {"NewDecoder", Func, 10}, ++ {"NewEncoder", Func, 10}, ++ }, ++ "encoding/json": { ++ {"(*Decoder).Buffered", Method, 1}, ++ {"(*Decoder).Decode", Method, 0}, ++ {"(*Decoder).DisallowUnknownFields", Method, 10}, ++ {"(*Decoder).InputOffset", Method, 14}, ++ {"(*Decoder).More", Method, 5}, ++ {"(*Decoder).Token", Method, 5}, ++ {"(*Decoder).UseNumber", Method, 1}, ++ {"(*Encoder).Encode", Method, 0}, ++ {"(*Encoder).SetEscapeHTML", Method, 7}, ++ {"(*Encoder).SetIndent", Method, 7}, ++ {"(*InvalidUTF8Error).Error", Method, 0}, ++ {"(*InvalidUnmarshalError).Error", Method, 0}, ++ {"(*MarshalerError).Error", Method, 0}, ++ {"(*MarshalerError).Unwrap", Method, 13}, ++ {"(*RawMessage).MarshalJSON", Method, 0}, ++ {"(*RawMessage).UnmarshalJSON", Method, 0}, ++ {"(*SyntaxError).Error", Method, 0}, ++ {"(*UnmarshalFieldError).Error", Method, 0}, ++ {"(*UnmarshalTypeError).Error", Method, 0}, ++ {"(*UnsupportedTypeError).Error", Method, 0}, ++ {"(*UnsupportedValueError).Error", Method, 0}, ++ {"(Delim).String", Method, 5}, ++ {"(Number).Float64", Method, 1}, ++ {"(Number).Int64", Method, 1}, ++ {"(Number).String", Method, 1}, ++ {"(RawMessage).MarshalJSON", Method, 8}, ++ {"Compact", Func, 0}, ++ {"Decoder", Type, 0}, ++ {"Delim", Type, 5}, ++ {"Encoder", Type, 0}, ++ {"HTMLEscape", Func, 0}, ++ {"Indent", Func, 0}, ++ {"InvalidUTF8Error", Type, 0}, ++ {"InvalidUTF8Error.S", Field, 0}, ++ {"InvalidUnmarshalError", Type, 0}, ++ {"InvalidUnmarshalError.Type", Field, 0}, ++ {"Marshal", Func, 0}, ++ {"MarshalIndent", Func, 0}, ++ {"Marshaler", Type, 0}, ++ {"MarshalerError", Type, 0}, ++ {"MarshalerError.Err", Field, 0}, ++ {"MarshalerError.Type", Field, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ {"Number", Type, 1}, ++ {"RawMessage", Type, 0}, ++ {"SyntaxError", Type, 0}, ++ {"SyntaxError.Offset", Field, 0}, ++ {"Token", Type, 5}, ++ {"Unmarshal", Func, 0}, ++ {"UnmarshalFieldError", Type, 0}, ++ {"UnmarshalFieldError.Field", Field, 0}, ++ {"UnmarshalFieldError.Key", Field, 0}, ++ {"UnmarshalFieldError.Type", Field, 0}, ++ {"UnmarshalTypeError", Type, 0}, ++ {"UnmarshalTypeError.Field", Field, 8}, ++ {"UnmarshalTypeError.Offset", Field, 5}, ++ {"UnmarshalTypeError.Struct", Field, 8}, ++ {"UnmarshalTypeError.Type", Field, 0}, ++ {"UnmarshalTypeError.Value", Field, 0}, ++ {"Unmarshaler", Type, 0}, ++ {"UnsupportedTypeError", Type, 0}, ++ {"UnsupportedTypeError.Type", Field, 0}, ++ {"UnsupportedValueError", Type, 0}, ++ {"UnsupportedValueError.Str", Field, 0}, ++ {"UnsupportedValueError.Value", Field, 0}, ++ {"Valid", Func, 9}, ++ }, ++ "encoding/pem": { ++ {"Block", Type, 0}, ++ {"Block.Bytes", Field, 0}, ++ {"Block.Headers", Field, 0}, ++ {"Block.Type", Field, 0}, ++ {"Decode", Func, 0}, ++ {"Encode", Func, 0}, ++ {"EncodeToMemory", Func, 0}, ++ }, ++ "encoding/xml": { ++ {"(*Decoder).Decode", Method, 0}, ++ {"(*Decoder).DecodeElement", Method, 0}, ++ {"(*Decoder).InputOffset", Method, 4}, ++ {"(*Decoder).InputPos", Method, 19}, ++ {"(*Decoder).RawToken", Method, 0}, ++ {"(*Decoder).Skip", Method, 0}, ++ {"(*Decoder).Token", Method, 0}, ++ {"(*Encoder).Close", Method, 20}, ++ {"(*Encoder).Encode", Method, 0}, ++ {"(*Encoder).EncodeElement", Method, 2}, ++ {"(*Encoder).EncodeToken", Method, 2}, ++ {"(*Encoder).Flush", Method, 2}, ++ {"(*Encoder).Indent", Method, 1}, ++ {"(*SyntaxError).Error", Method, 0}, ++ {"(*TagPathError).Error", Method, 0}, ++ {"(*UnsupportedTypeError).Error", Method, 0}, ++ {"(CharData).Copy", Method, 0}, ++ {"(Comment).Copy", Method, 0}, ++ {"(Directive).Copy", Method, 0}, ++ {"(ProcInst).Copy", Method, 0}, ++ {"(StartElement).Copy", Method, 0}, ++ {"(StartElement).End", Method, 2}, ++ {"(UnmarshalError).Error", Method, 0}, ++ {"Attr", Type, 0}, ++ {"Attr.Name", Field, 0}, ++ {"Attr.Value", Field, 0}, ++ {"CharData", Type, 0}, ++ {"Comment", Type, 0}, ++ {"CopyToken", Func, 0}, ++ {"Decoder", Type, 0}, ++ {"Decoder.AutoClose", Field, 0}, ++ {"Decoder.CharsetReader", Field, 0}, ++ {"Decoder.DefaultSpace", Field, 1}, ++ {"Decoder.Entity", Field, 0}, ++ {"Decoder.Strict", Field, 0}, ++ {"Directive", Type, 0}, ++ {"Encoder", Type, 0}, ++ {"EndElement", Type, 0}, ++ {"EndElement.Name", Field, 0}, ++ {"Escape", Func, 0}, ++ {"EscapeText", Func, 1}, ++ {"HTMLAutoClose", Var, 0}, ++ {"HTMLEntity", Var, 0}, ++ {"Header", Const, 0}, ++ {"Marshal", Func, 0}, ++ {"MarshalIndent", Func, 0}, ++ {"Marshaler", Type, 2}, ++ {"MarshalerAttr", Type, 2}, ++ {"Name", Type, 0}, ++ {"Name.Local", Field, 0}, ++ {"Name.Space", Field, 0}, ++ {"NewDecoder", Func, 0}, ++ {"NewEncoder", Func, 0}, ++ {"NewTokenDecoder", Func, 10}, ++ {"ProcInst", Type, 0}, ++ {"ProcInst.Inst", Field, 0}, ++ {"ProcInst.Target", Field, 0}, ++ {"StartElement", Type, 0}, ++ {"StartElement.Attr", Field, 0}, ++ {"StartElement.Name", Field, 0}, ++ {"SyntaxError", Type, 0}, ++ {"SyntaxError.Line", Field, 0}, ++ {"SyntaxError.Msg", Field, 0}, ++ {"TagPathError", Type, 0}, ++ {"TagPathError.Field1", Field, 0}, ++ {"TagPathError.Field2", Field, 0}, ++ {"TagPathError.Struct", Field, 0}, ++ {"TagPathError.Tag1", Field, 0}, ++ {"TagPathError.Tag2", Field, 0}, ++ {"Token", Type, 0}, ++ {"TokenReader", Type, 10}, ++ {"Unmarshal", Func, 0}, ++ {"UnmarshalError", Type, 0}, ++ {"Unmarshaler", Type, 2}, ++ {"UnmarshalerAttr", Type, 2}, ++ {"UnsupportedTypeError", Type, 0}, ++ {"UnsupportedTypeError.Type", Field, 0}, ++ }, ++ "errors": { ++ {"As", Func, 13}, ++ {"ErrUnsupported", Var, 21}, ++ {"Is", Func, 13}, ++ {"Join", Func, 20}, ++ {"New", Func, 0}, ++ {"Unwrap", Func, 13}, ++ }, ++ "expvar": { ++ {"(*Float).Add", Method, 0}, ++ {"(*Float).Set", Method, 0}, ++ {"(*Float).String", Method, 0}, ++ {"(*Float).Value", Method, 8}, ++ {"(*Int).Add", Method, 0}, ++ {"(*Int).Set", Method, 0}, ++ {"(*Int).String", Method, 0}, ++ {"(*Int).Value", Method, 8}, ++ {"(*Map).Add", Method, 0}, ++ {"(*Map).AddFloat", Method, 0}, ++ {"(*Map).Delete", Method, 12}, ++ {"(*Map).Do", Method, 0}, ++ {"(*Map).Get", Method, 0}, ++ {"(*Map).Init", Method, 0}, ++ {"(*Map).Set", Method, 0}, ++ {"(*Map).String", Method, 0}, ++ {"(*String).Set", Method, 0}, ++ {"(*String).String", Method, 0}, ++ {"(*String).Value", Method, 8}, ++ {"(Func).String", Method, 0}, ++ {"(Func).Value", Method, 8}, ++ {"Do", Func, 0}, ++ {"Float", Type, 0}, ++ {"Func", Type, 0}, ++ {"Get", Func, 0}, ++ {"Handler", Func, 8}, ++ {"Int", Type, 0}, ++ {"KeyValue", Type, 0}, ++ {"KeyValue.Key", Field, 0}, ++ {"KeyValue.Value", Field, 0}, ++ {"Map", Type, 0}, ++ {"NewFloat", Func, 0}, ++ {"NewInt", Func, 0}, ++ {"NewMap", Func, 0}, ++ {"NewString", Func, 0}, ++ {"Publish", Func, 0}, ++ {"String", Type, 0}, ++ {"Var", Type, 0}, ++ }, ++ "flag": { ++ {"(*FlagSet).Arg", Method, 0}, ++ {"(*FlagSet).Args", Method, 0}, ++ {"(*FlagSet).Bool", Method, 0}, ++ {"(*FlagSet).BoolFunc", Method, 21}, ++ {"(*FlagSet).BoolVar", Method, 0}, ++ {"(*FlagSet).Duration", Method, 0}, ++ {"(*FlagSet).DurationVar", Method, 0}, ++ {"(*FlagSet).ErrorHandling", Method, 10}, ++ {"(*FlagSet).Float64", Method, 0}, ++ {"(*FlagSet).Float64Var", Method, 0}, ++ {"(*FlagSet).Func", Method, 16}, ++ {"(*FlagSet).Init", Method, 0}, ++ {"(*FlagSet).Int", Method, 0}, ++ {"(*FlagSet).Int64", Method, 0}, ++ {"(*FlagSet).Int64Var", Method, 0}, ++ {"(*FlagSet).IntVar", Method, 0}, ++ {"(*FlagSet).Lookup", Method, 0}, ++ {"(*FlagSet).NArg", Method, 0}, ++ {"(*FlagSet).NFlag", Method, 0}, ++ {"(*FlagSet).Name", Method, 10}, ++ {"(*FlagSet).Output", Method, 10}, ++ {"(*FlagSet).Parse", Method, 0}, ++ {"(*FlagSet).Parsed", Method, 0}, ++ {"(*FlagSet).PrintDefaults", Method, 0}, ++ {"(*FlagSet).Set", Method, 0}, ++ {"(*FlagSet).SetOutput", Method, 0}, ++ {"(*FlagSet).String", Method, 0}, ++ {"(*FlagSet).StringVar", Method, 0}, ++ {"(*FlagSet).TextVar", Method, 19}, ++ {"(*FlagSet).Uint", Method, 0}, ++ {"(*FlagSet).Uint64", Method, 0}, ++ {"(*FlagSet).Uint64Var", Method, 0}, ++ {"(*FlagSet).UintVar", Method, 0}, ++ {"(*FlagSet).Var", Method, 0}, ++ {"(*FlagSet).Visit", Method, 0}, ++ {"(*FlagSet).VisitAll", Method, 0}, ++ {"Arg", Func, 0}, ++ {"Args", Func, 0}, ++ {"Bool", Func, 0}, ++ {"BoolFunc", Func, 21}, ++ {"BoolVar", Func, 0}, ++ {"CommandLine", Var, 2}, ++ {"ContinueOnError", Const, 0}, ++ {"Duration", Func, 0}, ++ {"DurationVar", Func, 0}, ++ {"ErrHelp", Var, 0}, ++ {"ErrorHandling", Type, 0}, ++ {"ExitOnError", Const, 0}, ++ {"Flag", Type, 0}, ++ {"Flag.DefValue", Field, 0}, ++ {"Flag.Name", Field, 0}, ++ {"Flag.Usage", Field, 0}, ++ {"Flag.Value", Field, 0}, ++ {"FlagSet", Type, 0}, ++ {"FlagSet.Usage", Field, 0}, ++ {"Float64", Func, 0}, ++ {"Float64Var", Func, 0}, ++ {"Func", Func, 16}, ++ {"Getter", Type, 2}, ++ {"Int", Func, 0}, ++ {"Int64", Func, 0}, ++ {"Int64Var", Func, 0}, ++ {"IntVar", Func, 0}, ++ {"Lookup", Func, 0}, ++ {"NArg", Func, 0}, ++ {"NFlag", Func, 0}, ++ {"NewFlagSet", Func, 0}, ++ {"PanicOnError", Const, 0}, ++ {"Parse", Func, 0}, ++ {"Parsed", Func, 0}, ++ {"PrintDefaults", Func, 0}, ++ {"Set", Func, 0}, ++ {"String", Func, 0}, ++ {"StringVar", Func, 0}, ++ {"TextVar", Func, 19}, ++ {"Uint", Func, 0}, ++ {"Uint64", Func, 0}, ++ {"Uint64Var", Func, 0}, ++ {"UintVar", Func, 0}, ++ {"UnquoteUsage", Func, 5}, ++ {"Usage", Var, 0}, ++ {"Value", Type, 0}, ++ {"Var", Func, 0}, ++ {"Visit", Func, 0}, ++ {"VisitAll", Func, 0}, ++ }, ++ "fmt": { ++ {"Append", Func, 19}, ++ {"Appendf", Func, 19}, ++ {"Appendln", Func, 19}, ++ {"Errorf", Func, 0}, ++ {"FormatString", Func, 20}, ++ {"Formatter", Type, 0}, ++ {"Fprint", Func, 0}, ++ {"Fprintf", Func, 0}, ++ {"Fprintln", Func, 0}, ++ {"Fscan", Func, 0}, ++ {"Fscanf", Func, 0}, ++ {"Fscanln", Func, 0}, ++ {"GoStringer", Type, 0}, ++ {"Print", Func, 0}, ++ {"Printf", Func, 0}, ++ {"Println", Func, 0}, ++ {"Scan", Func, 0}, ++ {"ScanState", Type, 0}, ++ {"Scanf", Func, 0}, ++ {"Scanln", Func, 0}, ++ {"Scanner", Type, 0}, ++ {"Sprint", Func, 0}, ++ {"Sprintf", Func, 0}, ++ {"Sprintln", Func, 0}, ++ {"Sscan", Func, 0}, ++ {"Sscanf", Func, 0}, ++ {"Sscanln", Func, 0}, ++ {"State", Type, 0}, ++ {"Stringer", Type, 0}, ++ }, ++ "go/ast": { ++ {"(*ArrayType).End", Method, 0}, ++ {"(*ArrayType).Pos", Method, 0}, ++ {"(*AssignStmt).End", Method, 0}, ++ {"(*AssignStmt).Pos", Method, 0}, ++ {"(*BadDecl).End", Method, 0}, ++ {"(*BadDecl).Pos", Method, 0}, ++ {"(*BadExpr).End", Method, 0}, ++ {"(*BadExpr).Pos", Method, 0}, ++ {"(*BadStmt).End", Method, 0}, ++ {"(*BadStmt).Pos", Method, 0}, ++ {"(*BasicLit).End", Method, 0}, ++ {"(*BasicLit).Pos", Method, 0}, ++ {"(*BinaryExpr).End", Method, 0}, ++ {"(*BinaryExpr).Pos", Method, 0}, ++ {"(*BlockStmt).End", Method, 0}, ++ {"(*BlockStmt).Pos", Method, 0}, ++ {"(*BranchStmt).End", Method, 0}, ++ {"(*BranchStmt).Pos", Method, 0}, ++ {"(*CallExpr).End", Method, 0}, ++ {"(*CallExpr).Pos", Method, 0}, ++ {"(*CaseClause).End", Method, 0}, ++ {"(*CaseClause).Pos", Method, 0}, ++ {"(*ChanType).End", Method, 0}, ++ {"(*ChanType).Pos", Method, 0}, ++ {"(*CommClause).End", Method, 0}, ++ {"(*CommClause).Pos", Method, 0}, ++ {"(*Comment).End", Method, 0}, ++ {"(*Comment).Pos", Method, 0}, ++ {"(*CommentGroup).End", Method, 0}, ++ {"(*CommentGroup).Pos", Method, 0}, ++ {"(*CommentGroup).Text", Method, 0}, ++ {"(*CompositeLit).End", Method, 0}, ++ {"(*CompositeLit).Pos", Method, 0}, ++ {"(*DeclStmt).End", Method, 0}, ++ {"(*DeclStmt).Pos", Method, 0}, ++ {"(*DeferStmt).End", Method, 0}, ++ {"(*DeferStmt).Pos", Method, 0}, ++ {"(*Ellipsis).End", Method, 0}, ++ {"(*Ellipsis).Pos", Method, 0}, ++ {"(*EmptyStmt).End", Method, 0}, ++ {"(*EmptyStmt).Pos", Method, 0}, ++ {"(*ExprStmt).End", Method, 0}, ++ {"(*ExprStmt).Pos", Method, 0}, ++ {"(*Field).End", Method, 0}, ++ {"(*Field).Pos", Method, 0}, ++ {"(*FieldList).End", Method, 0}, ++ {"(*FieldList).NumFields", Method, 0}, ++ {"(*FieldList).Pos", Method, 0}, ++ {"(*File).End", Method, 0}, ++ {"(*File).Pos", Method, 0}, ++ {"(*ForStmt).End", Method, 0}, ++ {"(*ForStmt).Pos", Method, 0}, ++ {"(*FuncDecl).End", Method, 0}, ++ {"(*FuncDecl).Pos", Method, 0}, ++ {"(*FuncLit).End", Method, 0}, ++ {"(*FuncLit).Pos", Method, 0}, ++ {"(*FuncType).End", Method, 0}, ++ {"(*FuncType).Pos", Method, 0}, ++ {"(*GenDecl).End", Method, 0}, ++ {"(*GenDecl).Pos", Method, 0}, ++ {"(*GoStmt).End", Method, 0}, ++ {"(*GoStmt).Pos", Method, 0}, ++ {"(*Ident).End", Method, 0}, ++ {"(*Ident).IsExported", Method, 0}, ++ {"(*Ident).Pos", Method, 0}, ++ {"(*Ident).String", Method, 0}, ++ {"(*IfStmt).End", Method, 0}, ++ {"(*IfStmt).Pos", Method, 0}, ++ {"(*ImportSpec).End", Method, 0}, ++ {"(*ImportSpec).Pos", Method, 0}, ++ {"(*IncDecStmt).End", Method, 0}, ++ {"(*IncDecStmt).Pos", Method, 0}, ++ {"(*IndexExpr).End", Method, 0}, ++ {"(*IndexExpr).Pos", Method, 0}, ++ {"(*IndexListExpr).End", Method, 18}, ++ {"(*IndexListExpr).Pos", Method, 18}, ++ {"(*InterfaceType).End", Method, 0}, ++ {"(*InterfaceType).Pos", Method, 0}, ++ {"(*KeyValueExpr).End", Method, 0}, ++ {"(*KeyValueExpr).Pos", Method, 0}, ++ {"(*LabeledStmt).End", Method, 0}, ++ {"(*LabeledStmt).Pos", Method, 0}, ++ {"(*MapType).End", Method, 0}, ++ {"(*MapType).Pos", Method, 0}, ++ {"(*Object).Pos", Method, 0}, ++ {"(*Package).End", Method, 0}, ++ {"(*Package).Pos", Method, 0}, ++ {"(*ParenExpr).End", Method, 0}, ++ {"(*ParenExpr).Pos", Method, 0}, ++ {"(*RangeStmt).End", Method, 0}, ++ {"(*RangeStmt).Pos", Method, 0}, ++ {"(*ReturnStmt).End", Method, 0}, ++ {"(*ReturnStmt).Pos", Method, 0}, ++ {"(*Scope).Insert", Method, 0}, ++ {"(*Scope).Lookup", Method, 0}, ++ {"(*Scope).String", Method, 0}, ++ {"(*SelectStmt).End", Method, 0}, ++ {"(*SelectStmt).Pos", Method, 0}, ++ {"(*SelectorExpr).End", Method, 0}, ++ {"(*SelectorExpr).Pos", Method, 0}, ++ {"(*SendStmt).End", Method, 0}, ++ {"(*SendStmt).Pos", Method, 0}, ++ {"(*SliceExpr).End", Method, 0}, ++ {"(*SliceExpr).Pos", Method, 0}, ++ {"(*StarExpr).End", Method, 0}, ++ {"(*StarExpr).Pos", Method, 0}, ++ {"(*StructType).End", Method, 0}, ++ {"(*StructType).Pos", Method, 0}, ++ {"(*SwitchStmt).End", Method, 0}, ++ {"(*SwitchStmt).Pos", Method, 0}, ++ {"(*TypeAssertExpr).End", Method, 0}, ++ {"(*TypeAssertExpr).Pos", Method, 0}, ++ {"(*TypeSpec).End", Method, 0}, ++ {"(*TypeSpec).Pos", Method, 0}, ++ {"(*TypeSwitchStmt).End", Method, 0}, ++ {"(*TypeSwitchStmt).Pos", Method, 0}, ++ {"(*UnaryExpr).End", Method, 0}, ++ {"(*UnaryExpr).Pos", Method, 0}, ++ {"(*ValueSpec).End", Method, 0}, ++ {"(*ValueSpec).Pos", Method, 0}, ++ {"(CommentMap).Comments", Method, 1}, ++ {"(CommentMap).Filter", Method, 1}, ++ {"(CommentMap).String", Method, 1}, ++ {"(CommentMap).Update", Method, 1}, ++ {"(ObjKind).String", Method, 0}, ++ {"ArrayType", Type, 0}, ++ {"ArrayType.Elt", Field, 0}, ++ {"ArrayType.Lbrack", Field, 0}, ++ {"ArrayType.Len", Field, 0}, ++ {"AssignStmt", Type, 0}, ++ {"AssignStmt.Lhs", Field, 0}, ++ {"AssignStmt.Rhs", Field, 0}, ++ {"AssignStmt.Tok", Field, 0}, ++ {"AssignStmt.TokPos", Field, 0}, ++ {"Bad", Const, 0}, ++ {"BadDecl", Type, 0}, ++ {"BadDecl.From", Field, 0}, ++ {"BadDecl.To", Field, 0}, ++ {"BadExpr", Type, 0}, ++ {"BadExpr.From", Field, 0}, ++ {"BadExpr.To", Field, 0}, ++ {"BadStmt", Type, 0}, ++ {"BadStmt.From", Field, 0}, ++ {"BadStmt.To", Field, 0}, ++ {"BasicLit", Type, 0}, ++ {"BasicLit.Kind", Field, 0}, ++ {"BasicLit.Value", Field, 0}, ++ {"BasicLit.ValuePos", Field, 0}, ++ {"BinaryExpr", Type, 0}, ++ {"BinaryExpr.Op", Field, 0}, ++ {"BinaryExpr.OpPos", Field, 0}, ++ {"BinaryExpr.X", Field, 0}, ++ {"BinaryExpr.Y", Field, 0}, ++ {"BlockStmt", Type, 0}, ++ {"BlockStmt.Lbrace", Field, 0}, ++ {"BlockStmt.List", Field, 0}, ++ {"BlockStmt.Rbrace", Field, 0}, ++ {"BranchStmt", Type, 0}, ++ {"BranchStmt.Label", Field, 0}, ++ {"BranchStmt.Tok", Field, 0}, ++ {"BranchStmt.TokPos", Field, 0}, ++ {"CallExpr", Type, 0}, ++ {"CallExpr.Args", Field, 0}, ++ {"CallExpr.Ellipsis", Field, 0}, ++ {"CallExpr.Fun", Field, 0}, ++ {"CallExpr.Lparen", Field, 0}, ++ {"CallExpr.Rparen", Field, 0}, ++ {"CaseClause", Type, 0}, ++ {"CaseClause.Body", Field, 0}, ++ {"CaseClause.Case", Field, 0}, ++ {"CaseClause.Colon", Field, 0}, ++ {"CaseClause.List", Field, 0}, ++ {"ChanDir", Type, 0}, ++ {"ChanType", Type, 0}, ++ {"ChanType.Arrow", Field, 1}, ++ {"ChanType.Begin", Field, 0}, ++ {"ChanType.Dir", Field, 0}, ++ {"ChanType.Value", Field, 0}, ++ {"CommClause", Type, 0}, ++ {"CommClause.Body", Field, 0}, ++ {"CommClause.Case", Field, 0}, ++ {"CommClause.Colon", Field, 0}, ++ {"CommClause.Comm", Field, 0}, ++ {"Comment", Type, 0}, ++ {"Comment.Slash", Field, 0}, ++ {"Comment.Text", Field, 0}, ++ {"CommentGroup", Type, 0}, ++ {"CommentGroup.List", Field, 0}, ++ {"CommentMap", Type, 1}, ++ {"CompositeLit", Type, 0}, ++ {"CompositeLit.Elts", Field, 0}, ++ {"CompositeLit.Incomplete", Field, 11}, ++ {"CompositeLit.Lbrace", Field, 0}, ++ {"CompositeLit.Rbrace", Field, 0}, ++ {"CompositeLit.Type", Field, 0}, ++ {"Con", Const, 0}, ++ {"Decl", Type, 0}, ++ {"DeclStmt", Type, 0}, ++ {"DeclStmt.Decl", Field, 0}, ++ {"DeferStmt", Type, 0}, ++ {"DeferStmt.Call", Field, 0}, ++ {"DeferStmt.Defer", Field, 0}, ++ {"Ellipsis", Type, 0}, ++ {"Ellipsis.Ellipsis", Field, 0}, ++ {"Ellipsis.Elt", Field, 0}, ++ {"EmptyStmt", Type, 0}, ++ {"EmptyStmt.Implicit", Field, 5}, ++ {"EmptyStmt.Semicolon", Field, 0}, ++ {"Expr", Type, 0}, ++ {"ExprStmt", Type, 0}, ++ {"ExprStmt.X", Field, 0}, ++ {"Field", Type, 0}, ++ {"Field.Comment", Field, 0}, ++ {"Field.Doc", Field, 0}, ++ {"Field.Names", Field, 0}, ++ {"Field.Tag", Field, 0}, ++ {"Field.Type", Field, 0}, ++ {"FieldFilter", Type, 0}, ++ {"FieldList", Type, 0}, ++ {"FieldList.Closing", Field, 0}, ++ {"FieldList.List", Field, 0}, ++ {"FieldList.Opening", Field, 0}, ++ {"File", Type, 0}, ++ {"File.Comments", Field, 0}, ++ {"File.Decls", Field, 0}, ++ {"File.Doc", Field, 0}, ++ {"File.FileEnd", Field, 20}, ++ {"File.FileStart", Field, 20}, ++ {"File.GoVersion", Field, 21}, ++ {"File.Imports", Field, 0}, ++ {"File.Name", Field, 0}, ++ {"File.Package", Field, 0}, ++ {"File.Scope", Field, 0}, ++ {"File.Unresolved", Field, 0}, ++ {"FileExports", Func, 0}, ++ {"Filter", Type, 0}, ++ {"FilterDecl", Func, 0}, ++ {"FilterFile", Func, 0}, ++ {"FilterFuncDuplicates", Const, 0}, ++ {"FilterImportDuplicates", Const, 0}, ++ {"FilterPackage", Func, 0}, ++ {"FilterUnassociatedComments", Const, 0}, ++ {"ForStmt", Type, 0}, ++ {"ForStmt.Body", Field, 0}, ++ {"ForStmt.Cond", Field, 0}, ++ {"ForStmt.For", Field, 0}, ++ {"ForStmt.Init", Field, 0}, ++ {"ForStmt.Post", Field, 0}, ++ {"Fprint", Func, 0}, ++ {"Fun", Const, 0}, ++ {"FuncDecl", Type, 0}, ++ {"FuncDecl.Body", Field, 0}, ++ {"FuncDecl.Doc", Field, 0}, ++ {"FuncDecl.Name", Field, 0}, ++ {"FuncDecl.Recv", Field, 0}, ++ {"FuncDecl.Type", Field, 0}, ++ {"FuncLit", Type, 0}, ++ {"FuncLit.Body", Field, 0}, ++ {"FuncLit.Type", Field, 0}, ++ {"FuncType", Type, 0}, ++ {"FuncType.Func", Field, 0}, ++ {"FuncType.Params", Field, 0}, ++ {"FuncType.Results", Field, 0}, ++ {"FuncType.TypeParams", Field, 18}, ++ {"GenDecl", Type, 0}, ++ {"GenDecl.Doc", Field, 0}, ++ {"GenDecl.Lparen", Field, 0}, ++ {"GenDecl.Rparen", Field, 0}, ++ {"GenDecl.Specs", Field, 0}, ++ {"GenDecl.Tok", Field, 0}, ++ {"GenDecl.TokPos", Field, 0}, ++ {"GoStmt", Type, 0}, ++ {"GoStmt.Call", Field, 0}, ++ {"GoStmt.Go", Field, 0}, ++ {"Ident", Type, 0}, ++ {"Ident.Name", Field, 0}, ++ {"Ident.NamePos", Field, 0}, ++ {"Ident.Obj", Field, 0}, ++ {"IfStmt", Type, 0}, ++ {"IfStmt.Body", Field, 0}, ++ {"IfStmt.Cond", Field, 0}, ++ {"IfStmt.Else", Field, 0}, ++ {"IfStmt.If", Field, 0}, ++ {"IfStmt.Init", Field, 0}, ++ {"ImportSpec", Type, 0}, ++ {"ImportSpec.Comment", Field, 0}, ++ {"ImportSpec.Doc", Field, 0}, ++ {"ImportSpec.EndPos", Field, 0}, ++ {"ImportSpec.Name", Field, 0}, ++ {"ImportSpec.Path", Field, 0}, ++ {"Importer", Type, 0}, ++ {"IncDecStmt", Type, 0}, ++ {"IncDecStmt.Tok", Field, 0}, ++ {"IncDecStmt.TokPos", Field, 0}, ++ {"IncDecStmt.X", Field, 0}, ++ {"IndexExpr", Type, 0}, ++ {"IndexExpr.Index", Field, 0}, ++ {"IndexExpr.Lbrack", Field, 0}, ++ {"IndexExpr.Rbrack", Field, 0}, ++ {"IndexExpr.X", Field, 0}, ++ {"IndexListExpr", Type, 18}, ++ {"IndexListExpr.Indices", Field, 18}, ++ {"IndexListExpr.Lbrack", Field, 18}, ++ {"IndexListExpr.Rbrack", Field, 18}, ++ {"IndexListExpr.X", Field, 18}, ++ {"Inspect", Func, 0}, ++ {"InterfaceType", Type, 0}, ++ {"InterfaceType.Incomplete", Field, 0}, ++ {"InterfaceType.Interface", Field, 0}, ++ {"InterfaceType.Methods", Field, 0}, ++ {"IsExported", Func, 0}, ++ {"IsGenerated", Func, 21}, ++ {"KeyValueExpr", Type, 0}, ++ {"KeyValueExpr.Colon", Field, 0}, ++ {"KeyValueExpr.Key", Field, 0}, ++ {"KeyValueExpr.Value", Field, 0}, ++ {"LabeledStmt", Type, 0}, ++ {"LabeledStmt.Colon", Field, 0}, ++ {"LabeledStmt.Label", Field, 0}, ++ {"LabeledStmt.Stmt", Field, 0}, ++ {"Lbl", Const, 0}, ++ {"MapType", Type, 0}, ++ {"MapType.Key", Field, 0}, ++ {"MapType.Map", Field, 0}, ++ {"MapType.Value", Field, 0}, ++ {"MergeMode", Type, 0}, ++ {"MergePackageFiles", Func, 0}, ++ {"NewCommentMap", Func, 1}, ++ {"NewIdent", Func, 0}, ++ {"NewObj", Func, 0}, ++ {"NewPackage", Func, 0}, ++ {"NewScope", Func, 0}, ++ {"Node", Type, 0}, ++ {"NotNilFilter", Func, 0}, ++ {"ObjKind", Type, 0}, ++ {"Object", Type, 0}, ++ {"Object.Data", Field, 0}, ++ {"Object.Decl", Field, 0}, ++ {"Object.Kind", Field, 0}, ++ {"Object.Name", Field, 0}, ++ {"Object.Type", Field, 0}, ++ {"Package", Type, 0}, ++ {"Package.Files", Field, 0}, ++ {"Package.Imports", Field, 0}, ++ {"Package.Name", Field, 0}, ++ {"Package.Scope", Field, 0}, ++ {"PackageExports", Func, 0}, ++ {"ParenExpr", Type, 0}, ++ {"ParenExpr.Lparen", Field, 0}, ++ {"ParenExpr.Rparen", Field, 0}, ++ {"ParenExpr.X", Field, 0}, ++ {"Pkg", Const, 0}, ++ {"Print", Func, 0}, ++ {"RECV", Const, 0}, ++ {"RangeStmt", Type, 0}, ++ {"RangeStmt.Body", Field, 0}, ++ {"RangeStmt.For", Field, 0}, ++ {"RangeStmt.Key", Field, 0}, ++ {"RangeStmt.Range", Field, 20}, ++ {"RangeStmt.Tok", Field, 0}, ++ {"RangeStmt.TokPos", Field, 0}, ++ {"RangeStmt.Value", Field, 0}, ++ {"RangeStmt.X", Field, 0}, ++ {"ReturnStmt", Type, 0}, ++ {"ReturnStmt.Results", Field, 0}, ++ {"ReturnStmt.Return", Field, 0}, ++ {"SEND", Const, 0}, ++ {"Scope", Type, 0}, ++ {"Scope.Objects", Field, 0}, ++ {"Scope.Outer", Field, 0}, ++ {"SelectStmt", Type, 0}, ++ {"SelectStmt.Body", Field, 0}, ++ {"SelectStmt.Select", Field, 0}, ++ {"SelectorExpr", Type, 0}, ++ {"SelectorExpr.Sel", Field, 0}, ++ {"SelectorExpr.X", Field, 0}, ++ {"SendStmt", Type, 0}, ++ {"SendStmt.Arrow", Field, 0}, ++ {"SendStmt.Chan", Field, 0}, ++ {"SendStmt.Value", Field, 0}, ++ {"SliceExpr", Type, 0}, ++ {"SliceExpr.High", Field, 0}, ++ {"SliceExpr.Lbrack", Field, 0}, ++ {"SliceExpr.Low", Field, 0}, ++ {"SliceExpr.Max", Field, 2}, ++ {"SliceExpr.Rbrack", Field, 0}, ++ {"SliceExpr.Slice3", Field, 2}, ++ {"SliceExpr.X", Field, 0}, ++ {"SortImports", Func, 0}, ++ {"Spec", Type, 0}, ++ {"StarExpr", Type, 0}, ++ {"StarExpr.Star", Field, 0}, ++ {"StarExpr.X", Field, 0}, ++ {"Stmt", Type, 0}, ++ {"StructType", Type, 0}, ++ {"StructType.Fields", Field, 0}, ++ {"StructType.Incomplete", Field, 0}, ++ {"StructType.Struct", Field, 0}, ++ {"SwitchStmt", Type, 0}, ++ {"SwitchStmt.Body", Field, 0}, ++ {"SwitchStmt.Init", Field, 0}, ++ {"SwitchStmt.Switch", Field, 0}, ++ {"SwitchStmt.Tag", Field, 0}, ++ {"Typ", Const, 0}, ++ {"TypeAssertExpr", Type, 0}, ++ {"TypeAssertExpr.Lparen", Field, 2}, ++ {"TypeAssertExpr.Rparen", Field, 2}, ++ {"TypeAssertExpr.Type", Field, 0}, ++ {"TypeAssertExpr.X", Field, 0}, ++ {"TypeSpec", Type, 0}, ++ {"TypeSpec.Assign", Field, 9}, ++ {"TypeSpec.Comment", Field, 0}, ++ {"TypeSpec.Doc", Field, 0}, ++ {"TypeSpec.Name", Field, 0}, ++ {"TypeSpec.Type", Field, 0}, ++ {"TypeSpec.TypeParams", Field, 18}, ++ {"TypeSwitchStmt", Type, 0}, ++ {"TypeSwitchStmt.Assign", Field, 0}, ++ {"TypeSwitchStmt.Body", Field, 0}, ++ {"TypeSwitchStmt.Init", Field, 0}, ++ {"TypeSwitchStmt.Switch", Field, 0}, ++ {"UnaryExpr", Type, 0}, ++ {"UnaryExpr.Op", Field, 0}, ++ {"UnaryExpr.OpPos", Field, 0}, ++ {"UnaryExpr.X", Field, 0}, ++ {"Unparen", Func, 22}, ++ {"ValueSpec", Type, 0}, ++ {"ValueSpec.Comment", Field, 0}, ++ {"ValueSpec.Doc", Field, 0}, ++ {"ValueSpec.Names", Field, 0}, ++ {"ValueSpec.Type", Field, 0}, ++ {"ValueSpec.Values", Field, 0}, ++ {"Var", Const, 0}, ++ {"Visitor", Type, 0}, ++ {"Walk", Func, 0}, ++ }, ++ "go/build": { ++ {"(*Context).Import", Method, 0}, ++ {"(*Context).ImportDir", Method, 0}, ++ {"(*Context).MatchFile", Method, 2}, ++ {"(*Context).SrcDirs", Method, 0}, ++ {"(*MultiplePackageError).Error", Method, 4}, ++ {"(*NoGoError).Error", Method, 0}, ++ {"(*Package).IsCommand", Method, 0}, ++ {"AllowBinary", Const, 0}, ++ {"ArchChar", Func, 0}, ++ {"Context", Type, 0}, ++ {"Context.BuildTags", Field, 0}, ++ {"Context.CgoEnabled", Field, 0}, ++ {"Context.Compiler", Field, 0}, ++ {"Context.Dir", Field, 14}, ++ {"Context.GOARCH", Field, 0}, ++ {"Context.GOOS", Field, 0}, ++ {"Context.GOPATH", Field, 0}, ++ {"Context.GOROOT", Field, 0}, ++ {"Context.HasSubdir", Field, 0}, ++ {"Context.InstallSuffix", Field, 1}, ++ {"Context.IsAbsPath", Field, 0}, ++ {"Context.IsDir", Field, 0}, ++ {"Context.JoinPath", Field, 0}, ++ {"Context.OpenFile", Field, 0}, ++ {"Context.ReadDir", Field, 0}, ++ {"Context.ReleaseTags", Field, 1}, ++ {"Context.SplitPathList", Field, 0}, ++ {"Context.ToolTags", Field, 17}, ++ {"Context.UseAllFiles", Field, 0}, ++ {"Default", Var, 0}, ++ {"Directive", Type, 21}, ++ {"Directive.Pos", Field, 21}, ++ {"Directive.Text", Field, 21}, ++ {"FindOnly", Const, 0}, ++ {"IgnoreVendor", Const, 6}, ++ {"Import", Func, 0}, ++ {"ImportComment", Const, 4}, ++ {"ImportDir", Func, 0}, ++ {"ImportMode", Type, 0}, ++ {"IsLocalImport", Func, 0}, ++ {"MultiplePackageError", Type, 4}, ++ {"MultiplePackageError.Dir", Field, 4}, ++ {"MultiplePackageError.Files", Field, 4}, ++ {"MultiplePackageError.Packages", Field, 4}, ++ {"NoGoError", Type, 0}, ++ {"NoGoError.Dir", Field, 0}, ++ {"Package", Type, 0}, ++ {"Package.AllTags", Field, 2}, ++ {"Package.BinDir", Field, 0}, ++ {"Package.BinaryOnly", Field, 7}, ++ {"Package.CFiles", Field, 0}, ++ {"Package.CXXFiles", Field, 2}, ++ {"Package.CgoCFLAGS", Field, 0}, ++ {"Package.CgoCPPFLAGS", Field, 2}, ++ {"Package.CgoCXXFLAGS", Field, 2}, ++ {"Package.CgoFFLAGS", Field, 7}, ++ {"Package.CgoFiles", Field, 0}, ++ {"Package.CgoLDFLAGS", Field, 0}, ++ {"Package.CgoPkgConfig", Field, 0}, ++ {"Package.ConflictDir", Field, 2}, ++ {"Package.Dir", Field, 0}, ++ {"Package.Directives", Field, 21}, ++ {"Package.Doc", Field, 0}, ++ {"Package.EmbedPatternPos", Field, 16}, ++ {"Package.EmbedPatterns", Field, 16}, ++ {"Package.FFiles", Field, 7}, ++ {"Package.GoFiles", Field, 0}, ++ {"Package.Goroot", Field, 0}, ++ {"Package.HFiles", Field, 0}, ++ {"Package.IgnoredGoFiles", Field, 1}, ++ {"Package.IgnoredOtherFiles", Field, 16}, ++ {"Package.ImportComment", Field, 4}, ++ {"Package.ImportPath", Field, 0}, ++ {"Package.ImportPos", Field, 0}, ++ {"Package.Imports", Field, 0}, ++ {"Package.InvalidGoFiles", Field, 6}, ++ {"Package.MFiles", Field, 3}, ++ {"Package.Name", Field, 0}, ++ {"Package.PkgObj", Field, 0}, ++ {"Package.PkgRoot", Field, 0}, ++ {"Package.PkgTargetRoot", Field, 5}, ++ {"Package.Root", Field, 0}, ++ {"Package.SFiles", Field, 0}, ++ {"Package.SrcRoot", Field, 0}, ++ {"Package.SwigCXXFiles", Field, 1}, ++ {"Package.SwigFiles", Field, 1}, ++ {"Package.SysoFiles", Field, 0}, ++ {"Package.TestDirectives", Field, 21}, ++ {"Package.TestEmbedPatternPos", Field, 16}, ++ {"Package.TestEmbedPatterns", Field, 16}, ++ {"Package.TestGoFiles", Field, 0}, ++ {"Package.TestImportPos", Field, 0}, ++ {"Package.TestImports", Field, 0}, ++ {"Package.XTestDirectives", Field, 21}, ++ {"Package.XTestEmbedPatternPos", Field, 16}, ++ {"Package.XTestEmbedPatterns", Field, 16}, ++ {"Package.XTestGoFiles", Field, 0}, ++ {"Package.XTestImportPos", Field, 0}, ++ {"Package.XTestImports", Field, 0}, ++ {"ToolDir", Var, 0}, ++ }, ++ "go/build/constraint": { ++ {"(*AndExpr).Eval", Method, 16}, ++ {"(*AndExpr).String", Method, 16}, ++ {"(*NotExpr).Eval", Method, 16}, ++ {"(*NotExpr).String", Method, 16}, ++ {"(*OrExpr).Eval", Method, 16}, ++ {"(*OrExpr).String", Method, 16}, ++ {"(*SyntaxError).Error", Method, 16}, ++ {"(*TagExpr).Eval", Method, 16}, ++ {"(*TagExpr).String", Method, 16}, ++ {"AndExpr", Type, 16}, ++ {"AndExpr.X", Field, 16}, ++ {"AndExpr.Y", Field, 16}, ++ {"Expr", Type, 16}, ++ {"GoVersion", Func, 21}, ++ {"IsGoBuild", Func, 16}, ++ {"IsPlusBuild", Func, 16}, ++ {"NotExpr", Type, 16}, ++ {"NotExpr.X", Field, 16}, ++ {"OrExpr", Type, 16}, ++ {"OrExpr.X", Field, 16}, ++ {"OrExpr.Y", Field, 16}, ++ {"Parse", Func, 16}, ++ {"PlusBuildLines", Func, 16}, ++ {"SyntaxError", Type, 16}, ++ {"SyntaxError.Err", Field, 16}, ++ {"SyntaxError.Offset", Field, 16}, ++ {"TagExpr", Type, 16}, ++ {"TagExpr.Tag", Field, 16}, ++ }, ++ "go/constant": { ++ {"(Kind).String", Method, 18}, ++ {"BinaryOp", Func, 5}, ++ {"BitLen", Func, 5}, ++ {"Bool", Const, 5}, ++ {"BoolVal", Func, 5}, ++ {"Bytes", Func, 5}, ++ {"Compare", Func, 5}, ++ {"Complex", Const, 5}, ++ {"Denom", Func, 5}, ++ {"Float", Const, 5}, ++ {"Float32Val", Func, 5}, ++ {"Float64Val", Func, 5}, ++ {"Imag", Func, 5}, ++ {"Int", Const, 5}, ++ {"Int64Val", Func, 5}, ++ {"Kind", Type, 5}, ++ {"Make", Func, 13}, ++ {"MakeBool", Func, 5}, ++ {"MakeFloat64", Func, 5}, ++ {"MakeFromBytes", Func, 5}, ++ {"MakeFromLiteral", Func, 5}, ++ {"MakeImag", Func, 5}, ++ {"MakeInt64", Func, 5}, ++ {"MakeString", Func, 5}, ++ {"MakeUint64", Func, 5}, ++ {"MakeUnknown", Func, 5}, ++ {"Num", Func, 5}, ++ {"Real", Func, 5}, ++ {"Shift", Func, 5}, ++ {"Sign", Func, 5}, ++ {"String", Const, 5}, ++ {"StringVal", Func, 5}, ++ {"ToComplex", Func, 6}, ++ {"ToFloat", Func, 6}, ++ {"ToInt", Func, 6}, ++ {"Uint64Val", Func, 5}, ++ {"UnaryOp", Func, 5}, ++ {"Unknown", Const, 5}, ++ {"Val", Func, 13}, ++ {"Value", Type, 5}, ++ }, ++ "go/doc": { ++ {"(*Package).Filter", Method, 0}, ++ {"(*Package).HTML", Method, 19}, ++ {"(*Package).Markdown", Method, 19}, ++ {"(*Package).Parser", Method, 19}, ++ {"(*Package).Printer", Method, 19}, ++ {"(*Package).Synopsis", Method, 19}, ++ {"(*Package).Text", Method, 19}, ++ {"AllDecls", Const, 0}, ++ {"AllMethods", Const, 0}, ++ {"Example", Type, 0}, ++ {"Example.Code", Field, 0}, ++ {"Example.Comments", Field, 0}, ++ {"Example.Doc", Field, 0}, ++ {"Example.EmptyOutput", Field, 1}, ++ {"Example.Name", Field, 0}, ++ {"Example.Order", Field, 1}, ++ {"Example.Output", Field, 0}, ++ {"Example.Play", Field, 1}, ++ {"Example.Suffix", Field, 14}, ++ {"Example.Unordered", Field, 7}, ++ {"Examples", Func, 0}, ++ {"Filter", Type, 0}, ++ {"Func", Type, 0}, ++ {"Func.Decl", Field, 0}, ++ {"Func.Doc", Field, 0}, ++ {"Func.Examples", Field, 14}, ++ {"Func.Level", Field, 0}, ++ {"Func.Name", Field, 0}, ++ {"Func.Orig", Field, 0}, ++ {"Func.Recv", Field, 0}, ++ {"IllegalPrefixes", Var, 1}, ++ {"IsPredeclared", Func, 8}, ++ {"Mode", Type, 0}, ++ {"New", Func, 0}, ++ {"NewFromFiles", Func, 14}, ++ {"Note", Type, 1}, ++ {"Note.Body", Field, 1}, ++ {"Note.End", Field, 1}, ++ {"Note.Pos", Field, 1}, ++ {"Note.UID", Field, 1}, ++ {"Package", Type, 0}, ++ {"Package.Bugs", Field, 0}, ++ {"Package.Consts", Field, 0}, ++ {"Package.Doc", Field, 0}, ++ {"Package.Examples", Field, 14}, ++ {"Package.Filenames", Field, 0}, ++ {"Package.Funcs", Field, 0}, ++ {"Package.ImportPath", Field, 0}, ++ {"Package.Imports", Field, 0}, ++ {"Package.Name", Field, 0}, ++ {"Package.Notes", Field, 1}, ++ {"Package.Types", Field, 0}, ++ {"Package.Vars", Field, 0}, ++ {"PreserveAST", Const, 12}, ++ {"Synopsis", Func, 0}, ++ {"ToHTML", Func, 0}, ++ {"ToText", Func, 0}, ++ {"Type", Type, 0}, ++ {"Type.Consts", Field, 0}, ++ {"Type.Decl", Field, 0}, ++ {"Type.Doc", Field, 0}, ++ {"Type.Examples", Field, 14}, ++ {"Type.Funcs", Field, 0}, ++ {"Type.Methods", Field, 0}, ++ {"Type.Name", Field, 0}, ++ {"Type.Vars", Field, 0}, ++ {"Value", Type, 0}, ++ {"Value.Decl", Field, 0}, ++ {"Value.Doc", Field, 0}, ++ {"Value.Names", Field, 0}, ++ }, ++ "go/doc/comment": { ++ {"(*DocLink).DefaultURL", Method, 19}, ++ {"(*Heading).DefaultID", Method, 19}, ++ {"(*List).BlankBefore", Method, 19}, ++ {"(*List).BlankBetween", Method, 19}, ++ {"(*Parser).Parse", Method, 19}, ++ {"(*Printer).Comment", Method, 19}, ++ {"(*Printer).HTML", Method, 19}, ++ {"(*Printer).Markdown", Method, 19}, ++ {"(*Printer).Text", Method, 19}, ++ {"Block", Type, 19}, ++ {"Code", Type, 19}, ++ {"Code.Text", Field, 19}, ++ {"DefaultLookupPackage", Func, 19}, ++ {"Doc", Type, 19}, ++ {"Doc.Content", Field, 19}, ++ {"Doc.Links", Field, 19}, ++ {"DocLink", Type, 19}, ++ {"DocLink.ImportPath", Field, 19}, ++ {"DocLink.Name", Field, 19}, ++ {"DocLink.Recv", Field, 19}, ++ {"DocLink.Text", Field, 19}, ++ {"Heading", Type, 19}, ++ {"Heading.Text", Field, 19}, ++ {"Italic", Type, 19}, ++ {"Link", Type, 19}, ++ {"Link.Auto", Field, 19}, ++ {"Link.Text", Field, 19}, ++ {"Link.URL", Field, 19}, ++ {"LinkDef", Type, 19}, ++ {"LinkDef.Text", Field, 19}, ++ {"LinkDef.URL", Field, 19}, ++ {"LinkDef.Used", Field, 19}, ++ {"List", Type, 19}, ++ {"List.ForceBlankBefore", Field, 19}, ++ {"List.ForceBlankBetween", Field, 19}, ++ {"List.Items", Field, 19}, ++ {"ListItem", Type, 19}, ++ {"ListItem.Content", Field, 19}, ++ {"ListItem.Number", Field, 19}, ++ {"Paragraph", Type, 19}, ++ {"Paragraph.Text", Field, 19}, ++ {"Parser", Type, 19}, ++ {"Parser.LookupPackage", Field, 19}, ++ {"Parser.LookupSym", Field, 19}, ++ {"Parser.Words", Field, 19}, ++ {"Plain", Type, 19}, ++ {"Printer", Type, 19}, ++ {"Printer.DocLinkBaseURL", Field, 19}, ++ {"Printer.DocLinkURL", Field, 19}, ++ {"Printer.HeadingID", Field, 19}, ++ {"Printer.HeadingLevel", Field, 19}, ++ {"Printer.TextCodePrefix", Field, 19}, ++ {"Printer.TextPrefix", Field, 19}, ++ {"Printer.TextWidth", Field, 19}, ++ {"Text", Type, 19}, ++ }, ++ "go/format": { ++ {"Node", Func, 1}, ++ {"Source", Func, 1}, ++ }, ++ "go/importer": { ++ {"Default", Func, 5}, ++ {"For", Func, 5}, ++ {"ForCompiler", Func, 12}, ++ {"Lookup", Type, 5}, ++ }, ++ "go/parser": { ++ {"AllErrors", Const, 1}, ++ {"DeclarationErrors", Const, 0}, ++ {"ImportsOnly", Const, 0}, ++ {"Mode", Type, 0}, ++ {"PackageClauseOnly", Const, 0}, ++ {"ParseComments", Const, 0}, ++ {"ParseDir", Func, 0}, ++ {"ParseExpr", Func, 0}, ++ {"ParseExprFrom", Func, 5}, ++ {"ParseFile", Func, 0}, ++ {"SkipObjectResolution", Const, 17}, ++ {"SpuriousErrors", Const, 0}, ++ {"Trace", Const, 0}, ++ }, ++ "go/printer": { ++ {"(*Config).Fprint", Method, 0}, ++ {"CommentedNode", Type, 0}, ++ {"CommentedNode.Comments", Field, 0}, ++ {"CommentedNode.Node", Field, 0}, ++ {"Config", Type, 0}, ++ {"Config.Indent", Field, 1}, ++ {"Config.Mode", Field, 0}, ++ {"Config.Tabwidth", Field, 0}, ++ {"Fprint", Func, 0}, ++ {"Mode", Type, 0}, ++ {"RawFormat", Const, 0}, ++ {"SourcePos", Const, 0}, ++ {"TabIndent", Const, 0}, ++ {"UseSpaces", Const, 0}, ++ }, ++ "go/scanner": { ++ {"(*ErrorList).Add", Method, 0}, ++ {"(*ErrorList).RemoveMultiples", Method, 0}, ++ {"(*ErrorList).Reset", Method, 0}, ++ {"(*Scanner).Init", Method, 0}, ++ {"(*Scanner).Scan", Method, 0}, ++ {"(Error).Error", Method, 0}, ++ {"(ErrorList).Err", Method, 0}, ++ {"(ErrorList).Error", Method, 0}, ++ {"(ErrorList).Len", Method, 0}, ++ {"(ErrorList).Less", Method, 0}, ++ {"(ErrorList).Sort", Method, 0}, ++ {"(ErrorList).Swap", Method, 0}, ++ {"Error", Type, 0}, ++ {"Error.Msg", Field, 0}, ++ {"Error.Pos", Field, 0}, ++ {"ErrorHandler", Type, 0}, ++ {"ErrorList", Type, 0}, ++ {"Mode", Type, 0}, ++ {"PrintError", Func, 0}, ++ {"ScanComments", Const, 0}, ++ {"Scanner", Type, 0}, ++ {"Scanner.ErrorCount", Field, 0}, ++ }, ++ "go/token": { ++ {"(*File).AddLine", Method, 0}, ++ {"(*File).AddLineColumnInfo", Method, 11}, ++ {"(*File).AddLineInfo", Method, 0}, ++ {"(*File).Base", Method, 0}, ++ {"(*File).Line", Method, 0}, ++ {"(*File).LineCount", Method, 0}, ++ {"(*File).LineStart", Method, 12}, ++ {"(*File).Lines", Method, 21}, ++ {"(*File).MergeLine", Method, 2}, ++ {"(*File).Name", Method, 0}, ++ {"(*File).Offset", Method, 0}, ++ {"(*File).Pos", Method, 0}, ++ {"(*File).Position", Method, 0}, ++ {"(*File).PositionFor", Method, 4}, ++ {"(*File).SetLines", Method, 0}, ++ {"(*File).SetLinesForContent", Method, 0}, ++ {"(*File).Size", Method, 0}, ++ {"(*FileSet).AddFile", Method, 0}, ++ {"(*FileSet).Base", Method, 0}, ++ {"(*FileSet).File", Method, 0}, ++ {"(*FileSet).Iterate", Method, 0}, ++ {"(*FileSet).Position", Method, 0}, ++ {"(*FileSet).PositionFor", Method, 4}, ++ {"(*FileSet).Read", Method, 0}, ++ {"(*FileSet).RemoveFile", Method, 20}, ++ {"(*FileSet).Write", Method, 0}, ++ {"(*Position).IsValid", Method, 0}, ++ {"(Pos).IsValid", Method, 0}, ++ {"(Position).String", Method, 0}, ++ {"(Token).IsKeyword", Method, 0}, ++ {"(Token).IsLiteral", Method, 0}, ++ {"(Token).IsOperator", Method, 0}, ++ {"(Token).Precedence", Method, 0}, ++ {"(Token).String", Method, 0}, ++ {"ADD", Const, 0}, ++ {"ADD_ASSIGN", Const, 0}, ++ {"AND", Const, 0}, ++ {"AND_ASSIGN", Const, 0}, ++ {"AND_NOT", Const, 0}, ++ {"AND_NOT_ASSIGN", Const, 0}, ++ {"ARROW", Const, 0}, ++ {"ASSIGN", Const, 0}, ++ {"BREAK", Const, 0}, ++ {"CASE", Const, 0}, ++ {"CHAN", Const, 0}, ++ {"CHAR", Const, 0}, ++ {"COLON", Const, 0}, ++ {"COMMA", Const, 0}, ++ {"COMMENT", Const, 0}, ++ {"CONST", Const, 0}, ++ {"CONTINUE", Const, 0}, ++ {"DEC", Const, 0}, ++ {"DEFAULT", Const, 0}, ++ {"DEFER", Const, 0}, ++ {"DEFINE", Const, 0}, ++ {"ELLIPSIS", Const, 0}, ++ {"ELSE", Const, 0}, ++ {"EOF", Const, 0}, ++ {"EQL", Const, 0}, ++ {"FALLTHROUGH", Const, 0}, ++ {"FLOAT", Const, 0}, ++ {"FOR", Const, 0}, ++ {"FUNC", Const, 0}, ++ {"File", Type, 0}, ++ {"FileSet", Type, 0}, ++ {"GEQ", Const, 0}, ++ {"GO", Const, 0}, ++ {"GOTO", Const, 0}, ++ {"GTR", Const, 0}, ++ {"HighestPrec", Const, 0}, ++ {"IDENT", Const, 0}, ++ {"IF", Const, 0}, ++ {"ILLEGAL", Const, 0}, ++ {"IMAG", Const, 0}, ++ {"IMPORT", Const, 0}, ++ {"INC", Const, 0}, ++ {"INT", Const, 0}, ++ {"INTERFACE", Const, 0}, ++ {"IsExported", Func, 13}, ++ {"IsIdentifier", Func, 13}, ++ {"IsKeyword", Func, 13}, ++ {"LAND", Const, 0}, ++ {"LBRACE", Const, 0}, ++ {"LBRACK", Const, 0}, ++ {"LEQ", Const, 0}, ++ {"LOR", Const, 0}, ++ {"LPAREN", Const, 0}, ++ {"LSS", Const, 0}, ++ {"Lookup", Func, 0}, ++ {"LowestPrec", Const, 0}, ++ {"MAP", Const, 0}, ++ {"MUL", Const, 0}, ++ {"MUL_ASSIGN", Const, 0}, ++ {"NEQ", Const, 0}, ++ {"NOT", Const, 0}, ++ {"NewFileSet", Func, 0}, ++ {"NoPos", Const, 0}, ++ {"OR", Const, 0}, ++ {"OR_ASSIGN", Const, 0}, ++ {"PACKAGE", Const, 0}, ++ {"PERIOD", Const, 0}, ++ {"Pos", Type, 0}, ++ {"Position", Type, 0}, ++ {"Position.Column", Field, 0}, ++ {"Position.Filename", Field, 0}, ++ {"Position.Line", Field, 0}, ++ {"Position.Offset", Field, 0}, ++ {"QUO", Const, 0}, ++ {"QUO_ASSIGN", Const, 0}, ++ {"RANGE", Const, 0}, ++ {"RBRACE", Const, 0}, ++ {"RBRACK", Const, 0}, ++ {"REM", Const, 0}, ++ {"REM_ASSIGN", Const, 0}, ++ {"RETURN", Const, 0}, ++ {"RPAREN", Const, 0}, ++ {"SELECT", Const, 0}, ++ {"SEMICOLON", Const, 0}, ++ {"SHL", Const, 0}, ++ {"SHL_ASSIGN", Const, 0}, ++ {"SHR", Const, 0}, ++ {"SHR_ASSIGN", Const, 0}, ++ {"STRING", Const, 0}, ++ {"STRUCT", Const, 0}, ++ {"SUB", Const, 0}, ++ {"SUB_ASSIGN", Const, 0}, ++ {"SWITCH", Const, 0}, ++ {"TILDE", Const, 18}, ++ {"TYPE", Const, 0}, ++ {"Token", Type, 0}, ++ {"UnaryPrec", Const, 0}, ++ {"VAR", Const, 0}, ++ {"XOR", Const, 0}, ++ {"XOR_ASSIGN", Const, 0}, ++ }, ++ "go/types": { ++ {"(*Alias).Obj", Method, 22}, ++ {"(*Alias).String", Method, 22}, ++ {"(*Alias).Underlying", Method, 22}, ++ {"(*ArgumentError).Error", Method, 18}, ++ {"(*ArgumentError).Unwrap", Method, 18}, ++ {"(*Array).Elem", Method, 5}, ++ {"(*Array).Len", Method, 5}, ++ {"(*Array).String", Method, 5}, ++ {"(*Array).Underlying", Method, 5}, ++ {"(*Basic).Info", Method, 5}, ++ {"(*Basic).Kind", Method, 5}, ++ {"(*Basic).Name", Method, 5}, ++ {"(*Basic).String", Method, 5}, ++ {"(*Basic).Underlying", Method, 5}, ++ {"(*Builtin).Exported", Method, 5}, ++ {"(*Builtin).Id", Method, 5}, ++ {"(*Builtin).Name", Method, 5}, ++ {"(*Builtin).Parent", Method, 5}, ++ {"(*Builtin).Pkg", Method, 5}, ++ {"(*Builtin).Pos", Method, 5}, ++ {"(*Builtin).String", Method, 5}, ++ {"(*Builtin).Type", Method, 5}, ++ {"(*Chan).Dir", Method, 5}, ++ {"(*Chan).Elem", Method, 5}, ++ {"(*Chan).String", Method, 5}, ++ {"(*Chan).Underlying", Method, 5}, ++ {"(*Checker).Files", Method, 5}, ++ {"(*Config).Check", Method, 5}, ++ {"(*Const).Exported", Method, 5}, ++ {"(*Const).Id", Method, 5}, ++ {"(*Const).Name", Method, 5}, ++ {"(*Const).Parent", Method, 5}, ++ {"(*Const).Pkg", Method, 5}, ++ {"(*Const).Pos", Method, 5}, ++ {"(*Const).String", Method, 5}, ++ {"(*Const).Type", Method, 5}, ++ {"(*Const).Val", Method, 5}, ++ {"(*Func).Exported", Method, 5}, ++ {"(*Func).FullName", Method, 5}, ++ {"(*Func).Id", Method, 5}, ++ {"(*Func).Name", Method, 5}, ++ {"(*Func).Origin", Method, 19}, ++ {"(*Func).Parent", Method, 5}, ++ {"(*Func).Pkg", Method, 5}, ++ {"(*Func).Pos", Method, 5}, ++ {"(*Func).Scope", Method, 5}, ++ {"(*Func).String", Method, 5}, ++ {"(*Func).Type", Method, 5}, ++ {"(*Info).ObjectOf", Method, 5}, ++ {"(*Info).PkgNameOf", Method, 22}, ++ {"(*Info).TypeOf", Method, 5}, ++ {"(*Initializer).String", Method, 5}, ++ {"(*Interface).Complete", Method, 5}, ++ {"(*Interface).Embedded", Method, 5}, ++ {"(*Interface).EmbeddedType", Method, 11}, ++ {"(*Interface).Empty", Method, 5}, ++ {"(*Interface).ExplicitMethod", Method, 5}, ++ {"(*Interface).IsComparable", Method, 18}, ++ {"(*Interface).IsImplicit", Method, 18}, ++ {"(*Interface).IsMethodSet", Method, 18}, ++ {"(*Interface).MarkImplicit", Method, 18}, ++ {"(*Interface).Method", Method, 5}, ++ {"(*Interface).NumEmbeddeds", Method, 5}, ++ {"(*Interface).NumExplicitMethods", Method, 5}, ++ {"(*Interface).NumMethods", Method, 5}, ++ {"(*Interface).String", Method, 5}, ++ {"(*Interface).Underlying", Method, 5}, ++ {"(*Label).Exported", Method, 5}, ++ {"(*Label).Id", Method, 5}, ++ {"(*Label).Name", Method, 5}, ++ {"(*Label).Parent", Method, 5}, ++ {"(*Label).Pkg", Method, 5}, ++ {"(*Label).Pos", Method, 5}, ++ {"(*Label).String", Method, 5}, ++ {"(*Label).Type", Method, 5}, ++ {"(*Map).Elem", Method, 5}, ++ {"(*Map).Key", Method, 5}, ++ {"(*Map).String", Method, 5}, ++ {"(*Map).Underlying", Method, 5}, ++ {"(*MethodSet).At", Method, 5}, ++ {"(*MethodSet).Len", Method, 5}, ++ {"(*MethodSet).Lookup", Method, 5}, ++ {"(*MethodSet).String", Method, 5}, ++ {"(*Named).AddMethod", Method, 5}, ++ {"(*Named).Method", Method, 5}, ++ {"(*Named).NumMethods", Method, 5}, ++ {"(*Named).Obj", Method, 5}, ++ {"(*Named).Origin", Method, 18}, ++ {"(*Named).SetTypeParams", Method, 18}, ++ {"(*Named).SetUnderlying", Method, 5}, ++ {"(*Named).String", Method, 5}, ++ {"(*Named).TypeArgs", Method, 18}, ++ {"(*Named).TypeParams", Method, 18}, ++ {"(*Named).Underlying", Method, 5}, ++ {"(*Nil).Exported", Method, 5}, ++ {"(*Nil).Id", Method, 5}, ++ {"(*Nil).Name", Method, 5}, ++ {"(*Nil).Parent", Method, 5}, ++ {"(*Nil).Pkg", Method, 5}, ++ {"(*Nil).Pos", Method, 5}, ++ {"(*Nil).String", Method, 5}, ++ {"(*Nil).Type", Method, 5}, ++ {"(*Package).Complete", Method, 5}, ++ {"(*Package).GoVersion", Method, 21}, ++ {"(*Package).Imports", Method, 5}, ++ {"(*Package).MarkComplete", Method, 5}, ++ {"(*Package).Name", Method, 5}, ++ {"(*Package).Path", Method, 5}, ++ {"(*Package).Scope", Method, 5}, ++ {"(*Package).SetImports", Method, 5}, ++ {"(*Package).SetName", Method, 6}, ++ {"(*Package).String", Method, 5}, ++ {"(*PkgName).Exported", Method, 5}, ++ {"(*PkgName).Id", Method, 5}, ++ {"(*PkgName).Imported", Method, 5}, ++ {"(*PkgName).Name", Method, 5}, ++ {"(*PkgName).Parent", Method, 5}, ++ {"(*PkgName).Pkg", Method, 5}, ++ {"(*PkgName).Pos", Method, 5}, ++ {"(*PkgName).String", Method, 5}, ++ {"(*PkgName).Type", Method, 5}, ++ {"(*Pointer).Elem", Method, 5}, ++ {"(*Pointer).String", Method, 5}, ++ {"(*Pointer).Underlying", Method, 5}, ++ {"(*Scope).Child", Method, 5}, ++ {"(*Scope).Contains", Method, 5}, ++ {"(*Scope).End", Method, 5}, ++ {"(*Scope).Innermost", Method, 5}, ++ {"(*Scope).Insert", Method, 5}, ++ {"(*Scope).Len", Method, 5}, ++ {"(*Scope).Lookup", Method, 5}, ++ {"(*Scope).LookupParent", Method, 5}, ++ {"(*Scope).Names", Method, 5}, ++ {"(*Scope).NumChildren", Method, 5}, ++ {"(*Scope).Parent", Method, 5}, ++ {"(*Scope).Pos", Method, 5}, ++ {"(*Scope).String", Method, 5}, ++ {"(*Scope).WriteTo", Method, 5}, ++ {"(*Selection).Index", Method, 5}, ++ {"(*Selection).Indirect", Method, 5}, ++ {"(*Selection).Kind", Method, 5}, ++ {"(*Selection).Obj", Method, 5}, ++ {"(*Selection).Recv", Method, 5}, ++ {"(*Selection).String", Method, 5}, ++ {"(*Selection).Type", Method, 5}, ++ {"(*Signature).Params", Method, 5}, ++ {"(*Signature).Recv", Method, 5}, ++ {"(*Signature).RecvTypeParams", Method, 18}, ++ {"(*Signature).Results", Method, 5}, ++ {"(*Signature).String", Method, 5}, ++ {"(*Signature).TypeParams", Method, 18}, ++ {"(*Signature).Underlying", Method, 5}, ++ {"(*Signature).Variadic", Method, 5}, ++ {"(*Slice).Elem", Method, 5}, ++ {"(*Slice).String", Method, 5}, ++ {"(*Slice).Underlying", Method, 5}, ++ {"(*StdSizes).Alignof", Method, 5}, ++ {"(*StdSizes).Offsetsof", Method, 5}, ++ {"(*StdSizes).Sizeof", Method, 5}, ++ {"(*Struct).Field", Method, 5}, ++ {"(*Struct).NumFields", Method, 5}, ++ {"(*Struct).String", Method, 5}, ++ {"(*Struct).Tag", Method, 5}, ++ {"(*Struct).Underlying", Method, 5}, ++ {"(*Term).String", Method, 18}, ++ {"(*Term).Tilde", Method, 18}, ++ {"(*Term).Type", Method, 18}, ++ {"(*Tuple).At", Method, 5}, ++ {"(*Tuple).Len", Method, 5}, ++ {"(*Tuple).String", Method, 5}, ++ {"(*Tuple).Underlying", Method, 5}, ++ {"(*TypeList).At", Method, 18}, ++ {"(*TypeList).Len", Method, 18}, ++ {"(*TypeName).Exported", Method, 5}, ++ {"(*TypeName).Id", Method, 5}, ++ {"(*TypeName).IsAlias", Method, 9}, ++ {"(*TypeName).Name", Method, 5}, ++ {"(*TypeName).Parent", Method, 5}, ++ {"(*TypeName).Pkg", Method, 5}, ++ {"(*TypeName).Pos", Method, 5}, ++ {"(*TypeName).String", Method, 5}, ++ {"(*TypeName).Type", Method, 5}, ++ {"(*TypeParam).Constraint", Method, 18}, ++ {"(*TypeParam).Index", Method, 18}, ++ {"(*TypeParam).Obj", Method, 18}, ++ {"(*TypeParam).SetConstraint", Method, 18}, ++ {"(*TypeParam).String", Method, 18}, ++ {"(*TypeParam).Underlying", Method, 18}, ++ {"(*TypeParamList).At", Method, 18}, ++ {"(*TypeParamList).Len", Method, 18}, ++ {"(*Union).Len", Method, 18}, ++ {"(*Union).String", Method, 18}, ++ {"(*Union).Term", Method, 18}, ++ {"(*Union).Underlying", Method, 18}, ++ {"(*Var).Anonymous", Method, 5}, ++ {"(*Var).Embedded", Method, 11}, ++ {"(*Var).Exported", Method, 5}, ++ {"(*Var).Id", Method, 5}, ++ {"(*Var).IsField", Method, 5}, ++ {"(*Var).Name", Method, 5}, ++ {"(*Var).Origin", Method, 19}, ++ {"(*Var).Parent", Method, 5}, ++ {"(*Var).Pkg", Method, 5}, ++ {"(*Var).Pos", Method, 5}, ++ {"(*Var).String", Method, 5}, ++ {"(*Var).Type", Method, 5}, ++ {"(Checker).ObjectOf", Method, 5}, ++ {"(Checker).PkgNameOf", Method, 22}, ++ {"(Checker).TypeOf", Method, 5}, ++ {"(Error).Error", Method, 5}, ++ {"(TypeAndValue).Addressable", Method, 5}, ++ {"(TypeAndValue).Assignable", Method, 5}, ++ {"(TypeAndValue).HasOk", Method, 5}, ++ {"(TypeAndValue).IsBuiltin", Method, 5}, ++ {"(TypeAndValue).IsNil", Method, 5}, ++ {"(TypeAndValue).IsType", Method, 5}, ++ {"(TypeAndValue).IsValue", Method, 5}, ++ {"(TypeAndValue).IsVoid", Method, 5}, ++ {"Alias", Type, 22}, ++ {"ArgumentError", Type, 18}, ++ {"ArgumentError.Err", Field, 18}, ++ {"ArgumentError.Index", Field, 18}, ++ {"Array", Type, 5}, ++ {"AssertableTo", Func, 5}, ++ {"AssignableTo", Func, 5}, ++ {"Basic", Type, 5}, ++ {"BasicInfo", Type, 5}, ++ {"BasicKind", Type, 5}, ++ {"Bool", Const, 5}, ++ {"Builtin", Type, 5}, ++ {"Byte", Const, 5}, ++ {"Chan", Type, 5}, ++ {"ChanDir", Type, 5}, ++ {"CheckExpr", Func, 13}, ++ {"Checker", Type, 5}, ++ {"Checker.Info", Field, 5}, ++ {"Comparable", Func, 5}, ++ {"Complex128", Const, 5}, ++ {"Complex64", Const, 5}, ++ {"Config", Type, 5}, ++ {"Config.Context", Field, 18}, ++ {"Config.DisableUnusedImportCheck", Field, 5}, ++ {"Config.Error", Field, 5}, ++ {"Config.FakeImportC", Field, 5}, ++ {"Config.GoVersion", Field, 18}, ++ {"Config.IgnoreFuncBodies", Field, 5}, ++ {"Config.Importer", Field, 5}, ++ {"Config.Sizes", Field, 5}, ++ {"Const", Type, 5}, ++ {"Context", Type, 18}, ++ {"ConvertibleTo", Func, 5}, ++ {"DefPredeclaredTestFuncs", Func, 5}, ++ {"Default", Func, 8}, ++ {"Error", Type, 5}, ++ {"Error.Fset", Field, 5}, ++ {"Error.Msg", Field, 5}, ++ {"Error.Pos", Field, 5}, ++ {"Error.Soft", Field, 5}, ++ {"Eval", Func, 5}, ++ {"ExprString", Func, 5}, ++ {"FieldVal", Const, 5}, ++ {"Float32", Const, 5}, ++ {"Float64", Const, 5}, ++ {"Func", Type, 5}, ++ {"Id", Func, 5}, ++ {"Identical", Func, 5}, ++ {"IdenticalIgnoreTags", Func, 8}, ++ {"Implements", Func, 5}, ++ {"ImportMode", Type, 6}, ++ {"Importer", Type, 5}, ++ {"ImporterFrom", Type, 6}, ++ {"Info", Type, 5}, ++ {"Info.Defs", Field, 5}, ++ {"Info.FileVersions", Field, 22}, ++ {"Info.Implicits", Field, 5}, ++ {"Info.InitOrder", Field, 5}, ++ {"Info.Instances", Field, 18}, ++ {"Info.Scopes", Field, 5}, ++ {"Info.Selections", Field, 5}, ++ {"Info.Types", Field, 5}, ++ {"Info.Uses", Field, 5}, ++ {"Initializer", Type, 5}, ++ {"Initializer.Lhs", Field, 5}, ++ {"Initializer.Rhs", Field, 5}, ++ {"Instance", Type, 18}, ++ {"Instance.Type", Field, 18}, ++ {"Instance.TypeArgs", Field, 18}, ++ {"Instantiate", Func, 18}, ++ {"Int", Const, 5}, ++ {"Int16", Const, 5}, ++ {"Int32", Const, 5}, ++ {"Int64", Const, 5}, ++ {"Int8", Const, 5}, ++ {"Interface", Type, 5}, ++ {"Invalid", Const, 5}, ++ {"IsBoolean", Const, 5}, ++ {"IsComplex", Const, 5}, ++ {"IsConstType", Const, 5}, ++ {"IsFloat", Const, 5}, ++ {"IsInteger", Const, 5}, ++ {"IsInterface", Func, 5}, ++ {"IsNumeric", Const, 5}, ++ {"IsOrdered", Const, 5}, ++ {"IsString", Const, 5}, ++ {"IsUnsigned", Const, 5}, ++ {"IsUntyped", Const, 5}, ++ {"Label", Type, 5}, ++ {"LookupFieldOrMethod", Func, 5}, ++ {"Map", Type, 5}, ++ {"MethodExpr", Const, 5}, ++ {"MethodSet", Type, 5}, ++ {"MethodVal", Const, 5}, ++ {"MissingMethod", Func, 5}, ++ {"Named", Type, 5}, ++ {"NewAlias", Func, 22}, ++ {"NewArray", Func, 5}, ++ {"NewChan", Func, 5}, ++ {"NewChecker", Func, 5}, ++ {"NewConst", Func, 5}, ++ {"NewContext", Func, 18}, ++ {"NewField", Func, 5}, ++ {"NewFunc", Func, 5}, ++ {"NewInterface", Func, 5}, ++ {"NewInterfaceType", Func, 11}, ++ {"NewLabel", Func, 5}, ++ {"NewMap", Func, 5}, ++ {"NewMethodSet", Func, 5}, ++ {"NewNamed", Func, 5}, ++ {"NewPackage", Func, 5}, ++ {"NewParam", Func, 5}, ++ {"NewPkgName", Func, 5}, ++ {"NewPointer", Func, 5}, ++ {"NewScope", Func, 5}, ++ {"NewSignature", Func, 5}, ++ {"NewSignatureType", Func, 18}, ++ {"NewSlice", Func, 5}, ++ {"NewStruct", Func, 5}, ++ {"NewTerm", Func, 18}, ++ {"NewTuple", Func, 5}, ++ {"NewTypeName", Func, 5}, ++ {"NewTypeParam", Func, 18}, ++ {"NewUnion", Func, 18}, ++ {"NewVar", Func, 5}, ++ {"Nil", Type, 5}, ++ {"Object", Type, 5}, ++ {"ObjectString", Func, 5}, ++ {"Package", Type, 5}, ++ {"PkgName", Type, 5}, ++ {"Pointer", Type, 5}, ++ {"Qualifier", Type, 5}, ++ {"RecvOnly", Const, 5}, ++ {"RelativeTo", Func, 5}, ++ {"Rune", Const, 5}, ++ {"Satisfies", Func, 20}, ++ {"Scope", Type, 5}, ++ {"Selection", Type, 5}, ++ {"SelectionKind", Type, 5}, ++ {"SelectionString", Func, 5}, ++ {"SendOnly", Const, 5}, ++ {"SendRecv", Const, 5}, ++ {"Signature", Type, 5}, ++ {"Sizes", Type, 5}, ++ {"SizesFor", Func, 9}, ++ {"Slice", Type, 5}, ++ {"StdSizes", Type, 5}, ++ {"StdSizes.MaxAlign", Field, 5}, ++ {"StdSizes.WordSize", Field, 5}, ++ {"String", Const, 5}, ++ {"Struct", Type, 5}, ++ {"Term", Type, 18}, ++ {"Tuple", Type, 5}, ++ {"Typ", Var, 5}, ++ {"Type", Type, 5}, ++ {"TypeAndValue", Type, 5}, ++ {"TypeAndValue.Type", Field, 5}, ++ {"TypeAndValue.Value", Field, 5}, ++ {"TypeList", Type, 18}, ++ {"TypeName", Type, 5}, ++ {"TypeParam", Type, 18}, ++ {"TypeParamList", Type, 18}, ++ {"TypeString", Func, 5}, ++ {"Uint", Const, 5}, ++ {"Uint16", Const, 5}, ++ {"Uint32", Const, 5}, ++ {"Uint64", Const, 5}, ++ {"Uint8", Const, 5}, ++ {"Uintptr", Const, 5}, ++ {"Unalias", Func, 22}, ++ {"Union", Type, 18}, ++ {"Universe", Var, 5}, ++ {"Unsafe", Var, 5}, ++ {"UnsafePointer", Const, 5}, ++ {"UntypedBool", Const, 5}, ++ {"UntypedComplex", Const, 5}, ++ {"UntypedFloat", Const, 5}, ++ {"UntypedInt", Const, 5}, ++ {"UntypedNil", Const, 5}, ++ {"UntypedRune", Const, 5}, ++ {"UntypedString", Const, 5}, ++ {"Var", Type, 5}, ++ {"WriteExpr", Func, 5}, ++ {"WriteSignature", Func, 5}, ++ {"WriteType", Func, 5}, ++ }, ++ "go/version": { ++ {"Compare", Func, 22}, ++ {"IsValid", Func, 22}, ++ {"Lang", Func, 22}, ++ }, ++ "hash": { ++ {"Hash", Type, 0}, ++ {"Hash32", Type, 0}, ++ {"Hash64", Type, 0}, ++ }, ++ "hash/adler32": { ++ {"Checksum", Func, 0}, ++ {"New", Func, 0}, ++ {"Size", Const, 0}, ++ }, ++ "hash/crc32": { ++ {"Castagnoli", Const, 0}, ++ {"Checksum", Func, 0}, ++ {"ChecksumIEEE", Func, 0}, ++ {"IEEE", Const, 0}, ++ {"IEEETable", Var, 0}, ++ {"Koopman", Const, 0}, ++ {"MakeTable", Func, 0}, ++ {"New", Func, 0}, ++ {"NewIEEE", Func, 0}, ++ {"Size", Const, 0}, ++ {"Table", Type, 0}, ++ {"Update", Func, 0}, ++ }, ++ "hash/crc64": { ++ {"Checksum", Func, 0}, ++ {"ECMA", Const, 0}, ++ {"ISO", Const, 0}, ++ {"MakeTable", Func, 0}, ++ {"New", Func, 0}, ++ {"Size", Const, 0}, ++ {"Table", Type, 0}, ++ {"Update", Func, 0}, ++ }, ++ "hash/fnv": { ++ {"New128", Func, 9}, ++ {"New128a", Func, 9}, ++ {"New32", Func, 0}, ++ {"New32a", Func, 0}, ++ {"New64", Func, 0}, ++ {"New64a", Func, 0}, ++ }, ++ "hash/maphash": { ++ {"(*Hash).BlockSize", Method, 14}, ++ {"(*Hash).Reset", Method, 14}, ++ {"(*Hash).Seed", Method, 14}, ++ {"(*Hash).SetSeed", Method, 14}, ++ {"(*Hash).Size", Method, 14}, ++ {"(*Hash).Sum", Method, 14}, ++ {"(*Hash).Sum64", Method, 14}, ++ {"(*Hash).Write", Method, 14}, ++ {"(*Hash).WriteByte", Method, 14}, ++ {"(*Hash).WriteString", Method, 14}, ++ {"Bytes", Func, 19}, ++ {"Hash", Type, 14}, ++ {"MakeSeed", Func, 14}, ++ {"Seed", Type, 14}, ++ {"String", Func, 19}, ++ }, ++ "html": { ++ {"EscapeString", Func, 0}, ++ {"UnescapeString", Func, 0}, ++ }, ++ "html/template": { ++ {"(*Error).Error", Method, 0}, ++ {"(*Template).AddParseTree", Method, 0}, ++ {"(*Template).Clone", Method, 0}, ++ {"(*Template).DefinedTemplates", Method, 6}, ++ {"(*Template).Delims", Method, 0}, ++ {"(*Template).Execute", Method, 0}, ++ {"(*Template).ExecuteTemplate", Method, 0}, ++ {"(*Template).Funcs", Method, 0}, ++ {"(*Template).Lookup", Method, 0}, ++ {"(*Template).Name", Method, 0}, ++ {"(*Template).New", Method, 0}, ++ {"(*Template).Option", Method, 5}, ++ {"(*Template).Parse", Method, 0}, ++ {"(*Template).ParseFS", Method, 16}, ++ {"(*Template).ParseFiles", Method, 0}, ++ {"(*Template).ParseGlob", Method, 0}, ++ {"(*Template).Templates", Method, 0}, ++ {"CSS", Type, 0}, ++ {"ErrAmbigContext", Const, 0}, ++ {"ErrBadHTML", Const, 0}, ++ {"ErrBranchEnd", Const, 0}, ++ {"ErrEndContext", Const, 0}, ++ {"ErrJSTemplate", Const, 21}, ++ {"ErrNoSuchTemplate", Const, 0}, ++ {"ErrOutputContext", Const, 0}, ++ {"ErrPartialCharset", Const, 0}, ++ {"ErrPartialEscape", Const, 0}, ++ {"ErrPredefinedEscaper", Const, 9}, ++ {"ErrRangeLoopReentry", Const, 0}, ++ {"ErrSlashAmbig", Const, 0}, ++ {"Error", Type, 0}, ++ {"Error.Description", Field, 0}, ++ {"Error.ErrorCode", Field, 0}, ++ {"Error.Line", Field, 0}, ++ {"Error.Name", Field, 0}, ++ {"Error.Node", Field, 4}, ++ {"ErrorCode", Type, 0}, ++ {"FuncMap", Type, 0}, ++ {"HTML", Type, 0}, ++ {"HTMLAttr", Type, 0}, ++ {"HTMLEscape", Func, 0}, ++ {"HTMLEscapeString", Func, 0}, ++ {"HTMLEscaper", Func, 0}, ++ {"IsTrue", Func, 6}, ++ {"JS", Type, 0}, ++ {"JSEscape", Func, 0}, ++ {"JSEscapeString", Func, 0}, ++ {"JSEscaper", Func, 0}, ++ {"JSStr", Type, 0}, ++ {"Must", Func, 0}, ++ {"New", Func, 0}, ++ {"OK", Const, 0}, ++ {"ParseFS", Func, 16}, ++ {"ParseFiles", Func, 0}, ++ {"ParseGlob", Func, 0}, ++ {"Srcset", Type, 10}, ++ {"Template", Type, 0}, ++ {"Template.Tree", Field, 2}, ++ {"URL", Type, 0}, ++ {"URLQueryEscaper", Func, 0}, ++ }, ++ "image": { ++ {"(*Alpha).AlphaAt", Method, 4}, ++ {"(*Alpha).At", Method, 0}, ++ {"(*Alpha).Bounds", Method, 0}, ++ {"(*Alpha).ColorModel", Method, 0}, ++ {"(*Alpha).Opaque", Method, 0}, ++ {"(*Alpha).PixOffset", Method, 0}, ++ {"(*Alpha).RGBA64At", Method, 17}, ++ {"(*Alpha).Set", Method, 0}, ++ {"(*Alpha).SetAlpha", Method, 0}, ++ {"(*Alpha).SetRGBA64", Method, 17}, ++ {"(*Alpha).SubImage", Method, 0}, ++ {"(*Alpha16).Alpha16At", Method, 4}, ++ {"(*Alpha16).At", Method, 0}, ++ {"(*Alpha16).Bounds", Method, 0}, ++ {"(*Alpha16).ColorModel", Method, 0}, ++ {"(*Alpha16).Opaque", Method, 0}, ++ {"(*Alpha16).PixOffset", Method, 0}, ++ {"(*Alpha16).RGBA64At", Method, 17}, ++ {"(*Alpha16).Set", Method, 0}, ++ {"(*Alpha16).SetAlpha16", Method, 0}, ++ {"(*Alpha16).SetRGBA64", Method, 17}, ++ {"(*Alpha16).SubImage", Method, 0}, ++ {"(*CMYK).At", Method, 5}, ++ {"(*CMYK).Bounds", Method, 5}, ++ {"(*CMYK).CMYKAt", Method, 5}, ++ {"(*CMYK).ColorModel", Method, 5}, ++ {"(*CMYK).Opaque", Method, 5}, ++ {"(*CMYK).PixOffset", Method, 5}, ++ {"(*CMYK).RGBA64At", Method, 17}, ++ {"(*CMYK).Set", Method, 5}, ++ {"(*CMYK).SetCMYK", Method, 5}, ++ {"(*CMYK).SetRGBA64", Method, 17}, ++ {"(*CMYK).SubImage", Method, 5}, ++ {"(*Gray).At", Method, 0}, ++ {"(*Gray).Bounds", Method, 0}, ++ {"(*Gray).ColorModel", Method, 0}, ++ {"(*Gray).GrayAt", Method, 4}, ++ {"(*Gray).Opaque", Method, 0}, ++ {"(*Gray).PixOffset", Method, 0}, ++ {"(*Gray).RGBA64At", Method, 17}, ++ {"(*Gray).Set", Method, 0}, ++ {"(*Gray).SetGray", Method, 0}, ++ {"(*Gray).SetRGBA64", Method, 17}, ++ {"(*Gray).SubImage", Method, 0}, ++ {"(*Gray16).At", Method, 0}, ++ {"(*Gray16).Bounds", Method, 0}, ++ {"(*Gray16).ColorModel", Method, 0}, ++ {"(*Gray16).Gray16At", Method, 4}, ++ {"(*Gray16).Opaque", Method, 0}, ++ {"(*Gray16).PixOffset", Method, 0}, ++ {"(*Gray16).RGBA64At", Method, 17}, ++ {"(*Gray16).Set", Method, 0}, ++ {"(*Gray16).SetGray16", Method, 0}, ++ {"(*Gray16).SetRGBA64", Method, 17}, ++ {"(*Gray16).SubImage", Method, 0}, ++ {"(*NRGBA).At", Method, 0}, ++ {"(*NRGBA).Bounds", Method, 0}, ++ {"(*NRGBA).ColorModel", Method, 0}, ++ {"(*NRGBA).NRGBAAt", Method, 4}, ++ {"(*NRGBA).Opaque", Method, 0}, ++ {"(*NRGBA).PixOffset", Method, 0}, ++ {"(*NRGBA).RGBA64At", Method, 17}, ++ {"(*NRGBA).Set", Method, 0}, ++ {"(*NRGBA).SetNRGBA", Method, 0}, ++ {"(*NRGBA).SetRGBA64", Method, 17}, ++ {"(*NRGBA).SubImage", Method, 0}, ++ {"(*NRGBA64).At", Method, 0}, ++ {"(*NRGBA64).Bounds", Method, 0}, ++ {"(*NRGBA64).ColorModel", Method, 0}, ++ {"(*NRGBA64).NRGBA64At", Method, 4}, ++ {"(*NRGBA64).Opaque", Method, 0}, ++ {"(*NRGBA64).PixOffset", Method, 0}, ++ {"(*NRGBA64).RGBA64At", Method, 17}, ++ {"(*NRGBA64).Set", Method, 0}, ++ {"(*NRGBA64).SetNRGBA64", Method, 0}, ++ {"(*NRGBA64).SetRGBA64", Method, 17}, ++ {"(*NRGBA64).SubImage", Method, 0}, ++ {"(*NYCbCrA).AOffset", Method, 6}, ++ {"(*NYCbCrA).At", Method, 6}, ++ {"(*NYCbCrA).Bounds", Method, 6}, ++ {"(*NYCbCrA).COffset", Method, 6}, ++ {"(*NYCbCrA).ColorModel", Method, 6}, ++ {"(*NYCbCrA).NYCbCrAAt", Method, 6}, ++ {"(*NYCbCrA).Opaque", Method, 6}, ++ {"(*NYCbCrA).RGBA64At", Method, 17}, ++ {"(*NYCbCrA).SubImage", Method, 6}, ++ {"(*NYCbCrA).YCbCrAt", Method, 6}, ++ {"(*NYCbCrA).YOffset", Method, 6}, ++ {"(*Paletted).At", Method, 0}, ++ {"(*Paletted).Bounds", Method, 0}, ++ {"(*Paletted).ColorIndexAt", Method, 0}, ++ {"(*Paletted).ColorModel", Method, 0}, ++ {"(*Paletted).Opaque", Method, 0}, ++ {"(*Paletted).PixOffset", Method, 0}, ++ {"(*Paletted).RGBA64At", Method, 17}, ++ {"(*Paletted).Set", Method, 0}, ++ {"(*Paletted).SetColorIndex", Method, 0}, ++ {"(*Paletted).SetRGBA64", Method, 17}, ++ {"(*Paletted).SubImage", Method, 0}, ++ {"(*RGBA).At", Method, 0}, ++ {"(*RGBA).Bounds", Method, 0}, ++ {"(*RGBA).ColorModel", Method, 0}, ++ {"(*RGBA).Opaque", Method, 0}, ++ {"(*RGBA).PixOffset", Method, 0}, ++ {"(*RGBA).RGBA64At", Method, 17}, ++ {"(*RGBA).RGBAAt", Method, 4}, ++ {"(*RGBA).Set", Method, 0}, ++ {"(*RGBA).SetRGBA", Method, 0}, ++ {"(*RGBA).SetRGBA64", Method, 17}, ++ {"(*RGBA).SubImage", Method, 0}, ++ {"(*RGBA64).At", Method, 0}, ++ {"(*RGBA64).Bounds", Method, 0}, ++ {"(*RGBA64).ColorModel", Method, 0}, ++ {"(*RGBA64).Opaque", Method, 0}, ++ {"(*RGBA64).PixOffset", Method, 0}, ++ {"(*RGBA64).RGBA64At", Method, 4}, ++ {"(*RGBA64).Set", Method, 0}, ++ {"(*RGBA64).SetRGBA64", Method, 0}, ++ {"(*RGBA64).SubImage", Method, 0}, ++ {"(*Uniform).At", Method, 0}, ++ {"(*Uniform).Bounds", Method, 0}, ++ {"(*Uniform).ColorModel", Method, 0}, ++ {"(*Uniform).Convert", Method, 0}, ++ {"(*Uniform).Opaque", Method, 0}, ++ {"(*Uniform).RGBA", Method, 0}, ++ {"(*Uniform).RGBA64At", Method, 17}, ++ {"(*YCbCr).At", Method, 0}, ++ {"(*YCbCr).Bounds", Method, 0}, ++ {"(*YCbCr).COffset", Method, 0}, ++ {"(*YCbCr).ColorModel", Method, 0}, ++ {"(*YCbCr).Opaque", Method, 0}, ++ {"(*YCbCr).RGBA64At", Method, 17}, ++ {"(*YCbCr).SubImage", Method, 0}, ++ {"(*YCbCr).YCbCrAt", Method, 4}, ++ {"(*YCbCr).YOffset", Method, 0}, ++ {"(Point).Add", Method, 0}, ++ {"(Point).Div", Method, 0}, ++ {"(Point).Eq", Method, 0}, ++ {"(Point).In", Method, 0}, ++ {"(Point).Mod", Method, 0}, ++ {"(Point).Mul", Method, 0}, ++ {"(Point).String", Method, 0}, ++ {"(Point).Sub", Method, 0}, ++ {"(Rectangle).Add", Method, 0}, ++ {"(Rectangle).At", Method, 5}, ++ {"(Rectangle).Bounds", Method, 5}, ++ {"(Rectangle).Canon", Method, 0}, ++ {"(Rectangle).ColorModel", Method, 5}, ++ {"(Rectangle).Dx", Method, 0}, ++ {"(Rectangle).Dy", Method, 0}, ++ {"(Rectangle).Empty", Method, 0}, ++ {"(Rectangle).Eq", Method, 0}, ++ {"(Rectangle).In", Method, 0}, ++ {"(Rectangle).Inset", Method, 0}, ++ {"(Rectangle).Intersect", Method, 0}, ++ {"(Rectangle).Overlaps", Method, 0}, ++ {"(Rectangle).RGBA64At", Method, 17}, ++ {"(Rectangle).Size", Method, 0}, ++ {"(Rectangle).String", Method, 0}, ++ {"(Rectangle).Sub", Method, 0}, ++ {"(Rectangle).Union", Method, 0}, ++ {"(YCbCrSubsampleRatio).String", Method, 0}, ++ {"Alpha", Type, 0}, ++ {"Alpha.Pix", Field, 0}, ++ {"Alpha.Rect", Field, 0}, ++ {"Alpha.Stride", Field, 0}, ++ {"Alpha16", Type, 0}, ++ {"Alpha16.Pix", Field, 0}, ++ {"Alpha16.Rect", Field, 0}, ++ {"Alpha16.Stride", Field, 0}, ++ {"Black", Var, 0}, ++ {"CMYK", Type, 5}, ++ {"CMYK.Pix", Field, 5}, ++ {"CMYK.Rect", Field, 5}, ++ {"CMYK.Stride", Field, 5}, ++ {"Config", Type, 0}, ++ {"Config.ColorModel", Field, 0}, ++ {"Config.Height", Field, 0}, ++ {"Config.Width", Field, 0}, ++ {"Decode", Func, 0}, ++ {"DecodeConfig", Func, 0}, ++ {"ErrFormat", Var, 0}, ++ {"Gray", Type, 0}, ++ {"Gray.Pix", Field, 0}, ++ {"Gray.Rect", Field, 0}, ++ {"Gray.Stride", Field, 0}, ++ {"Gray16", Type, 0}, ++ {"Gray16.Pix", Field, 0}, ++ {"Gray16.Rect", Field, 0}, ++ {"Gray16.Stride", Field, 0}, ++ {"Image", Type, 0}, ++ {"NRGBA", Type, 0}, ++ {"NRGBA.Pix", Field, 0}, ++ {"NRGBA.Rect", Field, 0}, ++ {"NRGBA.Stride", Field, 0}, ++ {"NRGBA64", Type, 0}, ++ {"NRGBA64.Pix", Field, 0}, ++ {"NRGBA64.Rect", Field, 0}, ++ {"NRGBA64.Stride", Field, 0}, ++ {"NYCbCrA", Type, 6}, ++ {"NYCbCrA.A", Field, 6}, ++ {"NYCbCrA.AStride", Field, 6}, ++ {"NYCbCrA.YCbCr", Field, 6}, ++ {"NewAlpha", Func, 0}, ++ {"NewAlpha16", Func, 0}, ++ {"NewCMYK", Func, 5}, ++ {"NewGray", Func, 0}, ++ {"NewGray16", Func, 0}, ++ {"NewNRGBA", Func, 0}, ++ {"NewNRGBA64", Func, 0}, ++ {"NewNYCbCrA", Func, 6}, ++ {"NewPaletted", Func, 0}, ++ {"NewRGBA", Func, 0}, ++ {"NewRGBA64", Func, 0}, ++ {"NewUniform", Func, 0}, ++ {"NewYCbCr", Func, 0}, ++ {"Opaque", Var, 0}, ++ {"Paletted", Type, 0}, ++ {"Paletted.Palette", Field, 0}, ++ {"Paletted.Pix", Field, 0}, ++ {"Paletted.Rect", Field, 0}, ++ {"Paletted.Stride", Field, 0}, ++ {"PalettedImage", Type, 0}, ++ {"Point", Type, 0}, ++ {"Point.X", Field, 0}, ++ {"Point.Y", Field, 0}, ++ {"Pt", Func, 0}, ++ {"RGBA", Type, 0}, ++ {"RGBA.Pix", Field, 0}, ++ {"RGBA.Rect", Field, 0}, ++ {"RGBA.Stride", Field, 0}, ++ {"RGBA64", Type, 0}, ++ {"RGBA64.Pix", Field, 0}, ++ {"RGBA64.Rect", Field, 0}, ++ {"RGBA64.Stride", Field, 0}, ++ {"RGBA64Image", Type, 17}, ++ {"Rect", Func, 0}, ++ {"Rectangle", Type, 0}, ++ {"Rectangle.Max", Field, 0}, ++ {"Rectangle.Min", Field, 0}, ++ {"RegisterFormat", Func, 0}, ++ {"Transparent", Var, 0}, ++ {"Uniform", Type, 0}, ++ {"Uniform.C", Field, 0}, ++ {"White", Var, 0}, ++ {"YCbCr", Type, 0}, ++ {"YCbCr.CStride", Field, 0}, ++ {"YCbCr.Cb", Field, 0}, ++ {"YCbCr.Cr", Field, 0}, ++ {"YCbCr.Rect", Field, 0}, ++ {"YCbCr.SubsampleRatio", Field, 0}, ++ {"YCbCr.Y", Field, 0}, ++ {"YCbCr.YStride", Field, 0}, ++ {"YCbCrSubsampleRatio", Type, 0}, ++ {"YCbCrSubsampleRatio410", Const, 5}, ++ {"YCbCrSubsampleRatio411", Const, 5}, ++ {"YCbCrSubsampleRatio420", Const, 0}, ++ {"YCbCrSubsampleRatio422", Const, 0}, ++ {"YCbCrSubsampleRatio440", Const, 1}, ++ {"YCbCrSubsampleRatio444", Const, 0}, ++ {"ZP", Var, 0}, ++ {"ZR", Var, 0}, ++ }, ++ "image/color": { ++ {"(Alpha).RGBA", Method, 0}, ++ {"(Alpha16).RGBA", Method, 0}, ++ {"(CMYK).RGBA", Method, 5}, ++ {"(Gray).RGBA", Method, 0}, ++ {"(Gray16).RGBA", Method, 0}, ++ {"(NRGBA).RGBA", Method, 0}, ++ {"(NRGBA64).RGBA", Method, 0}, ++ {"(NYCbCrA).RGBA", Method, 6}, ++ {"(Palette).Convert", Method, 0}, ++ {"(Palette).Index", Method, 0}, ++ {"(RGBA).RGBA", Method, 0}, ++ {"(RGBA64).RGBA", Method, 0}, ++ {"(YCbCr).RGBA", Method, 0}, ++ {"Alpha", Type, 0}, ++ {"Alpha.A", Field, 0}, ++ {"Alpha16", Type, 0}, ++ {"Alpha16.A", Field, 0}, ++ {"Alpha16Model", Var, 0}, ++ {"AlphaModel", Var, 0}, ++ {"Black", Var, 0}, ++ {"CMYK", Type, 5}, ++ {"CMYK.C", Field, 5}, ++ {"CMYK.K", Field, 5}, ++ {"CMYK.M", Field, 5}, ++ {"CMYK.Y", Field, 5}, ++ {"CMYKModel", Var, 5}, ++ {"CMYKToRGB", Func, 5}, ++ {"Color", Type, 0}, ++ {"Gray", Type, 0}, ++ {"Gray.Y", Field, 0}, ++ {"Gray16", Type, 0}, ++ {"Gray16.Y", Field, 0}, ++ {"Gray16Model", Var, 0}, ++ {"GrayModel", Var, 0}, ++ {"Model", Type, 0}, ++ {"ModelFunc", Func, 0}, ++ {"NRGBA", Type, 0}, ++ {"NRGBA.A", Field, 0}, ++ {"NRGBA.B", Field, 0}, ++ {"NRGBA.G", Field, 0}, ++ {"NRGBA.R", Field, 0}, ++ {"NRGBA64", Type, 0}, ++ {"NRGBA64.A", Field, 0}, ++ {"NRGBA64.B", Field, 0}, ++ {"NRGBA64.G", Field, 0}, ++ {"NRGBA64.R", Field, 0}, ++ {"NRGBA64Model", Var, 0}, ++ {"NRGBAModel", Var, 0}, ++ {"NYCbCrA", Type, 6}, ++ {"NYCbCrA.A", Field, 6}, ++ {"NYCbCrA.YCbCr", Field, 6}, ++ {"NYCbCrAModel", Var, 6}, ++ {"Opaque", Var, 0}, ++ {"Palette", Type, 0}, ++ {"RGBA", Type, 0}, ++ {"RGBA.A", Field, 0}, ++ {"RGBA.B", Field, 0}, ++ {"RGBA.G", Field, 0}, ++ {"RGBA.R", Field, 0}, ++ {"RGBA64", Type, 0}, ++ {"RGBA64.A", Field, 0}, ++ {"RGBA64.B", Field, 0}, ++ {"RGBA64.G", Field, 0}, ++ {"RGBA64.R", Field, 0}, ++ {"RGBA64Model", Var, 0}, ++ {"RGBAModel", Var, 0}, ++ {"RGBToCMYK", Func, 5}, ++ {"RGBToYCbCr", Func, 0}, ++ {"Transparent", Var, 0}, ++ {"White", Var, 0}, ++ {"YCbCr", Type, 0}, ++ {"YCbCr.Cb", Field, 0}, ++ {"YCbCr.Cr", Field, 0}, ++ {"YCbCr.Y", Field, 0}, ++ {"YCbCrModel", Var, 0}, ++ {"YCbCrToRGB", Func, 0}, ++ }, ++ "image/color/palette": { ++ {"Plan9", Var, 2}, ++ {"WebSafe", Var, 2}, ++ }, ++ "image/draw": { ++ {"(Op).Draw", Method, 2}, ++ {"Draw", Func, 0}, ++ {"DrawMask", Func, 0}, ++ {"Drawer", Type, 2}, ++ {"FloydSteinberg", Var, 2}, ++ {"Image", Type, 0}, ++ {"Op", Type, 0}, ++ {"Over", Const, 0}, ++ {"Quantizer", Type, 2}, ++ {"RGBA64Image", Type, 17}, ++ {"Src", Const, 0}, ++ }, ++ "image/gif": { ++ {"Decode", Func, 0}, ++ {"DecodeAll", Func, 0}, ++ {"DecodeConfig", Func, 0}, ++ {"DisposalBackground", Const, 5}, ++ {"DisposalNone", Const, 5}, ++ {"DisposalPrevious", Const, 5}, ++ {"Encode", Func, 2}, ++ {"EncodeAll", Func, 2}, ++ {"GIF", Type, 0}, ++ {"GIF.BackgroundIndex", Field, 5}, ++ {"GIF.Config", Field, 5}, ++ {"GIF.Delay", Field, 0}, ++ {"GIF.Disposal", Field, 5}, ++ {"GIF.Image", Field, 0}, ++ {"GIF.LoopCount", Field, 0}, ++ {"Options", Type, 2}, ++ {"Options.Drawer", Field, 2}, ++ {"Options.NumColors", Field, 2}, ++ {"Options.Quantizer", Field, 2}, ++ }, ++ "image/jpeg": { ++ {"(FormatError).Error", Method, 0}, ++ {"(UnsupportedError).Error", Method, 0}, ++ {"Decode", Func, 0}, ++ {"DecodeConfig", Func, 0}, ++ {"DefaultQuality", Const, 0}, ++ {"Encode", Func, 0}, ++ {"FormatError", Type, 0}, ++ {"Options", Type, 0}, ++ {"Options.Quality", Field, 0}, ++ {"Reader", Type, 0}, ++ {"UnsupportedError", Type, 0}, ++ }, ++ "image/png": { ++ {"(*Encoder).Encode", Method, 4}, ++ {"(FormatError).Error", Method, 0}, ++ {"(UnsupportedError).Error", Method, 0}, ++ {"BestCompression", Const, 4}, ++ {"BestSpeed", Const, 4}, ++ {"CompressionLevel", Type, 4}, ++ {"Decode", Func, 0}, ++ {"DecodeConfig", Func, 0}, ++ {"DefaultCompression", Const, 4}, ++ {"Encode", Func, 0}, ++ {"Encoder", Type, 4}, ++ {"Encoder.BufferPool", Field, 9}, ++ {"Encoder.CompressionLevel", Field, 4}, ++ {"EncoderBuffer", Type, 9}, ++ {"EncoderBufferPool", Type, 9}, ++ {"FormatError", Type, 0}, ++ {"NoCompression", Const, 4}, ++ {"UnsupportedError", Type, 0}, ++ }, ++ "index/suffixarray": { ++ {"(*Index).Bytes", Method, 0}, ++ {"(*Index).FindAllIndex", Method, 0}, ++ {"(*Index).Lookup", Method, 0}, ++ {"(*Index).Read", Method, 0}, ++ {"(*Index).Write", Method, 0}, ++ {"Index", Type, 0}, ++ {"New", Func, 0}, ++ }, ++ "io": { ++ {"(*LimitedReader).Read", Method, 0}, ++ {"(*OffsetWriter).Seek", Method, 20}, ++ {"(*OffsetWriter).Write", Method, 20}, ++ {"(*OffsetWriter).WriteAt", Method, 20}, ++ {"(*PipeReader).Close", Method, 0}, ++ {"(*PipeReader).CloseWithError", Method, 0}, ++ {"(*PipeReader).Read", Method, 0}, ++ {"(*PipeWriter).Close", Method, 0}, ++ {"(*PipeWriter).CloseWithError", Method, 0}, ++ {"(*PipeWriter).Write", Method, 0}, ++ {"(*SectionReader).Outer", Method, 22}, ++ {"(*SectionReader).Read", Method, 0}, ++ {"(*SectionReader).ReadAt", Method, 0}, ++ {"(*SectionReader).Seek", Method, 0}, ++ {"(*SectionReader).Size", Method, 0}, ++ {"ByteReader", Type, 0}, ++ {"ByteScanner", Type, 0}, ++ {"ByteWriter", Type, 1}, ++ {"Closer", Type, 0}, ++ {"Copy", Func, 0}, ++ {"CopyBuffer", Func, 5}, ++ {"CopyN", Func, 0}, ++ {"Discard", Var, 16}, ++ {"EOF", Var, 0}, ++ {"ErrClosedPipe", Var, 0}, ++ {"ErrNoProgress", Var, 1}, ++ {"ErrShortBuffer", Var, 0}, ++ {"ErrShortWrite", Var, 0}, ++ {"ErrUnexpectedEOF", Var, 0}, ++ {"LimitReader", Func, 0}, ++ {"LimitedReader", Type, 0}, ++ {"LimitedReader.N", Field, 0}, ++ {"LimitedReader.R", Field, 0}, ++ {"MultiReader", Func, 0}, ++ {"MultiWriter", Func, 0}, ++ {"NewOffsetWriter", Func, 20}, ++ {"NewSectionReader", Func, 0}, ++ {"NopCloser", Func, 16}, ++ {"OffsetWriter", Type, 20}, ++ {"Pipe", Func, 0}, ++ {"PipeReader", Type, 0}, ++ {"PipeWriter", Type, 0}, ++ {"ReadAll", Func, 16}, ++ {"ReadAtLeast", Func, 0}, ++ {"ReadCloser", Type, 0}, ++ {"ReadFull", Func, 0}, ++ {"ReadSeekCloser", Type, 16}, ++ {"ReadSeeker", Type, 0}, ++ {"ReadWriteCloser", Type, 0}, ++ {"ReadWriteSeeker", Type, 0}, ++ {"ReadWriter", Type, 0}, ++ {"Reader", Type, 0}, ++ {"ReaderAt", Type, 0}, ++ {"ReaderFrom", Type, 0}, ++ {"RuneReader", Type, 0}, ++ {"RuneScanner", Type, 0}, ++ {"SectionReader", Type, 0}, ++ {"SeekCurrent", Const, 7}, ++ {"SeekEnd", Const, 7}, ++ {"SeekStart", Const, 7}, ++ {"Seeker", Type, 0}, ++ {"StringWriter", Type, 12}, ++ {"TeeReader", Func, 0}, ++ {"WriteCloser", Type, 0}, ++ {"WriteSeeker", Type, 0}, ++ {"WriteString", Func, 0}, ++ {"Writer", Type, 0}, ++ {"WriterAt", Type, 0}, ++ {"WriterTo", Type, 0}, ++ }, ++ "io/fs": { ++ {"(*PathError).Error", Method, 16}, ++ {"(*PathError).Timeout", Method, 16}, ++ {"(*PathError).Unwrap", Method, 16}, ++ {"(FileMode).IsDir", Method, 16}, ++ {"(FileMode).IsRegular", Method, 16}, ++ {"(FileMode).Perm", Method, 16}, ++ {"(FileMode).String", Method, 16}, ++ {"(FileMode).Type", Method, 16}, ++ {"DirEntry", Type, 16}, ++ {"ErrClosed", Var, 16}, ++ {"ErrExist", Var, 16}, ++ {"ErrInvalid", Var, 16}, ++ {"ErrNotExist", Var, 16}, ++ {"ErrPermission", Var, 16}, ++ {"FS", Type, 16}, ++ {"File", Type, 16}, ++ {"FileInfo", Type, 16}, ++ {"FileInfoToDirEntry", Func, 17}, ++ {"FileMode", Type, 16}, ++ {"FormatDirEntry", Func, 21}, ++ {"FormatFileInfo", Func, 21}, ++ {"Glob", Func, 16}, ++ {"GlobFS", Type, 16}, ++ {"ModeAppend", Const, 16}, ++ {"ModeCharDevice", Const, 16}, ++ {"ModeDevice", Const, 16}, ++ {"ModeDir", Const, 16}, ++ {"ModeExclusive", Const, 16}, ++ {"ModeIrregular", Const, 16}, ++ {"ModeNamedPipe", Const, 16}, ++ {"ModePerm", Const, 16}, ++ {"ModeSetgid", Const, 16}, ++ {"ModeSetuid", Const, 16}, ++ {"ModeSocket", Const, 16}, ++ {"ModeSticky", Const, 16}, ++ {"ModeSymlink", Const, 16}, ++ {"ModeTemporary", Const, 16}, ++ {"ModeType", Const, 16}, ++ {"PathError", Type, 16}, ++ {"PathError.Err", Field, 16}, ++ {"PathError.Op", Field, 16}, ++ {"PathError.Path", Field, 16}, ++ {"ReadDir", Func, 16}, ++ {"ReadDirFS", Type, 16}, ++ {"ReadDirFile", Type, 16}, ++ {"ReadFile", Func, 16}, ++ {"ReadFileFS", Type, 16}, ++ {"SkipAll", Var, 20}, ++ {"SkipDir", Var, 16}, ++ {"Stat", Func, 16}, ++ {"StatFS", Type, 16}, ++ {"Sub", Func, 16}, ++ {"SubFS", Type, 16}, ++ {"ValidPath", Func, 16}, ++ {"WalkDir", Func, 16}, ++ {"WalkDirFunc", Type, 16}, ++ }, ++ "io/ioutil": { ++ {"Discard", Var, 0}, ++ {"NopCloser", Func, 0}, ++ {"ReadAll", Func, 0}, ++ {"ReadDir", Func, 0}, ++ {"ReadFile", Func, 0}, ++ {"TempDir", Func, 0}, ++ {"TempFile", Func, 0}, ++ {"WriteFile", Func, 0}, ++ }, ++ "log": { ++ {"(*Logger).Fatal", Method, 0}, ++ {"(*Logger).Fatalf", Method, 0}, ++ {"(*Logger).Fatalln", Method, 0}, ++ {"(*Logger).Flags", Method, 0}, ++ {"(*Logger).Output", Method, 0}, ++ {"(*Logger).Panic", Method, 0}, ++ {"(*Logger).Panicf", Method, 0}, ++ {"(*Logger).Panicln", Method, 0}, ++ {"(*Logger).Prefix", Method, 0}, ++ {"(*Logger).Print", Method, 0}, ++ {"(*Logger).Printf", Method, 0}, ++ {"(*Logger).Println", Method, 0}, ++ {"(*Logger).SetFlags", Method, 0}, ++ {"(*Logger).SetOutput", Method, 5}, ++ {"(*Logger).SetPrefix", Method, 0}, ++ {"(*Logger).Writer", Method, 12}, ++ {"Default", Func, 16}, ++ {"Fatal", Func, 0}, ++ {"Fatalf", Func, 0}, ++ {"Fatalln", Func, 0}, ++ {"Flags", Func, 0}, ++ {"LUTC", Const, 5}, ++ {"Ldate", Const, 0}, ++ {"Llongfile", Const, 0}, ++ {"Lmicroseconds", Const, 0}, ++ {"Lmsgprefix", Const, 14}, ++ {"Logger", Type, 0}, ++ {"Lshortfile", Const, 0}, ++ {"LstdFlags", Const, 0}, ++ {"Ltime", Const, 0}, ++ {"New", Func, 0}, ++ {"Output", Func, 5}, ++ {"Panic", Func, 0}, ++ {"Panicf", Func, 0}, ++ {"Panicln", Func, 0}, ++ {"Prefix", Func, 0}, ++ {"Print", Func, 0}, ++ {"Printf", Func, 0}, ++ {"Println", Func, 0}, ++ {"SetFlags", Func, 0}, ++ {"SetOutput", Func, 0}, ++ {"SetPrefix", Func, 0}, ++ {"Writer", Func, 13}, ++ }, ++ "log/slog": { ++ {"(*JSONHandler).Enabled", Method, 21}, ++ {"(*JSONHandler).Handle", Method, 21}, ++ {"(*JSONHandler).WithAttrs", Method, 21}, ++ {"(*JSONHandler).WithGroup", Method, 21}, ++ {"(*Level).UnmarshalJSON", Method, 21}, ++ {"(*Level).UnmarshalText", Method, 21}, ++ {"(*LevelVar).Level", Method, 21}, ++ {"(*LevelVar).MarshalText", Method, 21}, ++ {"(*LevelVar).Set", Method, 21}, ++ {"(*LevelVar).String", Method, 21}, ++ {"(*LevelVar).UnmarshalText", Method, 21}, ++ {"(*Logger).Debug", Method, 21}, ++ {"(*Logger).DebugContext", Method, 21}, ++ {"(*Logger).Enabled", Method, 21}, ++ {"(*Logger).Error", Method, 21}, ++ {"(*Logger).ErrorContext", Method, 21}, ++ {"(*Logger).Handler", Method, 21}, ++ {"(*Logger).Info", Method, 21}, ++ {"(*Logger).InfoContext", Method, 21}, ++ {"(*Logger).Log", Method, 21}, ++ {"(*Logger).LogAttrs", Method, 21}, ++ {"(*Logger).Warn", Method, 21}, ++ {"(*Logger).WarnContext", Method, 21}, ++ {"(*Logger).With", Method, 21}, ++ {"(*Logger).WithGroup", Method, 21}, ++ {"(*Record).Add", Method, 21}, ++ {"(*Record).AddAttrs", Method, 21}, ++ {"(*TextHandler).Enabled", Method, 21}, ++ {"(*TextHandler).Handle", Method, 21}, ++ {"(*TextHandler).WithAttrs", Method, 21}, ++ {"(*TextHandler).WithGroup", Method, 21}, ++ {"(Attr).Equal", Method, 21}, ++ {"(Attr).String", Method, 21}, ++ {"(Kind).String", Method, 21}, ++ {"(Level).Level", Method, 21}, ++ {"(Level).MarshalJSON", Method, 21}, ++ {"(Level).MarshalText", Method, 21}, ++ {"(Level).String", Method, 21}, ++ {"(Record).Attrs", Method, 21}, ++ {"(Record).Clone", Method, 21}, ++ {"(Record).NumAttrs", Method, 21}, ++ {"(Value).Any", Method, 21}, ++ {"(Value).Bool", Method, 21}, ++ {"(Value).Duration", Method, 21}, ++ {"(Value).Equal", Method, 21}, ++ {"(Value).Float64", Method, 21}, ++ {"(Value).Group", Method, 21}, ++ {"(Value).Int64", Method, 21}, ++ {"(Value).Kind", Method, 21}, ++ {"(Value).LogValuer", Method, 21}, ++ {"(Value).Resolve", Method, 21}, ++ {"(Value).String", Method, 21}, ++ {"(Value).Time", Method, 21}, ++ {"(Value).Uint64", Method, 21}, ++ {"Any", Func, 21}, ++ {"AnyValue", Func, 21}, ++ {"Attr", Type, 21}, ++ {"Attr.Key", Field, 21}, ++ {"Attr.Value", Field, 21}, ++ {"Bool", Func, 21}, ++ {"BoolValue", Func, 21}, ++ {"Debug", Func, 21}, ++ {"DebugContext", Func, 21}, ++ {"Default", Func, 21}, ++ {"Duration", Func, 21}, ++ {"DurationValue", Func, 21}, ++ {"Error", Func, 21}, ++ {"ErrorContext", Func, 21}, ++ {"Float64", Func, 21}, ++ {"Float64Value", Func, 21}, ++ {"Group", Func, 21}, ++ {"GroupValue", Func, 21}, ++ {"Handler", Type, 21}, ++ {"HandlerOptions", Type, 21}, ++ {"HandlerOptions.AddSource", Field, 21}, ++ {"HandlerOptions.Level", Field, 21}, ++ {"HandlerOptions.ReplaceAttr", Field, 21}, ++ {"Info", Func, 21}, ++ {"InfoContext", Func, 21}, ++ {"Int", Func, 21}, ++ {"Int64", Func, 21}, ++ {"Int64Value", Func, 21}, ++ {"IntValue", Func, 21}, ++ {"JSONHandler", Type, 21}, ++ {"Kind", Type, 21}, ++ {"KindAny", Const, 21}, ++ {"KindBool", Const, 21}, ++ {"KindDuration", Const, 21}, ++ {"KindFloat64", Const, 21}, ++ {"KindGroup", Const, 21}, ++ {"KindInt64", Const, 21}, ++ {"KindLogValuer", Const, 21}, ++ {"KindString", Const, 21}, ++ {"KindTime", Const, 21}, ++ {"KindUint64", Const, 21}, ++ {"Level", Type, 21}, ++ {"LevelDebug", Const, 21}, ++ {"LevelError", Const, 21}, ++ {"LevelInfo", Const, 21}, ++ {"LevelKey", Const, 21}, ++ {"LevelVar", Type, 21}, ++ {"LevelWarn", Const, 21}, ++ {"Leveler", Type, 21}, ++ {"Log", Func, 21}, ++ {"LogAttrs", Func, 21}, ++ {"LogValuer", Type, 21}, ++ {"Logger", Type, 21}, ++ {"MessageKey", Const, 21}, ++ {"New", Func, 21}, ++ {"NewJSONHandler", Func, 21}, ++ {"NewLogLogger", Func, 21}, ++ {"NewRecord", Func, 21}, ++ {"NewTextHandler", Func, 21}, ++ {"Record", Type, 21}, ++ {"Record.Level", Field, 21}, ++ {"Record.Message", Field, 21}, ++ {"Record.PC", Field, 21}, ++ {"Record.Time", Field, 21}, ++ {"SetDefault", Func, 21}, ++ {"SetLogLoggerLevel", Func, 22}, ++ {"Source", Type, 21}, ++ {"Source.File", Field, 21}, ++ {"Source.Function", Field, 21}, ++ {"Source.Line", Field, 21}, ++ {"SourceKey", Const, 21}, ++ {"String", Func, 21}, ++ {"StringValue", Func, 21}, ++ {"TextHandler", Type, 21}, ++ {"Time", Func, 21}, ++ {"TimeKey", Const, 21}, ++ {"TimeValue", Func, 21}, ++ {"Uint64", Func, 21}, ++ {"Uint64Value", Func, 21}, ++ {"Value", Type, 21}, ++ {"Warn", Func, 21}, ++ {"WarnContext", Func, 21}, ++ {"With", Func, 21}, ++ }, ++ "log/syslog": { ++ {"(*Writer).Alert", Method, 0}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).Crit", Method, 0}, ++ {"(*Writer).Debug", Method, 0}, ++ {"(*Writer).Emerg", Method, 0}, ++ {"(*Writer).Err", Method, 0}, ++ {"(*Writer).Info", Method, 0}, ++ {"(*Writer).Notice", Method, 0}, ++ {"(*Writer).Warning", Method, 0}, ++ {"(*Writer).Write", Method, 0}, ++ {"Dial", Func, 0}, ++ {"LOG_ALERT", Const, 0}, ++ {"LOG_AUTH", Const, 1}, ++ {"LOG_AUTHPRIV", Const, 1}, ++ {"LOG_CRIT", Const, 0}, ++ {"LOG_CRON", Const, 1}, ++ {"LOG_DAEMON", Const, 1}, ++ {"LOG_DEBUG", Const, 0}, ++ {"LOG_EMERG", Const, 0}, ++ {"LOG_ERR", Const, 0}, ++ {"LOG_FTP", Const, 1}, ++ {"LOG_INFO", Const, 0}, ++ {"LOG_KERN", Const, 1}, ++ {"LOG_LOCAL0", Const, 1}, ++ {"LOG_LOCAL1", Const, 1}, ++ {"LOG_LOCAL2", Const, 1}, ++ {"LOG_LOCAL3", Const, 1}, ++ {"LOG_LOCAL4", Const, 1}, ++ {"LOG_LOCAL5", Const, 1}, ++ {"LOG_LOCAL6", Const, 1}, ++ {"LOG_LOCAL7", Const, 1}, ++ {"LOG_LPR", Const, 1}, ++ {"LOG_MAIL", Const, 1}, ++ {"LOG_NEWS", Const, 1}, ++ {"LOG_NOTICE", Const, 0}, ++ {"LOG_SYSLOG", Const, 1}, ++ {"LOG_USER", Const, 1}, ++ {"LOG_UUCP", Const, 1}, ++ {"LOG_WARNING", Const, 0}, ++ {"New", Func, 0}, ++ {"NewLogger", Func, 0}, ++ {"Priority", Type, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "maps": { ++ {"Clone", Func, 21}, ++ {"Copy", Func, 21}, ++ {"DeleteFunc", Func, 21}, ++ {"Equal", Func, 21}, ++ {"EqualFunc", Func, 21}, ++ }, ++ "math": { ++ {"Abs", Func, 0}, ++ {"Acos", Func, 0}, ++ {"Acosh", Func, 0}, ++ {"Asin", Func, 0}, ++ {"Asinh", Func, 0}, ++ {"Atan", Func, 0}, ++ {"Atan2", Func, 0}, ++ {"Atanh", Func, 0}, ++ {"Cbrt", Func, 0}, ++ {"Ceil", Func, 0}, ++ {"Copysign", Func, 0}, ++ {"Cos", Func, 0}, ++ {"Cosh", Func, 0}, ++ {"Dim", Func, 0}, ++ {"E", Const, 0}, ++ {"Erf", Func, 0}, ++ {"Erfc", Func, 0}, ++ {"Erfcinv", Func, 10}, ++ {"Erfinv", Func, 10}, ++ {"Exp", Func, 0}, ++ {"Exp2", Func, 0}, ++ {"Expm1", Func, 0}, ++ {"FMA", Func, 14}, ++ {"Float32bits", Func, 0}, ++ {"Float32frombits", Func, 0}, ++ {"Float64bits", Func, 0}, ++ {"Float64frombits", Func, 0}, ++ {"Floor", Func, 0}, ++ {"Frexp", Func, 0}, ++ {"Gamma", Func, 0}, ++ {"Hypot", Func, 0}, ++ {"Ilogb", Func, 0}, ++ {"Inf", Func, 0}, ++ {"IsInf", Func, 0}, ++ {"IsNaN", Func, 0}, ++ {"J0", Func, 0}, ++ {"J1", Func, 0}, ++ {"Jn", Func, 0}, ++ {"Ldexp", Func, 0}, ++ {"Lgamma", Func, 0}, ++ {"Ln10", Const, 0}, ++ {"Ln2", Const, 0}, ++ {"Log", Func, 0}, ++ {"Log10", Func, 0}, ++ {"Log10E", Const, 0}, ++ {"Log1p", Func, 0}, ++ {"Log2", Func, 0}, ++ {"Log2E", Const, 0}, ++ {"Logb", Func, 0}, ++ {"Max", Func, 0}, ++ {"MaxFloat32", Const, 0}, ++ {"MaxFloat64", Const, 0}, ++ {"MaxInt", Const, 17}, ++ {"MaxInt16", Const, 0}, ++ {"MaxInt32", Const, 0}, ++ {"MaxInt64", Const, 0}, ++ {"MaxInt8", Const, 0}, ++ {"MaxUint", Const, 17}, ++ {"MaxUint16", Const, 0}, ++ {"MaxUint32", Const, 0}, ++ {"MaxUint64", Const, 0}, ++ {"MaxUint8", Const, 0}, ++ {"Min", Func, 0}, ++ {"MinInt", Const, 17}, ++ {"MinInt16", Const, 0}, ++ {"MinInt32", Const, 0}, ++ {"MinInt64", Const, 0}, ++ {"MinInt8", Const, 0}, ++ {"Mod", Func, 0}, ++ {"Modf", Func, 0}, ++ {"NaN", Func, 0}, ++ {"Nextafter", Func, 0}, ++ {"Nextafter32", Func, 4}, ++ {"Phi", Const, 0}, ++ {"Pi", Const, 0}, ++ {"Pow", Func, 0}, ++ {"Pow10", Func, 0}, ++ {"Remainder", Func, 0}, ++ {"Round", Func, 10}, ++ {"RoundToEven", Func, 10}, ++ {"Signbit", Func, 0}, ++ {"Sin", Func, 0}, ++ {"Sincos", Func, 0}, ++ {"Sinh", Func, 0}, ++ {"SmallestNonzeroFloat32", Const, 0}, ++ {"SmallestNonzeroFloat64", Const, 0}, ++ {"Sqrt", Func, 0}, ++ {"Sqrt2", Const, 0}, ++ {"SqrtE", Const, 0}, ++ {"SqrtPhi", Const, 0}, ++ {"SqrtPi", Const, 0}, ++ {"Tan", Func, 0}, ++ {"Tanh", Func, 0}, ++ {"Trunc", Func, 0}, ++ {"Y0", Func, 0}, ++ {"Y1", Func, 0}, ++ {"Yn", Func, 0}, ++ }, ++ "math/big": { ++ {"(*Float).Abs", Method, 5}, ++ {"(*Float).Acc", Method, 5}, ++ {"(*Float).Add", Method, 5}, ++ {"(*Float).Append", Method, 5}, ++ {"(*Float).Cmp", Method, 5}, ++ {"(*Float).Copy", Method, 5}, ++ {"(*Float).Float32", Method, 5}, ++ {"(*Float).Float64", Method, 5}, ++ {"(*Float).Format", Method, 5}, ++ {"(*Float).GobDecode", Method, 7}, ++ {"(*Float).GobEncode", Method, 7}, ++ {"(*Float).Int", Method, 5}, ++ {"(*Float).Int64", Method, 5}, ++ {"(*Float).IsInf", Method, 5}, ++ {"(*Float).IsInt", Method, 5}, ++ {"(*Float).MantExp", Method, 5}, ++ {"(*Float).MarshalText", Method, 6}, ++ {"(*Float).MinPrec", Method, 5}, ++ {"(*Float).Mode", Method, 5}, ++ {"(*Float).Mul", Method, 5}, ++ {"(*Float).Neg", Method, 5}, ++ {"(*Float).Parse", Method, 5}, ++ {"(*Float).Prec", Method, 5}, ++ {"(*Float).Quo", Method, 5}, ++ {"(*Float).Rat", Method, 5}, ++ {"(*Float).Scan", Method, 8}, ++ {"(*Float).Set", Method, 5}, ++ {"(*Float).SetFloat64", Method, 5}, ++ {"(*Float).SetInf", Method, 5}, ++ {"(*Float).SetInt", Method, 5}, ++ {"(*Float).SetInt64", Method, 5}, ++ {"(*Float).SetMantExp", Method, 5}, ++ {"(*Float).SetMode", Method, 5}, ++ {"(*Float).SetPrec", Method, 5}, ++ {"(*Float).SetRat", Method, 5}, ++ {"(*Float).SetString", Method, 5}, ++ {"(*Float).SetUint64", Method, 5}, ++ {"(*Float).Sign", Method, 5}, ++ {"(*Float).Signbit", Method, 5}, ++ {"(*Float).Sqrt", Method, 10}, ++ {"(*Float).String", Method, 5}, ++ {"(*Float).Sub", Method, 5}, ++ {"(*Float).Text", Method, 5}, ++ {"(*Float).Uint64", Method, 5}, ++ {"(*Float).UnmarshalText", Method, 6}, ++ {"(*Int).Abs", Method, 0}, ++ {"(*Int).Add", Method, 0}, ++ {"(*Int).And", Method, 0}, ++ {"(*Int).AndNot", Method, 0}, ++ {"(*Int).Append", Method, 6}, ++ {"(*Int).Binomial", Method, 0}, ++ {"(*Int).Bit", Method, 0}, ++ {"(*Int).BitLen", Method, 0}, ++ {"(*Int).Bits", Method, 0}, ++ {"(*Int).Bytes", Method, 0}, ++ {"(*Int).Cmp", Method, 0}, ++ {"(*Int).CmpAbs", Method, 10}, ++ {"(*Int).Div", Method, 0}, ++ {"(*Int).DivMod", Method, 0}, ++ {"(*Int).Exp", Method, 0}, ++ {"(*Int).FillBytes", Method, 15}, ++ {"(*Int).Float64", Method, 21}, ++ {"(*Int).Format", Method, 0}, ++ {"(*Int).GCD", Method, 0}, ++ {"(*Int).GobDecode", Method, 0}, ++ {"(*Int).GobEncode", Method, 0}, ++ {"(*Int).Int64", Method, 0}, ++ {"(*Int).IsInt64", Method, 9}, ++ {"(*Int).IsUint64", Method, 9}, ++ {"(*Int).Lsh", Method, 0}, ++ {"(*Int).MarshalJSON", Method, 1}, ++ {"(*Int).MarshalText", Method, 3}, ++ {"(*Int).Mod", Method, 0}, ++ {"(*Int).ModInverse", Method, 0}, ++ {"(*Int).ModSqrt", Method, 5}, ++ {"(*Int).Mul", Method, 0}, ++ {"(*Int).MulRange", Method, 0}, ++ {"(*Int).Neg", Method, 0}, ++ {"(*Int).Not", Method, 0}, ++ {"(*Int).Or", Method, 0}, ++ {"(*Int).ProbablyPrime", Method, 0}, ++ {"(*Int).Quo", Method, 0}, ++ {"(*Int).QuoRem", Method, 0}, ++ {"(*Int).Rand", Method, 0}, ++ {"(*Int).Rem", Method, 0}, ++ {"(*Int).Rsh", Method, 0}, ++ {"(*Int).Scan", Method, 0}, ++ {"(*Int).Set", Method, 0}, ++ {"(*Int).SetBit", Method, 0}, ++ {"(*Int).SetBits", Method, 0}, ++ {"(*Int).SetBytes", Method, 0}, ++ {"(*Int).SetInt64", Method, 0}, ++ {"(*Int).SetString", Method, 0}, ++ {"(*Int).SetUint64", Method, 1}, ++ {"(*Int).Sign", Method, 0}, ++ {"(*Int).Sqrt", Method, 8}, ++ {"(*Int).String", Method, 0}, ++ {"(*Int).Sub", Method, 0}, ++ {"(*Int).Text", Method, 6}, ++ {"(*Int).TrailingZeroBits", Method, 13}, ++ {"(*Int).Uint64", Method, 1}, ++ {"(*Int).UnmarshalJSON", Method, 1}, ++ {"(*Int).UnmarshalText", Method, 3}, ++ {"(*Int).Xor", Method, 0}, ++ {"(*Rat).Abs", Method, 0}, ++ {"(*Rat).Add", Method, 0}, ++ {"(*Rat).Cmp", Method, 0}, ++ {"(*Rat).Denom", Method, 0}, ++ {"(*Rat).Float32", Method, 4}, ++ {"(*Rat).Float64", Method, 1}, ++ {"(*Rat).FloatPrec", Method, 22}, ++ {"(*Rat).FloatString", Method, 0}, ++ {"(*Rat).GobDecode", Method, 0}, ++ {"(*Rat).GobEncode", Method, 0}, ++ {"(*Rat).Inv", Method, 0}, ++ {"(*Rat).IsInt", Method, 0}, ++ {"(*Rat).MarshalText", Method, 3}, ++ {"(*Rat).Mul", Method, 0}, ++ {"(*Rat).Neg", Method, 0}, ++ {"(*Rat).Num", Method, 0}, ++ {"(*Rat).Quo", Method, 0}, ++ {"(*Rat).RatString", Method, 0}, ++ {"(*Rat).Scan", Method, 0}, ++ {"(*Rat).Set", Method, 0}, ++ {"(*Rat).SetFloat64", Method, 1}, ++ {"(*Rat).SetFrac", Method, 0}, ++ {"(*Rat).SetFrac64", Method, 0}, ++ {"(*Rat).SetInt", Method, 0}, ++ {"(*Rat).SetInt64", Method, 0}, ++ {"(*Rat).SetString", Method, 0}, ++ {"(*Rat).SetUint64", Method, 13}, ++ {"(*Rat).Sign", Method, 0}, ++ {"(*Rat).String", Method, 0}, ++ {"(*Rat).Sub", Method, 0}, ++ {"(*Rat).UnmarshalText", Method, 3}, ++ {"(Accuracy).String", Method, 5}, ++ {"(ErrNaN).Error", Method, 5}, ++ {"(RoundingMode).String", Method, 5}, ++ {"Above", Const, 5}, ++ {"Accuracy", Type, 5}, ++ {"AwayFromZero", Const, 5}, ++ {"Below", Const, 5}, ++ {"ErrNaN", Type, 5}, ++ {"Exact", Const, 5}, ++ {"Float", Type, 5}, ++ {"Int", Type, 0}, ++ {"Jacobi", Func, 5}, ++ {"MaxBase", Const, 0}, ++ {"MaxExp", Const, 5}, ++ {"MaxPrec", Const, 5}, ++ {"MinExp", Const, 5}, ++ {"NewFloat", Func, 5}, ++ {"NewInt", Func, 0}, ++ {"NewRat", Func, 0}, ++ {"ParseFloat", Func, 5}, ++ {"Rat", Type, 0}, ++ {"RoundingMode", Type, 5}, ++ {"ToNearestAway", Const, 5}, ++ {"ToNearestEven", Const, 5}, ++ {"ToNegativeInf", Const, 5}, ++ {"ToPositiveInf", Const, 5}, ++ {"ToZero", Const, 5}, ++ {"Word", Type, 0}, ++ }, ++ "math/bits": { ++ {"Add", Func, 12}, ++ {"Add32", Func, 12}, ++ {"Add64", Func, 12}, ++ {"Div", Func, 12}, ++ {"Div32", Func, 12}, ++ {"Div64", Func, 12}, ++ {"LeadingZeros", Func, 9}, ++ {"LeadingZeros16", Func, 9}, ++ {"LeadingZeros32", Func, 9}, ++ {"LeadingZeros64", Func, 9}, ++ {"LeadingZeros8", Func, 9}, ++ {"Len", Func, 9}, ++ {"Len16", Func, 9}, ++ {"Len32", Func, 9}, ++ {"Len64", Func, 9}, ++ {"Len8", Func, 9}, ++ {"Mul", Func, 12}, ++ {"Mul32", Func, 12}, ++ {"Mul64", Func, 12}, ++ {"OnesCount", Func, 9}, ++ {"OnesCount16", Func, 9}, ++ {"OnesCount32", Func, 9}, ++ {"OnesCount64", Func, 9}, ++ {"OnesCount8", Func, 9}, ++ {"Rem", Func, 14}, ++ {"Rem32", Func, 14}, ++ {"Rem64", Func, 14}, ++ {"Reverse", Func, 9}, ++ {"Reverse16", Func, 9}, ++ {"Reverse32", Func, 9}, ++ {"Reverse64", Func, 9}, ++ {"Reverse8", Func, 9}, ++ {"ReverseBytes", Func, 9}, ++ {"ReverseBytes16", Func, 9}, ++ {"ReverseBytes32", Func, 9}, ++ {"ReverseBytes64", Func, 9}, ++ {"RotateLeft", Func, 9}, ++ {"RotateLeft16", Func, 9}, ++ {"RotateLeft32", Func, 9}, ++ {"RotateLeft64", Func, 9}, ++ {"RotateLeft8", Func, 9}, ++ {"Sub", Func, 12}, ++ {"Sub32", Func, 12}, ++ {"Sub64", Func, 12}, ++ {"TrailingZeros", Func, 9}, ++ {"TrailingZeros16", Func, 9}, ++ {"TrailingZeros32", Func, 9}, ++ {"TrailingZeros64", Func, 9}, ++ {"TrailingZeros8", Func, 9}, ++ {"UintSize", Const, 9}, ++ }, ++ "math/cmplx": { ++ {"Abs", Func, 0}, ++ {"Acos", Func, 0}, ++ {"Acosh", Func, 0}, ++ {"Asin", Func, 0}, ++ {"Asinh", Func, 0}, ++ {"Atan", Func, 0}, ++ {"Atanh", Func, 0}, ++ {"Conj", Func, 0}, ++ {"Cos", Func, 0}, ++ {"Cosh", Func, 0}, ++ {"Cot", Func, 0}, ++ {"Exp", Func, 0}, ++ {"Inf", Func, 0}, ++ {"IsInf", Func, 0}, ++ {"IsNaN", Func, 0}, ++ {"Log", Func, 0}, ++ {"Log10", Func, 0}, ++ {"NaN", Func, 0}, ++ {"Phase", Func, 0}, ++ {"Polar", Func, 0}, ++ {"Pow", Func, 0}, ++ {"Rect", Func, 0}, ++ {"Sin", Func, 0}, ++ {"Sinh", Func, 0}, ++ {"Sqrt", Func, 0}, ++ {"Tan", Func, 0}, ++ {"Tanh", Func, 0}, ++ }, ++ "math/rand": { ++ {"(*Rand).ExpFloat64", Method, 0}, ++ {"(*Rand).Float32", Method, 0}, ++ {"(*Rand).Float64", Method, 0}, ++ {"(*Rand).Int", Method, 0}, ++ {"(*Rand).Int31", Method, 0}, ++ {"(*Rand).Int31n", Method, 0}, ++ {"(*Rand).Int63", Method, 0}, ++ {"(*Rand).Int63n", Method, 0}, ++ {"(*Rand).Intn", Method, 0}, ++ {"(*Rand).NormFloat64", Method, 0}, ++ {"(*Rand).Perm", Method, 0}, ++ {"(*Rand).Read", Method, 6}, ++ {"(*Rand).Seed", Method, 0}, ++ {"(*Rand).Shuffle", Method, 10}, ++ {"(*Rand).Uint32", Method, 0}, ++ {"(*Rand).Uint64", Method, 8}, ++ {"(*Zipf).Uint64", Method, 0}, ++ {"ExpFloat64", Func, 0}, ++ {"Float32", Func, 0}, ++ {"Float64", Func, 0}, ++ {"Int", Func, 0}, ++ {"Int31", Func, 0}, ++ {"Int31n", Func, 0}, ++ {"Int63", Func, 0}, ++ {"Int63n", Func, 0}, ++ {"Intn", Func, 0}, ++ {"New", Func, 0}, ++ {"NewSource", Func, 0}, ++ {"NewZipf", Func, 0}, ++ {"NormFloat64", Func, 0}, ++ {"Perm", Func, 0}, ++ {"Rand", Type, 0}, ++ {"Read", Func, 6}, ++ {"Seed", Func, 0}, ++ {"Shuffle", Func, 10}, ++ {"Source", Type, 0}, ++ {"Source64", Type, 8}, ++ {"Uint32", Func, 0}, ++ {"Uint64", Func, 8}, ++ {"Zipf", Type, 0}, ++ }, ++ "math/rand/v2": { ++ {"(*ChaCha8).MarshalBinary", Method, 22}, ++ {"(*ChaCha8).Seed", Method, 22}, ++ {"(*ChaCha8).Uint64", Method, 22}, ++ {"(*ChaCha8).UnmarshalBinary", Method, 22}, ++ {"(*PCG).MarshalBinary", Method, 22}, ++ {"(*PCG).Seed", Method, 22}, ++ {"(*PCG).Uint64", Method, 22}, ++ {"(*PCG).UnmarshalBinary", Method, 22}, ++ {"(*Rand).ExpFloat64", Method, 22}, ++ {"(*Rand).Float32", Method, 22}, ++ {"(*Rand).Float64", Method, 22}, ++ {"(*Rand).Int", Method, 22}, ++ {"(*Rand).Int32", Method, 22}, ++ {"(*Rand).Int32N", Method, 22}, ++ {"(*Rand).Int64", Method, 22}, ++ {"(*Rand).Int64N", Method, 22}, ++ {"(*Rand).IntN", Method, 22}, ++ {"(*Rand).NormFloat64", Method, 22}, ++ {"(*Rand).Perm", Method, 22}, ++ {"(*Rand).Shuffle", Method, 22}, ++ {"(*Rand).Uint32", Method, 22}, ++ {"(*Rand).Uint32N", Method, 22}, ++ {"(*Rand).Uint64", Method, 22}, ++ {"(*Rand).Uint64N", Method, 22}, ++ {"(*Rand).UintN", Method, 22}, ++ {"(*Zipf).Uint64", Method, 22}, ++ {"ChaCha8", Type, 22}, ++ {"ExpFloat64", Func, 22}, ++ {"Float32", Func, 22}, ++ {"Float64", Func, 22}, ++ {"Int", Func, 22}, ++ {"Int32", Func, 22}, ++ {"Int32N", Func, 22}, ++ {"Int64", Func, 22}, ++ {"Int64N", Func, 22}, ++ {"IntN", Func, 22}, ++ {"N", Func, 22}, ++ {"New", Func, 22}, ++ {"NewChaCha8", Func, 22}, ++ {"NewPCG", Func, 22}, ++ {"NewZipf", Func, 22}, ++ {"NormFloat64", Func, 22}, ++ {"PCG", Type, 22}, ++ {"Perm", Func, 22}, ++ {"Rand", Type, 22}, ++ {"Shuffle", Func, 22}, ++ {"Source", Type, 22}, ++ {"Uint32", Func, 22}, ++ {"Uint32N", Func, 22}, ++ {"Uint64", Func, 22}, ++ {"Uint64N", Func, 22}, ++ {"UintN", Func, 22}, ++ {"Zipf", Type, 22}, ++ }, ++ "mime": { ++ {"(*WordDecoder).Decode", Method, 5}, ++ {"(*WordDecoder).DecodeHeader", Method, 5}, ++ {"(WordEncoder).Encode", Method, 5}, ++ {"AddExtensionType", Func, 0}, ++ {"BEncoding", Const, 5}, ++ {"ErrInvalidMediaParameter", Var, 9}, ++ {"ExtensionsByType", Func, 5}, ++ {"FormatMediaType", Func, 0}, ++ {"ParseMediaType", Func, 0}, ++ {"QEncoding", Const, 5}, ++ {"TypeByExtension", Func, 0}, ++ {"WordDecoder", Type, 5}, ++ {"WordDecoder.CharsetReader", Field, 5}, ++ {"WordEncoder", Type, 5}, ++ }, ++ "mime/multipart": { ++ {"(*FileHeader).Open", Method, 0}, ++ {"(*Form).RemoveAll", Method, 0}, ++ {"(*Part).Close", Method, 0}, ++ {"(*Part).FileName", Method, 0}, ++ {"(*Part).FormName", Method, 0}, ++ {"(*Part).Read", Method, 0}, ++ {"(*Reader).NextPart", Method, 0}, ++ {"(*Reader).NextRawPart", Method, 14}, ++ {"(*Reader).ReadForm", Method, 0}, ++ {"(*Writer).Boundary", Method, 0}, ++ {"(*Writer).Close", Method, 0}, ++ {"(*Writer).CreateFormField", Method, 0}, ++ {"(*Writer).CreateFormFile", Method, 0}, ++ {"(*Writer).CreatePart", Method, 0}, ++ {"(*Writer).FormDataContentType", Method, 0}, ++ {"(*Writer).SetBoundary", Method, 1}, ++ {"(*Writer).WriteField", Method, 0}, ++ {"ErrMessageTooLarge", Var, 9}, ++ {"File", Type, 0}, ++ {"FileHeader", Type, 0}, ++ {"FileHeader.Filename", Field, 0}, ++ {"FileHeader.Header", Field, 0}, ++ {"FileHeader.Size", Field, 9}, ++ {"Form", Type, 0}, ++ {"Form.File", Field, 0}, ++ {"Form.Value", Field, 0}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"Part", Type, 0}, ++ {"Part.Header", Field, 0}, ++ {"Reader", Type, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "mime/quotedprintable": { ++ {"(*Reader).Read", Method, 5}, ++ {"(*Writer).Close", Method, 5}, ++ {"(*Writer).Write", Method, 5}, ++ {"NewReader", Func, 5}, ++ {"NewWriter", Func, 5}, ++ {"Reader", Type, 5}, ++ {"Writer", Type, 5}, ++ {"Writer.Binary", Field, 5}, ++ }, ++ "net": { ++ {"(*AddrError).Error", Method, 0}, ++ {"(*AddrError).Temporary", Method, 0}, ++ {"(*AddrError).Timeout", Method, 0}, ++ {"(*Buffers).Read", Method, 8}, ++ {"(*Buffers).WriteTo", Method, 8}, ++ {"(*DNSConfigError).Error", Method, 0}, ++ {"(*DNSConfigError).Temporary", Method, 0}, ++ {"(*DNSConfigError).Timeout", Method, 0}, ++ {"(*DNSConfigError).Unwrap", Method, 13}, ++ {"(*DNSError).Error", Method, 0}, ++ {"(*DNSError).Temporary", Method, 0}, ++ {"(*DNSError).Timeout", Method, 0}, ++ {"(*Dialer).Dial", Method, 1}, ++ {"(*Dialer).DialContext", Method, 7}, ++ {"(*Dialer).MultipathTCP", Method, 21}, ++ {"(*Dialer).SetMultipathTCP", Method, 21}, ++ {"(*IP).UnmarshalText", Method, 2}, ++ {"(*IPAddr).Network", Method, 0}, ++ {"(*IPAddr).String", Method, 0}, ++ {"(*IPConn).Close", Method, 0}, ++ {"(*IPConn).File", Method, 0}, ++ {"(*IPConn).LocalAddr", Method, 0}, ++ {"(*IPConn).Read", Method, 0}, ++ {"(*IPConn).ReadFrom", Method, 0}, ++ {"(*IPConn).ReadFromIP", Method, 0}, ++ {"(*IPConn).ReadMsgIP", Method, 1}, ++ {"(*IPConn).RemoteAddr", Method, 0}, ++ {"(*IPConn).SetDeadline", Method, 0}, ++ {"(*IPConn).SetReadBuffer", Method, 0}, ++ {"(*IPConn).SetReadDeadline", Method, 0}, ++ {"(*IPConn).SetWriteBuffer", Method, 0}, ++ {"(*IPConn).SetWriteDeadline", Method, 0}, ++ {"(*IPConn).SyscallConn", Method, 9}, ++ {"(*IPConn).Write", Method, 0}, ++ {"(*IPConn).WriteMsgIP", Method, 1}, ++ {"(*IPConn).WriteTo", Method, 0}, ++ {"(*IPConn).WriteToIP", Method, 0}, ++ {"(*IPNet).Contains", Method, 0}, ++ {"(*IPNet).Network", Method, 0}, ++ {"(*IPNet).String", Method, 0}, ++ {"(*Interface).Addrs", Method, 0}, ++ {"(*Interface).MulticastAddrs", Method, 0}, ++ {"(*ListenConfig).Listen", Method, 11}, ++ {"(*ListenConfig).ListenPacket", Method, 11}, ++ {"(*ListenConfig).MultipathTCP", Method, 21}, ++ {"(*ListenConfig).SetMultipathTCP", Method, 21}, ++ {"(*OpError).Error", Method, 0}, ++ {"(*OpError).Temporary", Method, 0}, ++ {"(*OpError).Timeout", Method, 0}, ++ {"(*OpError).Unwrap", Method, 13}, ++ {"(*ParseError).Error", Method, 0}, ++ {"(*ParseError).Temporary", Method, 17}, ++ {"(*ParseError).Timeout", Method, 17}, ++ {"(*Resolver).LookupAddr", Method, 8}, ++ {"(*Resolver).LookupCNAME", Method, 8}, ++ {"(*Resolver).LookupHost", Method, 8}, ++ {"(*Resolver).LookupIP", Method, 15}, ++ {"(*Resolver).LookupIPAddr", Method, 8}, ++ {"(*Resolver).LookupMX", Method, 8}, ++ {"(*Resolver).LookupNS", Method, 8}, ++ {"(*Resolver).LookupNetIP", Method, 18}, ++ {"(*Resolver).LookupPort", Method, 8}, ++ {"(*Resolver).LookupSRV", Method, 8}, ++ {"(*Resolver).LookupTXT", Method, 8}, ++ {"(*TCPAddr).AddrPort", Method, 18}, ++ {"(*TCPAddr).Network", Method, 0}, ++ {"(*TCPAddr).String", Method, 0}, ++ {"(*TCPConn).Close", Method, 0}, ++ {"(*TCPConn).CloseRead", Method, 0}, ++ {"(*TCPConn).CloseWrite", Method, 0}, ++ {"(*TCPConn).File", Method, 0}, ++ {"(*TCPConn).LocalAddr", Method, 0}, ++ {"(*TCPConn).MultipathTCP", Method, 21}, ++ {"(*TCPConn).Read", Method, 0}, ++ {"(*TCPConn).ReadFrom", Method, 0}, ++ {"(*TCPConn).RemoteAddr", Method, 0}, ++ {"(*TCPConn).SetDeadline", Method, 0}, ++ {"(*TCPConn).SetKeepAlive", Method, 0}, ++ {"(*TCPConn).SetKeepAlivePeriod", Method, 2}, ++ {"(*TCPConn).SetLinger", Method, 0}, ++ {"(*TCPConn).SetNoDelay", Method, 0}, ++ {"(*TCPConn).SetReadBuffer", Method, 0}, ++ {"(*TCPConn).SetReadDeadline", Method, 0}, ++ {"(*TCPConn).SetWriteBuffer", Method, 0}, ++ {"(*TCPConn).SetWriteDeadline", Method, 0}, ++ {"(*TCPConn).SyscallConn", Method, 9}, ++ {"(*TCPConn).Write", Method, 0}, ++ {"(*TCPConn).WriteTo", Method, 22}, ++ {"(*TCPListener).Accept", Method, 0}, ++ {"(*TCPListener).AcceptTCP", Method, 0}, ++ {"(*TCPListener).Addr", Method, 0}, ++ {"(*TCPListener).Close", Method, 0}, ++ {"(*TCPListener).File", Method, 0}, ++ {"(*TCPListener).SetDeadline", Method, 0}, ++ {"(*TCPListener).SyscallConn", Method, 10}, ++ {"(*UDPAddr).AddrPort", Method, 18}, ++ {"(*UDPAddr).Network", Method, 0}, ++ {"(*UDPAddr).String", Method, 0}, ++ {"(*UDPConn).Close", Method, 0}, ++ {"(*UDPConn).File", Method, 0}, ++ {"(*UDPConn).LocalAddr", Method, 0}, ++ {"(*UDPConn).Read", Method, 0}, ++ {"(*UDPConn).ReadFrom", Method, 0}, ++ {"(*UDPConn).ReadFromUDP", Method, 0}, ++ {"(*UDPConn).ReadFromUDPAddrPort", Method, 18}, ++ {"(*UDPConn).ReadMsgUDP", Method, 1}, ++ {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18}, ++ {"(*UDPConn).RemoteAddr", Method, 0}, ++ {"(*UDPConn).SetDeadline", Method, 0}, ++ {"(*UDPConn).SetReadBuffer", Method, 0}, ++ {"(*UDPConn).SetReadDeadline", Method, 0}, ++ {"(*UDPConn).SetWriteBuffer", Method, 0}, ++ {"(*UDPConn).SetWriteDeadline", Method, 0}, ++ {"(*UDPConn).SyscallConn", Method, 9}, ++ {"(*UDPConn).Write", Method, 0}, ++ {"(*UDPConn).WriteMsgUDP", Method, 1}, ++ {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18}, ++ {"(*UDPConn).WriteTo", Method, 0}, ++ {"(*UDPConn).WriteToUDP", Method, 0}, ++ {"(*UDPConn).WriteToUDPAddrPort", Method, 18}, ++ {"(*UnixAddr).Network", Method, 0}, ++ {"(*UnixAddr).String", Method, 0}, ++ {"(*UnixConn).Close", Method, 0}, ++ {"(*UnixConn).CloseRead", Method, 1}, ++ {"(*UnixConn).CloseWrite", Method, 1}, ++ {"(*UnixConn).File", Method, 0}, ++ {"(*UnixConn).LocalAddr", Method, 0}, ++ {"(*UnixConn).Read", Method, 0}, ++ {"(*UnixConn).ReadFrom", Method, 0}, ++ {"(*UnixConn).ReadFromUnix", Method, 0}, ++ {"(*UnixConn).ReadMsgUnix", Method, 0}, ++ {"(*UnixConn).RemoteAddr", Method, 0}, ++ {"(*UnixConn).SetDeadline", Method, 0}, ++ {"(*UnixConn).SetReadBuffer", Method, 0}, ++ {"(*UnixConn).SetReadDeadline", Method, 0}, ++ {"(*UnixConn).SetWriteBuffer", Method, 0}, ++ {"(*UnixConn).SetWriteDeadline", Method, 0}, ++ {"(*UnixConn).SyscallConn", Method, 9}, ++ {"(*UnixConn).Write", Method, 0}, ++ {"(*UnixConn).WriteMsgUnix", Method, 0}, ++ {"(*UnixConn).WriteTo", Method, 0}, ++ {"(*UnixConn).WriteToUnix", Method, 0}, ++ {"(*UnixListener).Accept", Method, 0}, ++ {"(*UnixListener).AcceptUnix", Method, 0}, ++ {"(*UnixListener).Addr", Method, 0}, ++ {"(*UnixListener).Close", Method, 0}, ++ {"(*UnixListener).File", Method, 0}, ++ {"(*UnixListener).SetDeadline", Method, 0}, ++ {"(*UnixListener).SetUnlinkOnClose", Method, 8}, ++ {"(*UnixListener).SyscallConn", Method, 10}, ++ {"(Flags).String", Method, 0}, ++ {"(HardwareAddr).String", Method, 0}, ++ {"(IP).DefaultMask", Method, 0}, ++ {"(IP).Equal", Method, 0}, ++ {"(IP).IsGlobalUnicast", Method, 0}, ++ {"(IP).IsInterfaceLocalMulticast", Method, 0}, ++ {"(IP).IsLinkLocalMulticast", Method, 0}, ++ {"(IP).IsLinkLocalUnicast", Method, 0}, ++ {"(IP).IsLoopback", Method, 0}, ++ {"(IP).IsMulticast", Method, 0}, ++ {"(IP).IsPrivate", Method, 17}, ++ {"(IP).IsUnspecified", Method, 0}, ++ {"(IP).MarshalText", Method, 2}, ++ {"(IP).Mask", Method, 0}, ++ {"(IP).String", Method, 0}, ++ {"(IP).To16", Method, 0}, ++ {"(IP).To4", Method, 0}, ++ {"(IPMask).Size", Method, 0}, ++ {"(IPMask).String", Method, 0}, ++ {"(InvalidAddrError).Error", Method, 0}, ++ {"(InvalidAddrError).Temporary", Method, 0}, ++ {"(InvalidAddrError).Timeout", Method, 0}, ++ {"(UnknownNetworkError).Error", Method, 0}, ++ {"(UnknownNetworkError).Temporary", Method, 0}, ++ {"(UnknownNetworkError).Timeout", Method, 0}, ++ {"Addr", Type, 0}, ++ {"AddrError", Type, 0}, ++ {"AddrError.Addr", Field, 0}, ++ {"AddrError.Err", Field, 0}, ++ {"Buffers", Type, 8}, ++ {"CIDRMask", Func, 0}, ++ {"Conn", Type, 0}, ++ {"DNSConfigError", Type, 0}, ++ {"DNSConfigError.Err", Field, 0}, ++ {"DNSError", Type, 0}, ++ {"DNSError.Err", Field, 0}, ++ {"DNSError.IsNotFound", Field, 13}, ++ {"DNSError.IsTemporary", Field, 6}, ++ {"DNSError.IsTimeout", Field, 0}, ++ {"DNSError.Name", Field, 0}, ++ {"DNSError.Server", Field, 0}, ++ {"DefaultResolver", Var, 8}, ++ {"Dial", Func, 0}, ++ {"DialIP", Func, 0}, ++ {"DialTCP", Func, 0}, ++ {"DialTimeout", Func, 0}, ++ {"DialUDP", Func, 0}, ++ {"DialUnix", Func, 0}, ++ {"Dialer", Type, 1}, ++ {"Dialer.Cancel", Field, 6}, ++ {"Dialer.Control", Field, 11}, ++ {"Dialer.ControlContext", Field, 20}, ++ {"Dialer.Deadline", Field, 1}, ++ {"Dialer.DualStack", Field, 2}, ++ {"Dialer.FallbackDelay", Field, 5}, ++ {"Dialer.KeepAlive", Field, 3}, ++ {"Dialer.LocalAddr", Field, 1}, ++ {"Dialer.Resolver", Field, 8}, ++ {"Dialer.Timeout", Field, 1}, ++ {"ErrClosed", Var, 16}, ++ {"ErrWriteToConnected", Var, 0}, ++ {"Error", Type, 0}, ++ {"FileConn", Func, 0}, ++ {"FileListener", Func, 0}, ++ {"FilePacketConn", Func, 0}, ++ {"FlagBroadcast", Const, 0}, ++ {"FlagLoopback", Const, 0}, ++ {"FlagMulticast", Const, 0}, ++ {"FlagPointToPoint", Const, 0}, ++ {"FlagRunning", Const, 20}, ++ {"FlagUp", Const, 0}, ++ {"Flags", Type, 0}, ++ {"HardwareAddr", Type, 0}, ++ {"IP", Type, 0}, ++ {"IPAddr", Type, 0}, ++ {"IPAddr.IP", Field, 0}, ++ {"IPAddr.Zone", Field, 1}, ++ {"IPConn", Type, 0}, ++ {"IPMask", Type, 0}, ++ {"IPNet", Type, 0}, ++ {"IPNet.IP", Field, 0}, ++ {"IPNet.Mask", Field, 0}, ++ {"IPv4", Func, 0}, ++ {"IPv4Mask", Func, 0}, ++ {"IPv4allrouter", Var, 0}, ++ {"IPv4allsys", Var, 0}, ++ {"IPv4bcast", Var, 0}, ++ {"IPv4len", Const, 0}, ++ {"IPv4zero", Var, 0}, ++ {"IPv6interfacelocalallnodes", Var, 0}, ++ {"IPv6len", Const, 0}, ++ {"IPv6linklocalallnodes", Var, 0}, ++ {"IPv6linklocalallrouters", Var, 0}, ++ {"IPv6loopback", Var, 0}, ++ {"IPv6unspecified", Var, 0}, ++ {"IPv6zero", Var, 0}, ++ {"Interface", Type, 0}, ++ {"Interface.Flags", Field, 0}, ++ {"Interface.HardwareAddr", Field, 0}, ++ {"Interface.Index", Field, 0}, ++ {"Interface.MTU", Field, 0}, ++ {"Interface.Name", Field, 0}, ++ {"InterfaceAddrs", Func, 0}, ++ {"InterfaceByIndex", Func, 0}, ++ {"InterfaceByName", Func, 0}, ++ {"Interfaces", Func, 0}, ++ {"InvalidAddrError", Type, 0}, ++ {"JoinHostPort", Func, 0}, ++ {"Listen", Func, 0}, ++ {"ListenConfig", Type, 11}, ++ {"ListenConfig.Control", Field, 11}, ++ {"ListenConfig.KeepAlive", Field, 13}, ++ {"ListenIP", Func, 0}, ++ {"ListenMulticastUDP", Func, 0}, ++ {"ListenPacket", Func, 0}, ++ {"ListenTCP", Func, 0}, ++ {"ListenUDP", Func, 0}, ++ {"ListenUnix", Func, 0}, ++ {"ListenUnixgram", Func, 0}, ++ {"Listener", Type, 0}, ++ {"LookupAddr", Func, 0}, ++ {"LookupCNAME", Func, 0}, ++ {"LookupHost", Func, 0}, ++ {"LookupIP", Func, 0}, ++ {"LookupMX", Func, 0}, ++ {"LookupNS", Func, 1}, ++ {"LookupPort", Func, 0}, ++ {"LookupSRV", Func, 0}, ++ {"LookupTXT", Func, 0}, ++ {"MX", Type, 0}, ++ {"MX.Host", Field, 0}, ++ {"MX.Pref", Field, 0}, ++ {"NS", Type, 1}, ++ {"NS.Host", Field, 1}, ++ {"OpError", Type, 0}, ++ {"OpError.Addr", Field, 0}, ++ {"OpError.Err", Field, 0}, ++ {"OpError.Net", Field, 0}, ++ {"OpError.Op", Field, 0}, ++ {"OpError.Source", Field, 5}, ++ {"PacketConn", Type, 0}, ++ {"ParseCIDR", Func, 0}, ++ {"ParseError", Type, 0}, ++ {"ParseError.Text", Field, 0}, ++ {"ParseError.Type", Field, 0}, ++ {"ParseIP", Func, 0}, ++ {"ParseMAC", Func, 0}, ++ {"Pipe", Func, 0}, ++ {"ResolveIPAddr", Func, 0}, ++ {"ResolveTCPAddr", Func, 0}, ++ {"ResolveUDPAddr", Func, 0}, ++ {"ResolveUnixAddr", Func, 0}, ++ {"Resolver", Type, 8}, ++ {"Resolver.Dial", Field, 9}, ++ {"Resolver.PreferGo", Field, 8}, ++ {"Resolver.StrictErrors", Field, 9}, ++ {"SRV", Type, 0}, ++ {"SRV.Port", Field, 0}, ++ {"SRV.Priority", Field, 0}, ++ {"SRV.Target", Field, 0}, ++ {"SRV.Weight", Field, 0}, ++ {"SplitHostPort", Func, 0}, ++ {"TCPAddr", Type, 0}, ++ {"TCPAddr.IP", Field, 0}, ++ {"TCPAddr.Port", Field, 0}, ++ {"TCPAddr.Zone", Field, 1}, ++ {"TCPAddrFromAddrPort", Func, 18}, ++ {"TCPConn", Type, 0}, ++ {"TCPListener", Type, 0}, ++ {"UDPAddr", Type, 0}, ++ {"UDPAddr.IP", Field, 0}, ++ {"UDPAddr.Port", Field, 0}, ++ {"UDPAddr.Zone", Field, 1}, ++ {"UDPAddrFromAddrPort", Func, 18}, ++ {"UDPConn", Type, 0}, ++ {"UnixAddr", Type, 0}, ++ {"UnixAddr.Name", Field, 0}, ++ {"UnixAddr.Net", Field, 0}, ++ {"UnixConn", Type, 0}, ++ {"UnixListener", Type, 0}, ++ {"UnknownNetworkError", Type, 0}, ++ }, ++ "net/http": { ++ {"(*Client).CloseIdleConnections", Method, 12}, ++ {"(*Client).Do", Method, 0}, ++ {"(*Client).Get", Method, 0}, ++ {"(*Client).Head", Method, 0}, ++ {"(*Client).Post", Method, 0}, ++ {"(*Client).PostForm", Method, 0}, ++ {"(*Cookie).String", Method, 0}, ++ {"(*Cookie).Valid", Method, 18}, ++ {"(*MaxBytesError).Error", Method, 19}, ++ {"(*ProtocolError).Error", Method, 0}, ++ {"(*ProtocolError).Is", Method, 21}, ++ {"(*Request).AddCookie", Method, 0}, ++ {"(*Request).BasicAuth", Method, 4}, ++ {"(*Request).Clone", Method, 13}, ++ {"(*Request).Context", Method, 7}, ++ {"(*Request).Cookie", Method, 0}, ++ {"(*Request).Cookies", Method, 0}, ++ {"(*Request).FormFile", Method, 0}, ++ {"(*Request).FormValue", Method, 0}, ++ {"(*Request).MultipartReader", Method, 0}, ++ {"(*Request).ParseForm", Method, 0}, ++ {"(*Request).ParseMultipartForm", Method, 0}, ++ {"(*Request).PathValue", Method, 22}, ++ {"(*Request).PostFormValue", Method, 1}, ++ {"(*Request).ProtoAtLeast", Method, 0}, ++ {"(*Request).Referer", Method, 0}, ++ {"(*Request).SetBasicAuth", Method, 0}, ++ {"(*Request).SetPathValue", Method, 22}, ++ {"(*Request).UserAgent", Method, 0}, ++ {"(*Request).WithContext", Method, 7}, ++ {"(*Request).Write", Method, 0}, ++ {"(*Request).WriteProxy", Method, 0}, ++ {"(*Response).Cookies", Method, 0}, ++ {"(*Response).Location", Method, 0}, ++ {"(*Response).ProtoAtLeast", Method, 0}, ++ {"(*Response).Write", Method, 0}, ++ {"(*ResponseController).EnableFullDuplex", Method, 21}, ++ {"(*ResponseController).Flush", Method, 20}, ++ {"(*ResponseController).Hijack", Method, 20}, ++ {"(*ResponseController).SetReadDeadline", Method, 20}, ++ {"(*ResponseController).SetWriteDeadline", Method, 20}, ++ {"(*ServeMux).Handle", Method, 0}, ++ {"(*ServeMux).HandleFunc", Method, 0}, ++ {"(*ServeMux).Handler", Method, 1}, ++ {"(*ServeMux).ServeHTTP", Method, 0}, ++ {"(*Server).Close", Method, 8}, ++ {"(*Server).ListenAndServe", Method, 0}, ++ {"(*Server).ListenAndServeTLS", Method, 0}, ++ {"(*Server).RegisterOnShutdown", Method, 9}, ++ {"(*Server).Serve", Method, 0}, ++ {"(*Server).ServeTLS", Method, 9}, ++ {"(*Server).SetKeepAlivesEnabled", Method, 3}, ++ {"(*Server).Shutdown", Method, 8}, ++ {"(*Transport).CancelRequest", Method, 1}, ++ {"(*Transport).Clone", Method, 13}, ++ {"(*Transport).CloseIdleConnections", Method, 0}, ++ {"(*Transport).RegisterProtocol", Method, 0}, ++ {"(*Transport).RoundTrip", Method, 0}, ++ {"(ConnState).String", Method, 3}, ++ {"(Dir).Open", Method, 0}, ++ {"(HandlerFunc).ServeHTTP", Method, 0}, ++ {"(Header).Add", Method, 0}, ++ {"(Header).Clone", Method, 13}, ++ {"(Header).Del", Method, 0}, ++ {"(Header).Get", Method, 0}, ++ {"(Header).Set", Method, 0}, ++ {"(Header).Values", Method, 14}, ++ {"(Header).Write", Method, 0}, ++ {"(Header).WriteSubset", Method, 0}, ++ {"AllowQuerySemicolons", Func, 17}, ++ {"CanonicalHeaderKey", Func, 0}, ++ {"Client", Type, 0}, ++ {"Client.CheckRedirect", Field, 0}, ++ {"Client.Jar", Field, 0}, ++ {"Client.Timeout", Field, 3}, ++ {"Client.Transport", Field, 0}, ++ {"CloseNotifier", Type, 1}, ++ {"ConnState", Type, 3}, ++ {"Cookie", Type, 0}, ++ {"Cookie.Domain", Field, 0}, ++ {"Cookie.Expires", Field, 0}, ++ {"Cookie.HttpOnly", Field, 0}, ++ {"Cookie.MaxAge", Field, 0}, ++ {"Cookie.Name", Field, 0}, ++ {"Cookie.Path", Field, 0}, ++ {"Cookie.Raw", Field, 0}, ++ {"Cookie.RawExpires", Field, 0}, ++ {"Cookie.SameSite", Field, 11}, ++ {"Cookie.Secure", Field, 0}, ++ {"Cookie.Unparsed", Field, 0}, ++ {"Cookie.Value", Field, 0}, ++ {"CookieJar", Type, 0}, ++ {"DefaultClient", Var, 0}, ++ {"DefaultMaxHeaderBytes", Const, 0}, ++ {"DefaultMaxIdleConnsPerHost", Const, 0}, ++ {"DefaultServeMux", Var, 0}, ++ {"DefaultTransport", Var, 0}, ++ {"DetectContentType", Func, 0}, ++ {"Dir", Type, 0}, ++ {"ErrAbortHandler", Var, 8}, ++ {"ErrBodyNotAllowed", Var, 0}, ++ {"ErrBodyReadAfterClose", Var, 0}, ++ {"ErrContentLength", Var, 0}, ++ {"ErrHandlerTimeout", Var, 0}, ++ {"ErrHeaderTooLong", Var, 0}, ++ {"ErrHijacked", Var, 0}, ++ {"ErrLineTooLong", Var, 0}, ++ {"ErrMissingBoundary", Var, 0}, ++ {"ErrMissingContentLength", Var, 0}, ++ {"ErrMissingFile", Var, 0}, ++ {"ErrNoCookie", Var, 0}, ++ {"ErrNoLocation", Var, 0}, ++ {"ErrNotMultipart", Var, 0}, ++ {"ErrNotSupported", Var, 0}, ++ {"ErrSchemeMismatch", Var, 21}, ++ {"ErrServerClosed", Var, 8}, ++ {"ErrShortBody", Var, 0}, ++ {"ErrSkipAltProtocol", Var, 6}, ++ {"ErrUnexpectedTrailer", Var, 0}, ++ {"ErrUseLastResponse", Var, 7}, ++ {"ErrWriteAfterFlush", Var, 0}, ++ {"Error", Func, 0}, ++ {"FS", Func, 16}, ++ {"File", Type, 0}, ++ {"FileServer", Func, 0}, ++ {"FileServerFS", Func, 22}, ++ {"FileSystem", Type, 0}, ++ {"Flusher", Type, 0}, ++ {"Get", Func, 0}, ++ {"Handle", Func, 0}, ++ {"HandleFunc", Func, 0}, ++ {"Handler", Type, 0}, ++ {"HandlerFunc", Type, 0}, ++ {"Head", Func, 0}, ++ {"Header", Type, 0}, ++ {"Hijacker", Type, 0}, ++ {"ListenAndServe", Func, 0}, ++ {"ListenAndServeTLS", Func, 0}, ++ {"LocalAddrContextKey", Var, 7}, ++ {"MaxBytesError", Type, 19}, ++ {"MaxBytesError.Limit", Field, 19}, ++ {"MaxBytesHandler", Func, 18}, ++ {"MaxBytesReader", Func, 0}, ++ {"MethodConnect", Const, 6}, ++ {"MethodDelete", Const, 6}, ++ {"MethodGet", Const, 6}, ++ {"MethodHead", Const, 6}, ++ {"MethodOptions", Const, 6}, ++ {"MethodPatch", Const, 6}, ++ {"MethodPost", Const, 6}, ++ {"MethodPut", Const, 6}, ++ {"MethodTrace", Const, 6}, ++ {"NewFileTransport", Func, 0}, ++ {"NewFileTransportFS", Func, 22}, ++ {"NewRequest", Func, 0}, ++ {"NewRequestWithContext", Func, 13}, ++ {"NewResponseController", Func, 20}, ++ {"NewServeMux", Func, 0}, ++ {"NoBody", Var, 8}, ++ {"NotFound", Func, 0}, ++ {"NotFoundHandler", Func, 0}, ++ {"ParseHTTPVersion", Func, 0}, ++ {"ParseTime", Func, 1}, ++ {"Post", Func, 0}, ++ {"PostForm", Func, 0}, ++ {"ProtocolError", Type, 0}, ++ {"ProtocolError.ErrorString", Field, 0}, ++ {"ProxyFromEnvironment", Func, 0}, ++ {"ProxyURL", Func, 0}, ++ {"PushOptions", Type, 8}, ++ {"PushOptions.Header", Field, 8}, ++ {"PushOptions.Method", Field, 8}, ++ {"Pusher", Type, 8}, ++ {"ReadRequest", Func, 0}, ++ {"ReadResponse", Func, 0}, ++ {"Redirect", Func, 0}, ++ {"RedirectHandler", Func, 0}, ++ {"Request", Type, 0}, ++ {"Request.Body", Field, 0}, ++ {"Request.Cancel", Field, 5}, ++ {"Request.Close", Field, 0}, ++ {"Request.ContentLength", Field, 0}, ++ {"Request.Form", Field, 0}, ++ {"Request.GetBody", Field, 8}, ++ {"Request.Header", Field, 0}, ++ {"Request.Host", Field, 0}, ++ {"Request.Method", Field, 0}, ++ {"Request.MultipartForm", Field, 0}, ++ {"Request.PostForm", Field, 1}, ++ {"Request.Proto", Field, 0}, ++ {"Request.ProtoMajor", Field, 0}, ++ {"Request.ProtoMinor", Field, 0}, ++ {"Request.RemoteAddr", Field, 0}, ++ {"Request.RequestURI", Field, 0}, ++ {"Request.Response", Field, 7}, ++ {"Request.TLS", Field, 0}, ++ {"Request.Trailer", Field, 0}, ++ {"Request.TransferEncoding", Field, 0}, ++ {"Request.URL", Field, 0}, ++ {"Response", Type, 0}, ++ {"Response.Body", Field, 0}, ++ {"Response.Close", Field, 0}, ++ {"Response.ContentLength", Field, 0}, ++ {"Response.Header", Field, 0}, ++ {"Response.Proto", Field, 0}, ++ {"Response.ProtoMajor", Field, 0}, ++ {"Response.ProtoMinor", Field, 0}, ++ {"Response.Request", Field, 0}, ++ {"Response.Status", Field, 0}, ++ {"Response.StatusCode", Field, 0}, ++ {"Response.TLS", Field, 3}, ++ {"Response.Trailer", Field, 0}, ++ {"Response.TransferEncoding", Field, 0}, ++ {"Response.Uncompressed", Field, 7}, ++ {"ResponseController", Type, 20}, ++ {"ResponseWriter", Type, 0}, ++ {"RoundTripper", Type, 0}, ++ {"SameSite", Type, 11}, ++ {"SameSiteDefaultMode", Const, 11}, ++ {"SameSiteLaxMode", Const, 11}, ++ {"SameSiteNoneMode", Const, 13}, ++ {"SameSiteStrictMode", Const, 11}, ++ {"Serve", Func, 0}, ++ {"ServeContent", Func, 0}, ++ {"ServeFile", Func, 0}, ++ {"ServeFileFS", Func, 22}, ++ {"ServeMux", Type, 0}, ++ {"ServeTLS", Func, 9}, ++ {"Server", Type, 0}, ++ {"Server.Addr", Field, 0}, ++ {"Server.BaseContext", Field, 13}, ++ {"Server.ConnContext", Field, 13}, ++ {"Server.ConnState", Field, 3}, ++ {"Server.DisableGeneralOptionsHandler", Field, 20}, ++ {"Server.ErrorLog", Field, 3}, ++ {"Server.Handler", Field, 0}, ++ {"Server.IdleTimeout", Field, 8}, ++ {"Server.MaxHeaderBytes", Field, 0}, ++ {"Server.ReadHeaderTimeout", Field, 8}, ++ {"Server.ReadTimeout", Field, 0}, ++ {"Server.TLSConfig", Field, 0}, ++ {"Server.TLSNextProto", Field, 1}, ++ {"Server.WriteTimeout", Field, 0}, ++ {"ServerContextKey", Var, 7}, ++ {"SetCookie", Func, 0}, ++ {"StateActive", Const, 3}, ++ {"StateClosed", Const, 3}, ++ {"StateHijacked", Const, 3}, ++ {"StateIdle", Const, 3}, ++ {"StateNew", Const, 3}, ++ {"StatusAccepted", Const, 0}, ++ {"StatusAlreadyReported", Const, 7}, ++ {"StatusBadGateway", Const, 0}, ++ {"StatusBadRequest", Const, 0}, ++ {"StatusConflict", Const, 0}, ++ {"StatusContinue", Const, 0}, ++ {"StatusCreated", Const, 0}, ++ {"StatusEarlyHints", Const, 13}, ++ {"StatusExpectationFailed", Const, 0}, ++ {"StatusFailedDependency", Const, 7}, ++ {"StatusForbidden", Const, 0}, ++ {"StatusFound", Const, 0}, ++ {"StatusGatewayTimeout", Const, 0}, ++ {"StatusGone", Const, 0}, ++ {"StatusHTTPVersionNotSupported", Const, 0}, ++ {"StatusIMUsed", Const, 7}, ++ {"StatusInsufficientStorage", Const, 7}, ++ {"StatusInternalServerError", Const, 0}, ++ {"StatusLengthRequired", Const, 0}, ++ {"StatusLocked", Const, 7}, ++ {"StatusLoopDetected", Const, 7}, ++ {"StatusMethodNotAllowed", Const, 0}, ++ {"StatusMisdirectedRequest", Const, 11}, ++ {"StatusMovedPermanently", Const, 0}, ++ {"StatusMultiStatus", Const, 7}, ++ {"StatusMultipleChoices", Const, 0}, ++ {"StatusNetworkAuthenticationRequired", Const, 6}, ++ {"StatusNoContent", Const, 0}, ++ {"StatusNonAuthoritativeInfo", Const, 0}, ++ {"StatusNotAcceptable", Const, 0}, ++ {"StatusNotExtended", Const, 7}, ++ {"StatusNotFound", Const, 0}, ++ {"StatusNotImplemented", Const, 0}, ++ {"StatusNotModified", Const, 0}, ++ {"StatusOK", Const, 0}, ++ {"StatusPartialContent", Const, 0}, ++ {"StatusPaymentRequired", Const, 0}, ++ {"StatusPermanentRedirect", Const, 7}, ++ {"StatusPreconditionFailed", Const, 0}, ++ {"StatusPreconditionRequired", Const, 6}, ++ {"StatusProcessing", Const, 7}, ++ {"StatusProxyAuthRequired", Const, 0}, ++ {"StatusRequestEntityTooLarge", Const, 0}, ++ {"StatusRequestHeaderFieldsTooLarge", Const, 6}, ++ {"StatusRequestTimeout", Const, 0}, ++ {"StatusRequestURITooLong", Const, 0}, ++ {"StatusRequestedRangeNotSatisfiable", Const, 0}, ++ {"StatusResetContent", Const, 0}, ++ {"StatusSeeOther", Const, 0}, ++ {"StatusServiceUnavailable", Const, 0}, ++ {"StatusSwitchingProtocols", Const, 0}, ++ {"StatusTeapot", Const, 0}, ++ {"StatusTemporaryRedirect", Const, 0}, ++ {"StatusText", Func, 0}, ++ {"StatusTooEarly", Const, 12}, ++ {"StatusTooManyRequests", Const, 6}, ++ {"StatusUnauthorized", Const, 0}, ++ {"StatusUnavailableForLegalReasons", Const, 6}, ++ {"StatusUnprocessableEntity", Const, 7}, ++ {"StatusUnsupportedMediaType", Const, 0}, ++ {"StatusUpgradeRequired", Const, 7}, ++ {"StatusUseProxy", Const, 0}, ++ {"StatusVariantAlsoNegotiates", Const, 7}, ++ {"StripPrefix", Func, 0}, ++ {"TimeFormat", Const, 0}, ++ {"TimeoutHandler", Func, 0}, ++ {"TrailerPrefix", Const, 8}, ++ {"Transport", Type, 0}, ++ {"Transport.Dial", Field, 0}, ++ {"Transport.DialContext", Field, 7}, ++ {"Transport.DialTLS", Field, 4}, ++ {"Transport.DialTLSContext", Field, 14}, ++ {"Transport.DisableCompression", Field, 0}, ++ {"Transport.DisableKeepAlives", Field, 0}, ++ {"Transport.ExpectContinueTimeout", Field, 6}, ++ {"Transport.ForceAttemptHTTP2", Field, 13}, ++ {"Transport.GetProxyConnectHeader", Field, 16}, ++ {"Transport.IdleConnTimeout", Field, 7}, ++ {"Transport.MaxConnsPerHost", Field, 11}, ++ {"Transport.MaxIdleConns", Field, 7}, ++ {"Transport.MaxIdleConnsPerHost", Field, 0}, ++ {"Transport.MaxResponseHeaderBytes", Field, 7}, ++ {"Transport.OnProxyConnectResponse", Field, 20}, ++ {"Transport.Proxy", Field, 0}, ++ {"Transport.ProxyConnectHeader", Field, 8}, ++ {"Transport.ReadBufferSize", Field, 13}, ++ {"Transport.ResponseHeaderTimeout", Field, 1}, ++ {"Transport.TLSClientConfig", Field, 0}, ++ {"Transport.TLSHandshakeTimeout", Field, 3}, ++ {"Transport.TLSNextProto", Field, 6}, ++ {"Transport.WriteBufferSize", Field, 13}, ++ }, ++ "net/http/cgi": { ++ {"(*Handler).ServeHTTP", Method, 0}, ++ {"Handler", Type, 0}, ++ {"Handler.Args", Field, 0}, ++ {"Handler.Dir", Field, 0}, ++ {"Handler.Env", Field, 0}, ++ {"Handler.InheritEnv", Field, 0}, ++ {"Handler.Logger", Field, 0}, ++ {"Handler.Path", Field, 0}, ++ {"Handler.PathLocationHandler", Field, 0}, ++ {"Handler.Root", Field, 0}, ++ {"Handler.Stderr", Field, 7}, ++ {"Request", Func, 0}, ++ {"RequestFromMap", Func, 0}, ++ {"Serve", Func, 0}, ++ }, ++ "net/http/cookiejar": { ++ {"(*Jar).Cookies", Method, 1}, ++ {"(*Jar).SetCookies", Method, 1}, ++ {"Jar", Type, 1}, ++ {"New", Func, 1}, ++ {"Options", Type, 1}, ++ {"Options.PublicSuffixList", Field, 1}, ++ {"PublicSuffixList", Type, 1}, ++ }, ++ "net/http/fcgi": { ++ {"ErrConnClosed", Var, 5}, ++ {"ErrRequestAborted", Var, 5}, ++ {"ProcessEnv", Func, 9}, ++ {"Serve", Func, 0}, ++ }, ++ "net/http/httptest": { ++ {"(*ResponseRecorder).Flush", Method, 0}, ++ {"(*ResponseRecorder).Header", Method, 0}, ++ {"(*ResponseRecorder).Result", Method, 7}, ++ {"(*ResponseRecorder).Write", Method, 0}, ++ {"(*ResponseRecorder).WriteHeader", Method, 0}, ++ {"(*ResponseRecorder).WriteString", Method, 6}, ++ {"(*Server).Certificate", Method, 9}, ++ {"(*Server).Client", Method, 9}, ++ {"(*Server).Close", Method, 0}, ++ {"(*Server).CloseClientConnections", Method, 0}, ++ {"(*Server).Start", Method, 0}, ++ {"(*Server).StartTLS", Method, 0}, ++ {"DefaultRemoteAddr", Const, 0}, ++ {"NewRecorder", Func, 0}, ++ {"NewRequest", Func, 7}, ++ {"NewServer", Func, 0}, ++ {"NewTLSServer", Func, 0}, ++ {"NewUnstartedServer", Func, 0}, ++ {"ResponseRecorder", Type, 0}, ++ {"ResponseRecorder.Body", Field, 0}, ++ {"ResponseRecorder.Code", Field, 0}, ++ {"ResponseRecorder.Flushed", Field, 0}, ++ {"ResponseRecorder.HeaderMap", Field, 0}, ++ {"Server", Type, 0}, ++ {"Server.Config", Field, 0}, ++ {"Server.EnableHTTP2", Field, 14}, ++ {"Server.Listener", Field, 0}, ++ {"Server.TLS", Field, 0}, ++ {"Server.URL", Field, 0}, ++ }, ++ "net/http/httptrace": { ++ {"ClientTrace", Type, 7}, ++ {"ClientTrace.ConnectDone", Field, 7}, ++ {"ClientTrace.ConnectStart", Field, 7}, ++ {"ClientTrace.DNSDone", Field, 7}, ++ {"ClientTrace.DNSStart", Field, 7}, ++ {"ClientTrace.GetConn", Field, 7}, ++ {"ClientTrace.Got100Continue", Field, 7}, ++ {"ClientTrace.Got1xxResponse", Field, 11}, ++ {"ClientTrace.GotConn", Field, 7}, ++ {"ClientTrace.GotFirstResponseByte", Field, 7}, ++ {"ClientTrace.PutIdleConn", Field, 7}, ++ {"ClientTrace.TLSHandshakeDone", Field, 8}, ++ {"ClientTrace.TLSHandshakeStart", Field, 8}, ++ {"ClientTrace.Wait100Continue", Field, 7}, ++ {"ClientTrace.WroteHeaderField", Field, 11}, ++ {"ClientTrace.WroteHeaders", Field, 7}, ++ {"ClientTrace.WroteRequest", Field, 7}, ++ {"ContextClientTrace", Func, 7}, ++ {"DNSDoneInfo", Type, 7}, ++ {"DNSDoneInfo.Addrs", Field, 7}, ++ {"DNSDoneInfo.Coalesced", Field, 7}, ++ {"DNSDoneInfo.Err", Field, 7}, ++ {"DNSStartInfo", Type, 7}, ++ {"DNSStartInfo.Host", Field, 7}, ++ {"GotConnInfo", Type, 7}, ++ {"GotConnInfo.Conn", Field, 7}, ++ {"GotConnInfo.IdleTime", Field, 7}, ++ {"GotConnInfo.Reused", Field, 7}, ++ {"GotConnInfo.WasIdle", Field, 7}, ++ {"WithClientTrace", Func, 7}, ++ {"WroteRequestInfo", Type, 7}, ++ {"WroteRequestInfo.Err", Field, 7}, ++ }, ++ "net/http/httputil": { ++ {"(*ClientConn).Close", Method, 0}, ++ {"(*ClientConn).Do", Method, 0}, ++ {"(*ClientConn).Hijack", Method, 0}, ++ {"(*ClientConn).Pending", Method, 0}, ++ {"(*ClientConn).Read", Method, 0}, ++ {"(*ClientConn).Write", Method, 0}, ++ {"(*ProxyRequest).SetURL", Method, 20}, ++ {"(*ProxyRequest).SetXForwarded", Method, 20}, ++ {"(*ReverseProxy).ServeHTTP", Method, 0}, ++ {"(*ServerConn).Close", Method, 0}, ++ {"(*ServerConn).Hijack", Method, 0}, ++ {"(*ServerConn).Pending", Method, 0}, ++ {"(*ServerConn).Read", Method, 0}, ++ {"(*ServerConn).Write", Method, 0}, ++ {"BufferPool", Type, 6}, ++ {"ClientConn", Type, 0}, ++ {"DumpRequest", Func, 0}, ++ {"DumpRequestOut", Func, 0}, ++ {"DumpResponse", Func, 0}, ++ {"ErrClosed", Var, 0}, ++ {"ErrLineTooLong", Var, 0}, ++ {"ErrPersistEOF", Var, 0}, ++ {"ErrPipeline", Var, 0}, ++ {"NewChunkedReader", Func, 0}, ++ {"NewChunkedWriter", Func, 0}, ++ {"NewClientConn", Func, 0}, ++ {"NewProxyClientConn", Func, 0}, ++ {"NewServerConn", Func, 0}, ++ {"NewSingleHostReverseProxy", Func, 0}, ++ {"ProxyRequest", Type, 20}, ++ {"ProxyRequest.In", Field, 20}, ++ {"ProxyRequest.Out", Field, 20}, ++ {"ReverseProxy", Type, 0}, ++ {"ReverseProxy.BufferPool", Field, 6}, ++ {"ReverseProxy.Director", Field, 0}, ++ {"ReverseProxy.ErrorHandler", Field, 11}, ++ {"ReverseProxy.ErrorLog", Field, 4}, ++ {"ReverseProxy.FlushInterval", Field, 0}, ++ {"ReverseProxy.ModifyResponse", Field, 8}, ++ {"ReverseProxy.Rewrite", Field, 20}, ++ {"ReverseProxy.Transport", Field, 0}, ++ {"ServerConn", Type, 0}, ++ }, ++ "net/http/pprof": { ++ {"Cmdline", Func, 0}, ++ {"Handler", Func, 0}, ++ {"Index", Func, 0}, ++ {"Profile", Func, 0}, ++ {"Symbol", Func, 0}, ++ {"Trace", Func, 5}, ++ }, ++ "net/mail": { ++ {"(*Address).String", Method, 0}, ++ {"(*AddressParser).Parse", Method, 5}, ++ {"(*AddressParser).ParseList", Method, 5}, ++ {"(Header).AddressList", Method, 0}, ++ {"(Header).Date", Method, 0}, ++ {"(Header).Get", Method, 0}, ++ {"Address", Type, 0}, ++ {"Address.Address", Field, 0}, ++ {"Address.Name", Field, 0}, ++ {"AddressParser", Type, 5}, ++ {"AddressParser.WordDecoder", Field, 5}, ++ {"ErrHeaderNotPresent", Var, 0}, ++ {"Header", Type, 0}, ++ {"Message", Type, 0}, ++ {"Message.Body", Field, 0}, ++ {"Message.Header", Field, 0}, ++ {"ParseAddress", Func, 1}, ++ {"ParseAddressList", Func, 1}, ++ {"ParseDate", Func, 8}, ++ {"ReadMessage", Func, 0}, ++ }, ++ "net/netip": { ++ {"(*Addr).UnmarshalBinary", Method, 18}, ++ {"(*Addr).UnmarshalText", Method, 18}, ++ {"(*AddrPort).UnmarshalBinary", Method, 18}, ++ {"(*AddrPort).UnmarshalText", Method, 18}, ++ {"(*Prefix).UnmarshalBinary", Method, 18}, ++ {"(*Prefix).UnmarshalText", Method, 18}, ++ {"(Addr).AppendTo", Method, 18}, ++ {"(Addr).As16", Method, 18}, ++ {"(Addr).As4", Method, 18}, ++ {"(Addr).AsSlice", Method, 18}, ++ {"(Addr).BitLen", Method, 18}, ++ {"(Addr).Compare", Method, 18}, ++ {"(Addr).Is4", Method, 18}, ++ {"(Addr).Is4In6", Method, 18}, ++ {"(Addr).Is6", Method, 18}, ++ {"(Addr).IsGlobalUnicast", Method, 18}, ++ {"(Addr).IsInterfaceLocalMulticast", Method, 18}, ++ {"(Addr).IsLinkLocalMulticast", Method, 18}, ++ {"(Addr).IsLinkLocalUnicast", Method, 18}, ++ {"(Addr).IsLoopback", Method, 18}, ++ {"(Addr).IsMulticast", Method, 18}, ++ {"(Addr).IsPrivate", Method, 18}, ++ {"(Addr).IsUnspecified", Method, 18}, ++ {"(Addr).IsValid", Method, 18}, ++ {"(Addr).Less", Method, 18}, ++ {"(Addr).MarshalBinary", Method, 18}, ++ {"(Addr).MarshalText", Method, 18}, ++ {"(Addr).Next", Method, 18}, ++ {"(Addr).Prefix", Method, 18}, ++ {"(Addr).Prev", Method, 18}, ++ {"(Addr).String", Method, 18}, ++ {"(Addr).StringExpanded", Method, 18}, ++ {"(Addr).Unmap", Method, 18}, ++ {"(Addr).WithZone", Method, 18}, ++ {"(Addr).Zone", Method, 18}, ++ {"(AddrPort).Addr", Method, 18}, ++ {"(AddrPort).AppendTo", Method, 18}, ++ {"(AddrPort).Compare", Method, 22}, ++ {"(AddrPort).IsValid", Method, 18}, ++ {"(AddrPort).MarshalBinary", Method, 18}, ++ {"(AddrPort).MarshalText", Method, 18}, ++ {"(AddrPort).Port", Method, 18}, ++ {"(AddrPort).String", Method, 18}, ++ {"(Prefix).Addr", Method, 18}, ++ {"(Prefix).AppendTo", Method, 18}, ++ {"(Prefix).Bits", Method, 18}, ++ {"(Prefix).Contains", Method, 18}, ++ {"(Prefix).IsSingleIP", Method, 18}, ++ {"(Prefix).IsValid", Method, 18}, ++ {"(Prefix).MarshalBinary", Method, 18}, ++ {"(Prefix).MarshalText", Method, 18}, ++ {"(Prefix).Masked", Method, 18}, ++ {"(Prefix).Overlaps", Method, 18}, ++ {"(Prefix).String", Method, 18}, ++ {"Addr", Type, 18}, ++ {"AddrFrom16", Func, 18}, ++ {"AddrFrom4", Func, 18}, ++ {"AddrFromSlice", Func, 18}, ++ {"AddrPort", Type, 18}, ++ {"AddrPortFrom", Func, 18}, ++ {"IPv4Unspecified", Func, 18}, ++ {"IPv6LinkLocalAllNodes", Func, 18}, ++ {"IPv6LinkLocalAllRouters", Func, 20}, ++ {"IPv6Loopback", Func, 20}, ++ {"IPv6Unspecified", Func, 18}, ++ {"MustParseAddr", Func, 18}, ++ {"MustParseAddrPort", Func, 18}, ++ {"MustParsePrefix", Func, 18}, ++ {"ParseAddr", Func, 18}, ++ {"ParseAddrPort", Func, 18}, ++ {"ParsePrefix", Func, 18}, ++ {"Prefix", Type, 18}, ++ {"PrefixFrom", Func, 18}, ++ }, ++ "net/rpc": { ++ {"(*Client).Call", Method, 0}, ++ {"(*Client).Close", Method, 0}, ++ {"(*Client).Go", Method, 0}, ++ {"(*Server).Accept", Method, 0}, ++ {"(*Server).HandleHTTP", Method, 0}, ++ {"(*Server).Register", Method, 0}, ++ {"(*Server).RegisterName", Method, 0}, ++ {"(*Server).ServeCodec", Method, 0}, ++ {"(*Server).ServeConn", Method, 0}, ++ {"(*Server).ServeHTTP", Method, 0}, ++ {"(*Server).ServeRequest", Method, 0}, ++ {"(ServerError).Error", Method, 0}, ++ {"Accept", Func, 0}, ++ {"Call", Type, 0}, ++ {"Call.Args", Field, 0}, ++ {"Call.Done", Field, 0}, ++ {"Call.Error", Field, 0}, ++ {"Call.Reply", Field, 0}, ++ {"Call.ServiceMethod", Field, 0}, ++ {"Client", Type, 0}, ++ {"ClientCodec", Type, 0}, ++ {"DefaultDebugPath", Const, 0}, ++ {"DefaultRPCPath", Const, 0}, ++ {"DefaultServer", Var, 0}, ++ {"Dial", Func, 0}, ++ {"DialHTTP", Func, 0}, ++ {"DialHTTPPath", Func, 0}, ++ {"ErrShutdown", Var, 0}, ++ {"HandleHTTP", Func, 0}, ++ {"NewClient", Func, 0}, ++ {"NewClientWithCodec", Func, 0}, ++ {"NewServer", Func, 0}, ++ {"Register", Func, 0}, ++ {"RegisterName", Func, 0}, ++ {"Request", Type, 0}, ++ {"Request.Seq", Field, 0}, ++ {"Request.ServiceMethod", Field, 0}, ++ {"Response", Type, 0}, ++ {"Response.Error", Field, 0}, ++ {"Response.Seq", Field, 0}, ++ {"Response.ServiceMethod", Field, 0}, ++ {"ServeCodec", Func, 0}, ++ {"ServeConn", Func, 0}, ++ {"ServeRequest", Func, 0}, ++ {"Server", Type, 0}, ++ {"ServerCodec", Type, 0}, ++ {"ServerError", Type, 0}, ++ }, ++ "net/rpc/jsonrpc": { ++ {"Dial", Func, 0}, ++ {"NewClient", Func, 0}, ++ {"NewClientCodec", Func, 0}, ++ {"NewServerCodec", Func, 0}, ++ {"ServeConn", Func, 0}, ++ }, ++ "net/smtp": { ++ {"(*Client).Auth", Method, 0}, ++ {"(*Client).Close", Method, 2}, ++ {"(*Client).Data", Method, 0}, ++ {"(*Client).Extension", Method, 0}, ++ {"(*Client).Hello", Method, 1}, ++ {"(*Client).Mail", Method, 0}, ++ {"(*Client).Noop", Method, 10}, ++ {"(*Client).Quit", Method, 0}, ++ {"(*Client).Rcpt", Method, 0}, ++ {"(*Client).Reset", Method, 0}, ++ {"(*Client).StartTLS", Method, 0}, ++ {"(*Client).TLSConnectionState", Method, 5}, ++ {"(*Client).Verify", Method, 0}, ++ {"Auth", Type, 0}, ++ {"CRAMMD5Auth", Func, 0}, ++ {"Client", Type, 0}, ++ {"Client.Text", Field, 0}, ++ {"Dial", Func, 0}, ++ {"NewClient", Func, 0}, ++ {"PlainAuth", Func, 0}, ++ {"SendMail", Func, 0}, ++ {"ServerInfo", Type, 0}, ++ {"ServerInfo.Auth", Field, 0}, ++ {"ServerInfo.Name", Field, 0}, ++ {"ServerInfo.TLS", Field, 0}, ++ }, ++ "net/textproto": { ++ {"(*Conn).Close", Method, 0}, ++ {"(*Conn).Cmd", Method, 0}, ++ {"(*Conn).DotReader", Method, 0}, ++ {"(*Conn).DotWriter", Method, 0}, ++ {"(*Conn).EndRequest", Method, 0}, ++ {"(*Conn).EndResponse", Method, 0}, ++ {"(*Conn).Next", Method, 0}, ++ {"(*Conn).PrintfLine", Method, 0}, ++ {"(*Conn).ReadCodeLine", Method, 0}, ++ {"(*Conn).ReadContinuedLine", Method, 0}, ++ {"(*Conn).ReadContinuedLineBytes", Method, 0}, ++ {"(*Conn).ReadDotBytes", Method, 0}, ++ {"(*Conn).ReadDotLines", Method, 0}, ++ {"(*Conn).ReadLine", Method, 0}, ++ {"(*Conn).ReadLineBytes", Method, 0}, ++ {"(*Conn).ReadMIMEHeader", Method, 0}, ++ {"(*Conn).ReadResponse", Method, 0}, ++ {"(*Conn).StartRequest", Method, 0}, ++ {"(*Conn).StartResponse", Method, 0}, ++ {"(*Error).Error", Method, 0}, ++ {"(*Pipeline).EndRequest", Method, 0}, ++ {"(*Pipeline).EndResponse", Method, 0}, ++ {"(*Pipeline).Next", Method, 0}, ++ {"(*Pipeline).StartRequest", Method, 0}, ++ {"(*Pipeline).StartResponse", Method, 0}, ++ {"(*Reader).DotReader", Method, 0}, ++ {"(*Reader).ReadCodeLine", Method, 0}, ++ {"(*Reader).ReadContinuedLine", Method, 0}, ++ {"(*Reader).ReadContinuedLineBytes", Method, 0}, ++ {"(*Reader).ReadDotBytes", Method, 0}, ++ {"(*Reader).ReadDotLines", Method, 0}, ++ {"(*Reader).ReadLine", Method, 0}, ++ {"(*Reader).ReadLineBytes", Method, 0}, ++ {"(*Reader).ReadMIMEHeader", Method, 0}, ++ {"(*Reader).ReadResponse", Method, 0}, ++ {"(*Writer).DotWriter", Method, 0}, ++ {"(*Writer).PrintfLine", Method, 0}, ++ {"(MIMEHeader).Add", Method, 0}, ++ {"(MIMEHeader).Del", Method, 0}, ++ {"(MIMEHeader).Get", Method, 0}, ++ {"(MIMEHeader).Set", Method, 0}, ++ {"(MIMEHeader).Values", Method, 14}, ++ {"(ProtocolError).Error", Method, 0}, ++ {"CanonicalMIMEHeaderKey", Func, 0}, ++ {"Conn", Type, 0}, ++ {"Conn.Pipeline", Field, 0}, ++ {"Conn.Reader", Field, 0}, ++ {"Conn.Writer", Field, 0}, ++ {"Dial", Func, 0}, ++ {"Error", Type, 0}, ++ {"Error.Code", Field, 0}, ++ {"Error.Msg", Field, 0}, ++ {"MIMEHeader", Type, 0}, ++ {"NewConn", Func, 0}, ++ {"NewReader", Func, 0}, ++ {"NewWriter", Func, 0}, ++ {"Pipeline", Type, 0}, ++ {"ProtocolError", Type, 0}, ++ {"Reader", Type, 0}, ++ {"Reader.R", Field, 0}, ++ {"TrimBytes", Func, 1}, ++ {"TrimString", Func, 1}, ++ {"Writer", Type, 0}, ++ {"Writer.W", Field, 0}, ++ }, ++ "net/url": { ++ {"(*Error).Error", Method, 0}, ++ {"(*Error).Temporary", Method, 6}, ++ {"(*Error).Timeout", Method, 6}, ++ {"(*Error).Unwrap", Method, 13}, ++ {"(*URL).EscapedFragment", Method, 15}, ++ {"(*URL).EscapedPath", Method, 5}, ++ {"(*URL).Hostname", Method, 8}, ++ {"(*URL).IsAbs", Method, 0}, ++ {"(*URL).JoinPath", Method, 19}, ++ {"(*URL).MarshalBinary", Method, 8}, ++ {"(*URL).Parse", Method, 0}, ++ {"(*URL).Port", Method, 8}, ++ {"(*URL).Query", Method, 0}, ++ {"(*URL).Redacted", Method, 15}, ++ {"(*URL).RequestURI", Method, 0}, ++ {"(*URL).ResolveReference", Method, 0}, ++ {"(*URL).String", Method, 0}, ++ {"(*URL).UnmarshalBinary", Method, 8}, ++ {"(*Userinfo).Password", Method, 0}, ++ {"(*Userinfo).String", Method, 0}, ++ {"(*Userinfo).Username", Method, 0}, ++ {"(EscapeError).Error", Method, 0}, ++ {"(InvalidHostError).Error", Method, 6}, ++ {"(Values).Add", Method, 0}, ++ {"(Values).Del", Method, 0}, ++ {"(Values).Encode", Method, 0}, ++ {"(Values).Get", Method, 0}, ++ {"(Values).Has", Method, 17}, ++ {"(Values).Set", Method, 0}, ++ {"Error", Type, 0}, ++ {"Error.Err", Field, 0}, ++ {"Error.Op", Field, 0}, ++ {"Error.URL", Field, 0}, ++ {"EscapeError", Type, 0}, ++ {"InvalidHostError", Type, 6}, ++ {"JoinPath", Func, 19}, ++ {"Parse", Func, 0}, ++ {"ParseQuery", Func, 0}, ++ {"ParseRequestURI", Func, 0}, ++ {"PathEscape", Func, 8}, ++ {"PathUnescape", Func, 8}, ++ {"QueryEscape", Func, 0}, ++ {"QueryUnescape", Func, 0}, ++ {"URL", Type, 0}, ++ {"URL.ForceQuery", Field, 7}, ++ {"URL.Fragment", Field, 0}, ++ {"URL.Host", Field, 0}, ++ {"URL.OmitHost", Field, 19}, ++ {"URL.Opaque", Field, 0}, ++ {"URL.Path", Field, 0}, ++ {"URL.RawFragment", Field, 15}, ++ {"URL.RawPath", Field, 5}, ++ {"URL.RawQuery", Field, 0}, ++ {"URL.Scheme", Field, 0}, ++ {"URL.User", Field, 0}, ++ {"User", Func, 0}, ++ {"UserPassword", Func, 0}, ++ {"Userinfo", Type, 0}, ++ {"Values", Type, 0}, ++ }, ++ "os": { ++ {"(*File).Chdir", Method, 0}, ++ {"(*File).Chmod", Method, 0}, ++ {"(*File).Chown", Method, 0}, ++ {"(*File).Close", Method, 0}, ++ {"(*File).Fd", Method, 0}, ++ {"(*File).Name", Method, 0}, ++ {"(*File).Read", Method, 0}, ++ {"(*File).ReadAt", Method, 0}, ++ {"(*File).ReadDir", Method, 16}, ++ {"(*File).ReadFrom", Method, 15}, ++ {"(*File).Readdir", Method, 0}, ++ {"(*File).Readdirnames", Method, 0}, ++ {"(*File).Seek", Method, 0}, ++ {"(*File).SetDeadline", Method, 10}, ++ {"(*File).SetReadDeadline", Method, 10}, ++ {"(*File).SetWriteDeadline", Method, 10}, ++ {"(*File).Stat", Method, 0}, ++ {"(*File).Sync", Method, 0}, ++ {"(*File).SyscallConn", Method, 12}, ++ {"(*File).Truncate", Method, 0}, ++ {"(*File).Write", Method, 0}, ++ {"(*File).WriteAt", Method, 0}, ++ {"(*File).WriteString", Method, 0}, ++ {"(*File).WriteTo", Method, 22}, ++ {"(*LinkError).Error", Method, 0}, ++ {"(*LinkError).Unwrap", Method, 13}, ++ {"(*PathError).Error", Method, 0}, ++ {"(*PathError).Timeout", Method, 10}, ++ {"(*PathError).Unwrap", Method, 13}, ++ {"(*Process).Kill", Method, 0}, ++ {"(*Process).Release", Method, 0}, ++ {"(*Process).Signal", Method, 0}, ++ {"(*Process).Wait", Method, 0}, ++ {"(*ProcessState).ExitCode", Method, 12}, ++ {"(*ProcessState).Exited", Method, 0}, ++ {"(*ProcessState).Pid", Method, 0}, ++ {"(*ProcessState).String", Method, 0}, ++ {"(*ProcessState).Success", Method, 0}, ++ {"(*ProcessState).Sys", Method, 0}, ++ {"(*ProcessState).SysUsage", Method, 0}, ++ {"(*ProcessState).SystemTime", Method, 0}, ++ {"(*ProcessState).UserTime", Method, 0}, ++ {"(*SyscallError).Error", Method, 0}, ++ {"(*SyscallError).Timeout", Method, 10}, ++ {"(*SyscallError).Unwrap", Method, 13}, ++ {"(FileMode).IsDir", Method, 0}, ++ {"(FileMode).IsRegular", Method, 1}, ++ {"(FileMode).Perm", Method, 0}, ++ {"(FileMode).String", Method, 0}, ++ {"Args", Var, 0}, ++ {"Chdir", Func, 0}, ++ {"Chmod", Func, 0}, ++ {"Chown", Func, 0}, ++ {"Chtimes", Func, 0}, ++ {"Clearenv", Func, 0}, ++ {"Create", Func, 0}, ++ {"CreateTemp", Func, 16}, ++ {"DevNull", Const, 0}, ++ {"DirEntry", Type, 16}, ++ {"DirFS", Func, 16}, ++ {"Environ", Func, 0}, ++ {"ErrClosed", Var, 8}, ++ {"ErrDeadlineExceeded", Var, 15}, ++ {"ErrExist", Var, 0}, ++ {"ErrInvalid", Var, 0}, ++ {"ErrNoDeadline", Var, 10}, ++ {"ErrNotExist", Var, 0}, ++ {"ErrPermission", Var, 0}, ++ {"ErrProcessDone", Var, 16}, ++ {"Executable", Func, 8}, ++ {"Exit", Func, 0}, ++ {"Expand", Func, 0}, ++ {"ExpandEnv", Func, 0}, ++ {"File", Type, 0}, ++ {"FileInfo", Type, 0}, ++ {"FileMode", Type, 0}, ++ {"FindProcess", Func, 0}, ++ {"Getegid", Func, 0}, ++ {"Getenv", Func, 0}, ++ {"Geteuid", Func, 0}, ++ {"Getgid", Func, 0}, ++ {"Getgroups", Func, 0}, ++ {"Getpagesize", Func, 0}, ++ {"Getpid", Func, 0}, ++ {"Getppid", Func, 0}, ++ {"Getuid", Func, 0}, ++ {"Getwd", Func, 0}, ++ {"Hostname", Func, 0}, ++ {"Interrupt", Var, 0}, ++ {"IsExist", Func, 0}, ++ {"IsNotExist", Func, 0}, ++ {"IsPathSeparator", Func, 0}, ++ {"IsPermission", Func, 0}, ++ {"IsTimeout", Func, 10}, ++ {"Kill", Var, 0}, ++ {"Lchown", Func, 0}, ++ {"Link", Func, 0}, ++ {"LinkError", Type, 0}, ++ {"LinkError.Err", Field, 0}, ++ {"LinkError.New", Field, 0}, ++ {"LinkError.Old", Field, 0}, ++ {"LinkError.Op", Field, 0}, ++ {"LookupEnv", Func, 5}, ++ {"Lstat", Func, 0}, ++ {"Mkdir", Func, 0}, ++ {"MkdirAll", Func, 0}, ++ {"MkdirTemp", Func, 16}, ++ {"ModeAppend", Const, 0}, ++ {"ModeCharDevice", Const, 0}, ++ {"ModeDevice", Const, 0}, ++ {"ModeDir", Const, 0}, ++ {"ModeExclusive", Const, 0}, ++ {"ModeIrregular", Const, 11}, ++ {"ModeNamedPipe", Const, 0}, ++ {"ModePerm", Const, 0}, ++ {"ModeSetgid", Const, 0}, ++ {"ModeSetuid", Const, 0}, ++ {"ModeSocket", Const, 0}, ++ {"ModeSticky", Const, 0}, ++ {"ModeSymlink", Const, 0}, ++ {"ModeTemporary", Const, 0}, ++ {"ModeType", Const, 0}, ++ {"NewFile", Func, 0}, ++ {"NewSyscallError", Func, 0}, ++ {"O_APPEND", Const, 0}, ++ {"O_CREATE", Const, 0}, ++ {"O_EXCL", Const, 0}, ++ {"O_RDONLY", Const, 0}, ++ {"O_RDWR", Const, 0}, ++ {"O_SYNC", Const, 0}, ++ {"O_TRUNC", Const, 0}, ++ {"O_WRONLY", Const, 0}, ++ {"Open", Func, 0}, ++ {"OpenFile", Func, 0}, ++ {"PathError", Type, 0}, ++ {"PathError.Err", Field, 0}, ++ {"PathError.Op", Field, 0}, ++ {"PathError.Path", Field, 0}, ++ {"PathListSeparator", Const, 0}, ++ {"PathSeparator", Const, 0}, ++ {"Pipe", Func, 0}, ++ {"ProcAttr", Type, 0}, ++ {"ProcAttr.Dir", Field, 0}, ++ {"ProcAttr.Env", Field, 0}, ++ {"ProcAttr.Files", Field, 0}, ++ {"ProcAttr.Sys", Field, 0}, ++ {"Process", Type, 0}, ++ {"Process.Pid", Field, 0}, ++ {"ProcessState", Type, 0}, ++ {"ReadDir", Func, 16}, ++ {"ReadFile", Func, 16}, ++ {"Readlink", Func, 0}, ++ {"Remove", Func, 0}, ++ {"RemoveAll", Func, 0}, ++ {"Rename", Func, 0}, ++ {"SEEK_CUR", Const, 0}, ++ {"SEEK_END", Const, 0}, ++ {"SEEK_SET", Const, 0}, ++ {"SameFile", Func, 0}, ++ {"Setenv", Func, 0}, ++ {"Signal", Type, 0}, ++ {"StartProcess", Func, 0}, ++ {"Stat", Func, 0}, ++ {"Stderr", Var, 0}, ++ {"Stdin", Var, 0}, ++ {"Stdout", Var, 0}, ++ {"Symlink", Func, 0}, ++ {"SyscallError", Type, 0}, ++ {"SyscallError.Err", Field, 0}, ++ {"SyscallError.Syscall", Field, 0}, ++ {"TempDir", Func, 0}, ++ {"Truncate", Func, 0}, ++ {"Unsetenv", Func, 4}, ++ {"UserCacheDir", Func, 11}, ++ {"UserConfigDir", Func, 13}, ++ {"UserHomeDir", Func, 12}, ++ {"WriteFile", Func, 16}, ++ }, ++ "os/exec": { ++ {"(*Cmd).CombinedOutput", Method, 0}, ++ {"(*Cmd).Environ", Method, 19}, ++ {"(*Cmd).Output", Method, 0}, ++ {"(*Cmd).Run", Method, 0}, ++ {"(*Cmd).Start", Method, 0}, ++ {"(*Cmd).StderrPipe", Method, 0}, ++ {"(*Cmd).StdinPipe", Method, 0}, ++ {"(*Cmd).StdoutPipe", Method, 0}, ++ {"(*Cmd).String", Method, 13}, ++ {"(*Cmd).Wait", Method, 0}, ++ {"(*Error).Error", Method, 0}, ++ {"(*Error).Unwrap", Method, 13}, ++ {"(*ExitError).Error", Method, 0}, ++ {"(ExitError).ExitCode", Method, 12}, ++ {"(ExitError).Exited", Method, 0}, ++ {"(ExitError).Pid", Method, 0}, ++ {"(ExitError).String", Method, 0}, ++ {"(ExitError).Success", Method, 0}, ++ {"(ExitError).Sys", Method, 0}, ++ {"(ExitError).SysUsage", Method, 0}, ++ {"(ExitError).SystemTime", Method, 0}, ++ {"(ExitError).UserTime", Method, 0}, ++ {"Cmd", Type, 0}, ++ {"Cmd.Args", Field, 0}, ++ {"Cmd.Cancel", Field, 20}, ++ {"Cmd.Dir", Field, 0}, ++ {"Cmd.Env", Field, 0}, ++ {"Cmd.Err", Field, 19}, ++ {"Cmd.ExtraFiles", Field, 0}, ++ {"Cmd.Path", Field, 0}, ++ {"Cmd.Process", Field, 0}, ++ {"Cmd.ProcessState", Field, 0}, ++ {"Cmd.Stderr", Field, 0}, ++ {"Cmd.Stdin", Field, 0}, ++ {"Cmd.Stdout", Field, 0}, ++ {"Cmd.SysProcAttr", Field, 0}, ++ {"Cmd.WaitDelay", Field, 20}, ++ {"Command", Func, 0}, ++ {"CommandContext", Func, 7}, ++ {"ErrDot", Var, 19}, ++ {"ErrNotFound", Var, 0}, ++ {"ErrWaitDelay", Var, 20}, ++ {"Error", Type, 0}, ++ {"Error.Err", Field, 0}, ++ {"Error.Name", Field, 0}, ++ {"ExitError", Type, 0}, ++ {"ExitError.ProcessState", Field, 0}, ++ {"ExitError.Stderr", Field, 6}, ++ {"LookPath", Func, 0}, ++ }, ++ "os/signal": { ++ {"Ignore", Func, 5}, ++ {"Ignored", Func, 11}, ++ {"Notify", Func, 0}, ++ {"NotifyContext", Func, 16}, ++ {"Reset", Func, 5}, ++ {"Stop", Func, 1}, ++ }, ++ "os/user": { ++ {"(*User).GroupIds", Method, 7}, ++ {"(UnknownGroupError).Error", Method, 7}, ++ {"(UnknownGroupIdError).Error", Method, 7}, ++ {"(UnknownUserError).Error", Method, 0}, ++ {"(UnknownUserIdError).Error", Method, 0}, ++ {"Current", Func, 0}, ++ {"Group", Type, 7}, ++ {"Group.Gid", Field, 7}, ++ {"Group.Name", Field, 7}, ++ {"Lookup", Func, 0}, ++ {"LookupGroup", Func, 7}, ++ {"LookupGroupId", Func, 7}, ++ {"LookupId", Func, 0}, ++ {"UnknownGroupError", Type, 7}, ++ {"UnknownGroupIdError", Type, 7}, ++ {"UnknownUserError", Type, 0}, ++ {"UnknownUserIdError", Type, 0}, ++ {"User", Type, 0}, ++ {"User.Gid", Field, 0}, ++ {"User.HomeDir", Field, 0}, ++ {"User.Name", Field, 0}, ++ {"User.Uid", Field, 0}, ++ {"User.Username", Field, 0}, ++ }, ++ "path": { ++ {"Base", Func, 0}, ++ {"Clean", Func, 0}, ++ {"Dir", Func, 0}, ++ {"ErrBadPattern", Var, 0}, ++ {"Ext", Func, 0}, ++ {"IsAbs", Func, 0}, ++ {"Join", Func, 0}, ++ {"Match", Func, 0}, ++ {"Split", Func, 0}, ++ }, ++ "path/filepath": { ++ {"Abs", Func, 0}, ++ {"Base", Func, 0}, ++ {"Clean", Func, 0}, ++ {"Dir", Func, 0}, ++ {"ErrBadPattern", Var, 0}, ++ {"EvalSymlinks", Func, 0}, ++ {"Ext", Func, 0}, ++ {"FromSlash", Func, 0}, ++ {"Glob", Func, 0}, ++ {"HasPrefix", Func, 0}, ++ {"IsAbs", Func, 0}, ++ {"IsLocal", Func, 20}, ++ {"Join", Func, 0}, ++ {"ListSeparator", Const, 0}, ++ {"Match", Func, 0}, ++ {"Rel", Func, 0}, ++ {"Separator", Const, 0}, ++ {"SkipAll", Var, 20}, ++ {"SkipDir", Var, 0}, ++ {"Split", Func, 0}, ++ {"SplitList", Func, 0}, ++ {"ToSlash", Func, 0}, ++ {"VolumeName", Func, 0}, ++ {"Walk", Func, 0}, ++ {"WalkDir", Func, 16}, ++ {"WalkFunc", Type, 0}, ++ }, ++ "plugin": { ++ {"(*Plugin).Lookup", Method, 8}, ++ {"Open", Func, 8}, ++ {"Plugin", Type, 8}, ++ {"Symbol", Type, 8}, ++ }, ++ "reflect": { ++ {"(*MapIter).Key", Method, 12}, ++ {"(*MapIter).Next", Method, 12}, ++ {"(*MapIter).Reset", Method, 18}, ++ {"(*MapIter).Value", Method, 12}, ++ {"(*ValueError).Error", Method, 0}, ++ {"(ChanDir).String", Method, 0}, ++ {"(Kind).String", Method, 0}, ++ {"(Method).IsExported", Method, 17}, ++ {"(StructField).IsExported", Method, 17}, ++ {"(StructTag).Get", Method, 0}, ++ {"(StructTag).Lookup", Method, 7}, ++ {"(Value).Addr", Method, 0}, ++ {"(Value).Bool", Method, 0}, ++ {"(Value).Bytes", Method, 0}, ++ {"(Value).Call", Method, 0}, ++ {"(Value).CallSlice", Method, 0}, ++ {"(Value).CanAddr", Method, 0}, ++ {"(Value).CanComplex", Method, 18}, ++ {"(Value).CanConvert", Method, 17}, ++ {"(Value).CanFloat", Method, 18}, ++ {"(Value).CanInt", Method, 18}, ++ {"(Value).CanInterface", Method, 0}, ++ {"(Value).CanSet", Method, 0}, ++ {"(Value).CanUint", Method, 18}, ++ {"(Value).Cap", Method, 0}, ++ {"(Value).Clear", Method, 21}, ++ {"(Value).Close", Method, 0}, ++ {"(Value).Comparable", Method, 20}, ++ {"(Value).Complex", Method, 0}, ++ {"(Value).Convert", Method, 1}, ++ {"(Value).Elem", Method, 0}, ++ {"(Value).Equal", Method, 20}, ++ {"(Value).Field", Method, 0}, ++ {"(Value).FieldByIndex", Method, 0}, ++ {"(Value).FieldByIndexErr", Method, 18}, ++ {"(Value).FieldByName", Method, 0}, ++ {"(Value).FieldByNameFunc", Method, 0}, ++ {"(Value).Float", Method, 0}, ++ {"(Value).Grow", Method, 20}, ++ {"(Value).Index", Method, 0}, ++ {"(Value).Int", Method, 0}, ++ {"(Value).Interface", Method, 0}, ++ {"(Value).InterfaceData", Method, 0}, ++ {"(Value).IsNil", Method, 0}, ++ {"(Value).IsValid", Method, 0}, ++ {"(Value).IsZero", Method, 13}, ++ {"(Value).Kind", Method, 0}, ++ {"(Value).Len", Method, 0}, ++ {"(Value).MapIndex", Method, 0}, ++ {"(Value).MapKeys", Method, 0}, ++ {"(Value).MapRange", Method, 12}, ++ {"(Value).Method", Method, 0}, ++ {"(Value).MethodByName", Method, 0}, ++ {"(Value).NumField", Method, 0}, ++ {"(Value).NumMethod", Method, 0}, ++ {"(Value).OverflowComplex", Method, 0}, ++ {"(Value).OverflowFloat", Method, 0}, ++ {"(Value).OverflowInt", Method, 0}, ++ {"(Value).OverflowUint", Method, 0}, ++ {"(Value).Pointer", Method, 0}, ++ {"(Value).Recv", Method, 0}, ++ {"(Value).Send", Method, 0}, ++ {"(Value).Set", Method, 0}, ++ {"(Value).SetBool", Method, 0}, ++ {"(Value).SetBytes", Method, 0}, ++ {"(Value).SetCap", Method, 2}, ++ {"(Value).SetComplex", Method, 0}, ++ {"(Value).SetFloat", Method, 0}, ++ {"(Value).SetInt", Method, 0}, ++ {"(Value).SetIterKey", Method, 18}, ++ {"(Value).SetIterValue", Method, 18}, ++ {"(Value).SetLen", Method, 0}, ++ {"(Value).SetMapIndex", Method, 0}, ++ {"(Value).SetPointer", Method, 0}, ++ {"(Value).SetString", Method, 0}, ++ {"(Value).SetUint", Method, 0}, ++ {"(Value).SetZero", Method, 20}, ++ {"(Value).Slice", Method, 0}, ++ {"(Value).Slice3", Method, 2}, ++ {"(Value).String", Method, 0}, ++ {"(Value).TryRecv", Method, 0}, ++ {"(Value).TrySend", Method, 0}, ++ {"(Value).Type", Method, 0}, ++ {"(Value).Uint", Method, 0}, ++ {"(Value).UnsafeAddr", Method, 0}, ++ {"(Value).UnsafePointer", Method, 18}, ++ {"Append", Func, 0}, ++ {"AppendSlice", Func, 0}, ++ {"Array", Const, 0}, ++ {"ArrayOf", Func, 5}, ++ {"Bool", Const, 0}, ++ {"BothDir", Const, 0}, ++ {"Chan", Const, 0}, ++ {"ChanDir", Type, 0}, ++ {"ChanOf", Func, 1}, ++ {"Complex128", Const, 0}, ++ {"Complex64", Const, 0}, ++ {"Copy", Func, 0}, ++ {"DeepEqual", Func, 0}, ++ {"Float32", Const, 0}, ++ {"Float64", Const, 0}, ++ {"Func", Const, 0}, ++ {"FuncOf", Func, 5}, ++ {"Indirect", Func, 0}, ++ {"Int", Const, 0}, ++ {"Int16", Const, 0}, ++ {"Int32", Const, 0}, ++ {"Int64", Const, 0}, ++ {"Int8", Const, 0}, ++ {"Interface", Const, 0}, ++ {"Invalid", Const, 0}, ++ {"Kind", Type, 0}, ++ {"MakeChan", Func, 0}, ++ {"MakeFunc", Func, 1}, ++ {"MakeMap", Func, 0}, ++ {"MakeMapWithSize", Func, 9}, ++ {"MakeSlice", Func, 0}, ++ {"Map", Const, 0}, ++ {"MapIter", Type, 12}, ++ {"MapOf", Func, 1}, ++ {"Method", Type, 0}, ++ {"Method.Func", Field, 0}, ++ {"Method.Index", Field, 0}, ++ {"Method.Name", Field, 0}, ++ {"Method.PkgPath", Field, 0}, ++ {"Method.Type", Field, 0}, ++ {"New", Func, 0}, ++ {"NewAt", Func, 0}, ++ {"Pointer", Const, 18}, ++ {"PointerTo", Func, 18}, ++ {"Ptr", Const, 0}, ++ {"PtrTo", Func, 0}, ++ {"RecvDir", Const, 0}, ++ {"Select", Func, 1}, ++ {"SelectCase", Type, 1}, ++ {"SelectCase.Chan", Field, 1}, ++ {"SelectCase.Dir", Field, 1}, ++ {"SelectCase.Send", Field, 1}, ++ {"SelectDefault", Const, 1}, ++ {"SelectDir", Type, 1}, ++ {"SelectRecv", Const, 1}, ++ {"SelectSend", Const, 1}, ++ {"SendDir", Const, 0}, ++ {"Slice", Const, 0}, ++ {"SliceHeader", Type, 0}, ++ {"SliceHeader.Cap", Field, 0}, ++ {"SliceHeader.Data", Field, 0}, ++ {"SliceHeader.Len", Field, 0}, ++ {"SliceOf", Func, 1}, ++ {"String", Const, 0}, ++ {"StringHeader", Type, 0}, ++ {"StringHeader.Data", Field, 0}, ++ {"StringHeader.Len", Field, 0}, ++ {"Struct", Const, 0}, ++ {"StructField", Type, 0}, ++ {"StructField.Anonymous", Field, 0}, ++ {"StructField.Index", Field, 0}, ++ {"StructField.Name", Field, 0}, ++ {"StructField.Offset", Field, 0}, ++ {"StructField.PkgPath", Field, 0}, ++ {"StructField.Tag", Field, 0}, ++ {"StructField.Type", Field, 0}, ++ {"StructOf", Func, 7}, ++ {"StructTag", Type, 0}, ++ {"Swapper", Func, 8}, ++ {"Type", Type, 0}, ++ {"TypeFor", Func, 22}, ++ {"TypeOf", Func, 0}, ++ {"Uint", Const, 0}, ++ {"Uint16", Const, 0}, ++ {"Uint32", Const, 0}, ++ {"Uint64", Const, 0}, ++ {"Uint8", Const, 0}, ++ {"Uintptr", Const, 0}, ++ {"UnsafePointer", Const, 0}, ++ {"Value", Type, 0}, ++ {"ValueError", Type, 0}, ++ {"ValueError.Kind", Field, 0}, ++ {"ValueError.Method", Field, 0}, ++ {"ValueOf", Func, 0}, ++ {"VisibleFields", Func, 17}, ++ {"Zero", Func, 0}, ++ }, ++ "regexp": { ++ {"(*Regexp).Copy", Method, 6}, ++ {"(*Regexp).Expand", Method, 0}, ++ {"(*Regexp).ExpandString", Method, 0}, ++ {"(*Regexp).Find", Method, 0}, ++ {"(*Regexp).FindAll", Method, 0}, ++ {"(*Regexp).FindAllIndex", Method, 0}, ++ {"(*Regexp).FindAllString", Method, 0}, ++ {"(*Regexp).FindAllStringIndex", Method, 0}, ++ {"(*Regexp).FindAllStringSubmatch", Method, 0}, ++ {"(*Regexp).FindAllStringSubmatchIndex", Method, 0}, ++ {"(*Regexp).FindAllSubmatch", Method, 0}, ++ {"(*Regexp).FindAllSubmatchIndex", Method, 0}, ++ {"(*Regexp).FindIndex", Method, 0}, ++ {"(*Regexp).FindReaderIndex", Method, 0}, ++ {"(*Regexp).FindReaderSubmatchIndex", Method, 0}, ++ {"(*Regexp).FindString", Method, 0}, ++ {"(*Regexp).FindStringIndex", Method, 0}, ++ {"(*Regexp).FindStringSubmatch", Method, 0}, ++ {"(*Regexp).FindStringSubmatchIndex", Method, 0}, ++ {"(*Regexp).FindSubmatch", Method, 0}, ++ {"(*Regexp).FindSubmatchIndex", Method, 0}, ++ {"(*Regexp).LiteralPrefix", Method, 0}, ++ {"(*Regexp).Longest", Method, 1}, ++ {"(*Regexp).MarshalText", Method, 21}, ++ {"(*Regexp).Match", Method, 0}, ++ {"(*Regexp).MatchReader", Method, 0}, ++ {"(*Regexp).MatchString", Method, 0}, ++ {"(*Regexp).NumSubexp", Method, 0}, ++ {"(*Regexp).ReplaceAll", Method, 0}, ++ {"(*Regexp).ReplaceAllFunc", Method, 0}, ++ {"(*Regexp).ReplaceAllLiteral", Method, 0}, ++ {"(*Regexp).ReplaceAllLiteralString", Method, 0}, ++ {"(*Regexp).ReplaceAllString", Method, 0}, ++ {"(*Regexp).ReplaceAllStringFunc", Method, 0}, ++ {"(*Regexp).Split", Method, 1}, ++ {"(*Regexp).String", Method, 0}, ++ {"(*Regexp).SubexpIndex", Method, 15}, ++ {"(*Regexp).SubexpNames", Method, 0}, ++ {"(*Regexp).UnmarshalText", Method, 21}, ++ {"Compile", Func, 0}, ++ {"CompilePOSIX", Func, 0}, ++ {"Match", Func, 0}, ++ {"MatchReader", Func, 0}, ++ {"MatchString", Func, 0}, ++ {"MustCompile", Func, 0}, ++ {"MustCompilePOSIX", Func, 0}, ++ {"QuoteMeta", Func, 0}, ++ {"Regexp", Type, 0}, ++ }, ++ "regexp/syntax": { ++ {"(*Error).Error", Method, 0}, ++ {"(*Inst).MatchEmptyWidth", Method, 0}, ++ {"(*Inst).MatchRune", Method, 0}, ++ {"(*Inst).MatchRunePos", Method, 3}, ++ {"(*Inst).String", Method, 0}, ++ {"(*Prog).Prefix", Method, 0}, ++ {"(*Prog).StartCond", Method, 0}, ++ {"(*Prog).String", Method, 0}, ++ {"(*Regexp).CapNames", Method, 0}, ++ {"(*Regexp).Equal", Method, 0}, ++ {"(*Regexp).MaxCap", Method, 0}, ++ {"(*Regexp).Simplify", Method, 0}, ++ {"(*Regexp).String", Method, 0}, ++ {"(ErrorCode).String", Method, 0}, ++ {"(InstOp).String", Method, 3}, ++ {"(Op).String", Method, 11}, ++ {"ClassNL", Const, 0}, ++ {"Compile", Func, 0}, ++ {"DotNL", Const, 0}, ++ {"EmptyBeginLine", Const, 0}, ++ {"EmptyBeginText", Const, 0}, ++ {"EmptyEndLine", Const, 0}, ++ {"EmptyEndText", Const, 0}, ++ {"EmptyNoWordBoundary", Const, 0}, ++ {"EmptyOp", Type, 0}, ++ {"EmptyOpContext", Func, 0}, ++ {"EmptyWordBoundary", Const, 0}, ++ {"ErrInternalError", Const, 0}, ++ {"ErrInvalidCharClass", Const, 0}, ++ {"ErrInvalidCharRange", Const, 0}, ++ {"ErrInvalidEscape", Const, 0}, ++ {"ErrInvalidNamedCapture", Const, 0}, ++ {"ErrInvalidPerlOp", Const, 0}, ++ {"ErrInvalidRepeatOp", Const, 0}, ++ {"ErrInvalidRepeatSize", Const, 0}, ++ {"ErrInvalidUTF8", Const, 0}, ++ {"ErrLarge", Const, 20}, ++ {"ErrMissingBracket", Const, 0}, ++ {"ErrMissingParen", Const, 0}, ++ {"ErrMissingRepeatArgument", Const, 0}, ++ {"ErrNestingDepth", Const, 19}, ++ {"ErrTrailingBackslash", Const, 0}, ++ {"ErrUnexpectedParen", Const, 1}, ++ {"Error", Type, 0}, ++ {"Error.Code", Field, 0}, ++ {"Error.Expr", Field, 0}, ++ {"ErrorCode", Type, 0}, ++ {"Flags", Type, 0}, ++ {"FoldCase", Const, 0}, ++ {"Inst", Type, 0}, ++ {"Inst.Arg", Field, 0}, ++ {"Inst.Op", Field, 0}, ++ {"Inst.Out", Field, 0}, ++ {"Inst.Rune", Field, 0}, ++ {"InstAlt", Const, 0}, ++ {"InstAltMatch", Const, 0}, ++ {"InstCapture", Const, 0}, ++ {"InstEmptyWidth", Const, 0}, ++ {"InstFail", Const, 0}, ++ {"InstMatch", Const, 0}, ++ {"InstNop", Const, 0}, ++ {"InstOp", Type, 0}, ++ {"InstRune", Const, 0}, ++ {"InstRune1", Const, 0}, ++ {"InstRuneAny", Const, 0}, ++ {"InstRuneAnyNotNL", Const, 0}, ++ {"IsWordChar", Func, 0}, ++ {"Literal", Const, 0}, ++ {"MatchNL", Const, 0}, ++ {"NonGreedy", Const, 0}, ++ {"OneLine", Const, 0}, ++ {"Op", Type, 0}, ++ {"OpAlternate", Const, 0}, ++ {"OpAnyChar", Const, 0}, ++ {"OpAnyCharNotNL", Const, 0}, ++ {"OpBeginLine", Const, 0}, ++ {"OpBeginText", Const, 0}, ++ {"OpCapture", Const, 0}, ++ {"OpCharClass", Const, 0}, ++ {"OpConcat", Const, 0}, ++ {"OpEmptyMatch", Const, 0}, ++ {"OpEndLine", Const, 0}, ++ {"OpEndText", Const, 0}, ++ {"OpLiteral", Const, 0}, ++ {"OpNoMatch", Const, 0}, ++ {"OpNoWordBoundary", Const, 0}, ++ {"OpPlus", Const, 0}, ++ {"OpQuest", Const, 0}, ++ {"OpRepeat", Const, 0}, ++ {"OpStar", Const, 0}, ++ {"OpWordBoundary", Const, 0}, ++ {"POSIX", Const, 0}, ++ {"Parse", Func, 0}, ++ {"Perl", Const, 0}, ++ {"PerlX", Const, 0}, ++ {"Prog", Type, 0}, ++ {"Prog.Inst", Field, 0}, ++ {"Prog.NumCap", Field, 0}, ++ {"Prog.Start", Field, 0}, ++ {"Regexp", Type, 0}, ++ {"Regexp.Cap", Field, 0}, ++ {"Regexp.Flags", Field, 0}, ++ {"Regexp.Max", Field, 0}, ++ {"Regexp.Min", Field, 0}, ++ {"Regexp.Name", Field, 0}, ++ {"Regexp.Op", Field, 0}, ++ {"Regexp.Rune", Field, 0}, ++ {"Regexp.Rune0", Field, 0}, ++ {"Regexp.Sub", Field, 0}, ++ {"Regexp.Sub0", Field, 0}, ++ {"Simple", Const, 0}, ++ {"UnicodeGroups", Const, 0}, ++ {"WasDollar", Const, 0}, ++ }, ++ "runtime": { ++ {"(*BlockProfileRecord).Stack", Method, 1}, ++ {"(*Frames).Next", Method, 7}, ++ {"(*Func).Entry", Method, 0}, ++ {"(*Func).FileLine", Method, 0}, ++ {"(*Func).Name", Method, 0}, ++ {"(*MemProfileRecord).InUseBytes", Method, 0}, ++ {"(*MemProfileRecord).InUseObjects", Method, 0}, ++ {"(*MemProfileRecord).Stack", Method, 0}, ++ {"(*PanicNilError).Error", Method, 21}, ++ {"(*PanicNilError).RuntimeError", Method, 21}, ++ {"(*Pinner).Pin", Method, 21}, ++ {"(*Pinner).Unpin", Method, 21}, ++ {"(*StackRecord).Stack", Method, 0}, ++ {"(*TypeAssertionError).Error", Method, 0}, ++ {"(*TypeAssertionError).RuntimeError", Method, 0}, ++ {"BlockProfile", Func, 1}, ++ {"BlockProfileRecord", Type, 1}, ++ {"BlockProfileRecord.Count", Field, 1}, ++ {"BlockProfileRecord.Cycles", Field, 1}, ++ {"BlockProfileRecord.StackRecord", Field, 1}, ++ {"Breakpoint", Func, 0}, ++ {"CPUProfile", Func, 0}, ++ {"Caller", Func, 0}, ++ {"Callers", Func, 0}, ++ {"CallersFrames", Func, 7}, ++ {"Compiler", Const, 0}, ++ {"Error", Type, 0}, ++ {"Frame", Type, 7}, ++ {"Frame.Entry", Field, 7}, ++ {"Frame.File", Field, 7}, ++ {"Frame.Func", Field, 7}, ++ {"Frame.Function", Field, 7}, ++ {"Frame.Line", Field, 7}, ++ {"Frame.PC", Field, 7}, ++ {"Frames", Type, 7}, ++ {"Func", Type, 0}, ++ {"FuncForPC", Func, 0}, ++ {"GC", Func, 0}, ++ {"GOARCH", Const, 0}, ++ {"GOMAXPROCS", Func, 0}, ++ {"GOOS", Const, 0}, ++ {"GOROOT", Func, 0}, ++ {"Goexit", Func, 0}, ++ {"GoroutineProfile", Func, 0}, ++ {"Gosched", Func, 0}, ++ {"KeepAlive", Func, 7}, ++ {"LockOSThread", Func, 0}, ++ {"MemProfile", Func, 0}, ++ {"MemProfileRate", Var, 0}, ++ {"MemProfileRecord", Type, 0}, ++ {"MemProfileRecord.AllocBytes", Field, 0}, ++ {"MemProfileRecord.AllocObjects", Field, 0}, ++ {"MemProfileRecord.FreeBytes", Field, 0}, ++ {"MemProfileRecord.FreeObjects", Field, 0}, ++ {"MemProfileRecord.Stack0", Field, 0}, ++ {"MemStats", Type, 0}, ++ {"MemStats.Alloc", Field, 0}, ++ {"MemStats.BuckHashSys", Field, 0}, ++ {"MemStats.BySize", Field, 0}, ++ {"MemStats.DebugGC", Field, 0}, ++ {"MemStats.EnableGC", Field, 0}, ++ {"MemStats.Frees", Field, 0}, ++ {"MemStats.GCCPUFraction", Field, 5}, ++ {"MemStats.GCSys", Field, 2}, ++ {"MemStats.HeapAlloc", Field, 0}, ++ {"MemStats.HeapIdle", Field, 0}, ++ {"MemStats.HeapInuse", Field, 0}, ++ {"MemStats.HeapObjects", Field, 0}, ++ {"MemStats.HeapReleased", Field, 0}, ++ {"MemStats.HeapSys", Field, 0}, ++ {"MemStats.LastGC", Field, 0}, ++ {"MemStats.Lookups", Field, 0}, ++ {"MemStats.MCacheInuse", Field, 0}, ++ {"MemStats.MCacheSys", Field, 0}, ++ {"MemStats.MSpanInuse", Field, 0}, ++ {"MemStats.MSpanSys", Field, 0}, ++ {"MemStats.Mallocs", Field, 0}, ++ {"MemStats.NextGC", Field, 0}, ++ {"MemStats.NumForcedGC", Field, 8}, ++ {"MemStats.NumGC", Field, 0}, ++ {"MemStats.OtherSys", Field, 2}, ++ {"MemStats.PauseEnd", Field, 4}, ++ {"MemStats.PauseNs", Field, 0}, ++ {"MemStats.PauseTotalNs", Field, 0}, ++ {"MemStats.StackInuse", Field, 0}, ++ {"MemStats.StackSys", Field, 0}, ++ {"MemStats.Sys", Field, 0}, ++ {"MemStats.TotalAlloc", Field, 0}, ++ {"MutexProfile", Func, 8}, ++ {"NumCPU", Func, 0}, ++ {"NumCgoCall", Func, 0}, ++ {"NumGoroutine", Func, 0}, ++ {"PanicNilError", Type, 21}, ++ {"Pinner", Type, 21}, ++ {"ReadMemStats", Func, 0}, ++ {"ReadTrace", Func, 5}, ++ {"SetBlockProfileRate", Func, 1}, ++ {"SetCPUProfileRate", Func, 0}, ++ {"SetCgoTraceback", Func, 7}, ++ {"SetFinalizer", Func, 0}, ++ {"SetMutexProfileFraction", Func, 8}, ++ {"Stack", Func, 0}, ++ {"StackRecord", Type, 0}, ++ {"StackRecord.Stack0", Field, 0}, ++ {"StartTrace", Func, 5}, ++ {"StopTrace", Func, 5}, ++ {"ThreadCreateProfile", Func, 0}, ++ {"TypeAssertionError", Type, 0}, ++ {"UnlockOSThread", Func, 0}, ++ {"Version", Func, 0}, ++ }, ++ "runtime/cgo": { ++ {"(Handle).Delete", Method, 17}, ++ {"(Handle).Value", Method, 17}, ++ {"Handle", Type, 17}, ++ {"Incomplete", Type, 20}, ++ {"NewHandle", Func, 17}, ++ }, ++ "runtime/coverage": { ++ {"ClearCounters", Func, 20}, ++ {"WriteCounters", Func, 20}, ++ {"WriteCountersDir", Func, 20}, ++ {"WriteMeta", Func, 20}, ++ {"WriteMetaDir", Func, 20}, ++ }, ++ "runtime/debug": { ++ {"(*BuildInfo).String", Method, 18}, ++ {"BuildInfo", Type, 12}, ++ {"BuildInfo.Deps", Field, 12}, ++ {"BuildInfo.GoVersion", Field, 18}, ++ {"BuildInfo.Main", Field, 12}, ++ {"BuildInfo.Path", Field, 12}, ++ {"BuildInfo.Settings", Field, 18}, ++ {"BuildSetting", Type, 18}, ++ {"BuildSetting.Key", Field, 18}, ++ {"BuildSetting.Value", Field, 18}, ++ {"FreeOSMemory", Func, 1}, ++ {"GCStats", Type, 1}, ++ {"GCStats.LastGC", Field, 1}, ++ {"GCStats.NumGC", Field, 1}, ++ {"GCStats.Pause", Field, 1}, ++ {"GCStats.PauseEnd", Field, 4}, ++ {"GCStats.PauseQuantiles", Field, 1}, ++ {"GCStats.PauseTotal", Field, 1}, ++ {"Module", Type, 12}, ++ {"Module.Path", Field, 12}, ++ {"Module.Replace", Field, 12}, ++ {"Module.Sum", Field, 12}, ++ {"Module.Version", Field, 12}, ++ {"ParseBuildInfo", Func, 18}, ++ {"PrintStack", Func, 0}, ++ {"ReadBuildInfo", Func, 12}, ++ {"ReadGCStats", Func, 1}, ++ {"SetGCPercent", Func, 1}, ++ {"SetMaxStack", Func, 2}, ++ {"SetMaxThreads", Func, 2}, ++ {"SetMemoryLimit", Func, 19}, ++ {"SetPanicOnFault", Func, 3}, ++ {"SetTraceback", Func, 6}, ++ {"Stack", Func, 0}, ++ {"WriteHeapDump", Func, 3}, ++ }, ++ "runtime/metrics": { ++ {"(Value).Float64", Method, 16}, ++ {"(Value).Float64Histogram", Method, 16}, ++ {"(Value).Kind", Method, 16}, ++ {"(Value).Uint64", Method, 16}, ++ {"All", Func, 16}, ++ {"Description", Type, 16}, ++ {"Description.Cumulative", Field, 16}, ++ {"Description.Description", Field, 16}, ++ {"Description.Kind", Field, 16}, ++ {"Description.Name", Field, 16}, ++ {"Float64Histogram", Type, 16}, ++ {"Float64Histogram.Buckets", Field, 16}, ++ {"Float64Histogram.Counts", Field, 16}, ++ {"KindBad", Const, 16}, ++ {"KindFloat64", Const, 16}, ++ {"KindFloat64Histogram", Const, 16}, ++ {"KindUint64", Const, 16}, ++ {"Read", Func, 16}, ++ {"Sample", Type, 16}, ++ {"Sample.Name", Field, 16}, ++ {"Sample.Value", Field, 16}, ++ {"Value", Type, 16}, ++ {"ValueKind", Type, 16}, ++ }, ++ "runtime/pprof": { ++ {"(*Profile).Add", Method, 0}, ++ {"(*Profile).Count", Method, 0}, ++ {"(*Profile).Name", Method, 0}, ++ {"(*Profile).Remove", Method, 0}, ++ {"(*Profile).WriteTo", Method, 0}, ++ {"Do", Func, 9}, ++ {"ForLabels", Func, 9}, ++ {"Label", Func, 9}, ++ {"LabelSet", Type, 9}, ++ {"Labels", Func, 9}, ++ {"Lookup", Func, 0}, ++ {"NewProfile", Func, 0}, ++ {"Profile", Type, 0}, ++ {"Profiles", Func, 0}, ++ {"SetGoroutineLabels", Func, 9}, ++ {"StartCPUProfile", Func, 0}, ++ {"StopCPUProfile", Func, 0}, ++ {"WithLabels", Func, 9}, ++ {"WriteHeapProfile", Func, 0}, ++ }, ++ "runtime/trace": { ++ {"(*Region).End", Method, 11}, ++ {"(*Task).End", Method, 11}, ++ {"IsEnabled", Func, 11}, ++ {"Log", Func, 11}, ++ {"Logf", Func, 11}, ++ {"NewTask", Func, 11}, ++ {"Region", Type, 11}, ++ {"Start", Func, 5}, ++ {"StartRegion", Func, 11}, ++ {"Stop", Func, 5}, ++ {"Task", Type, 11}, ++ {"WithRegion", Func, 11}, ++ }, ++ "slices": { ++ {"BinarySearch", Func, 21}, ++ {"BinarySearchFunc", Func, 21}, ++ {"Clip", Func, 21}, ++ {"Clone", Func, 21}, ++ {"Compact", Func, 21}, ++ {"CompactFunc", Func, 21}, ++ {"Compare", Func, 21}, ++ {"CompareFunc", Func, 21}, ++ {"Concat", Func, 22}, ++ {"Contains", Func, 21}, ++ {"ContainsFunc", Func, 21}, ++ {"Delete", Func, 21}, ++ {"DeleteFunc", Func, 21}, ++ {"Equal", Func, 21}, ++ {"EqualFunc", Func, 21}, ++ {"Grow", Func, 21}, ++ {"Index", Func, 21}, ++ {"IndexFunc", Func, 21}, ++ {"Insert", Func, 21}, ++ {"IsSorted", Func, 21}, ++ {"IsSortedFunc", Func, 21}, ++ {"Max", Func, 21}, ++ {"MaxFunc", Func, 21}, ++ {"Min", Func, 21}, ++ {"MinFunc", Func, 21}, ++ {"Replace", Func, 21}, ++ {"Reverse", Func, 21}, ++ {"Sort", Func, 21}, ++ {"SortFunc", Func, 21}, ++ {"SortStableFunc", Func, 21}, ++ }, ++ "sort": { ++ {"(Float64Slice).Len", Method, 0}, ++ {"(Float64Slice).Less", Method, 0}, ++ {"(Float64Slice).Search", Method, 0}, ++ {"(Float64Slice).Sort", Method, 0}, ++ {"(Float64Slice).Swap", Method, 0}, ++ {"(IntSlice).Len", Method, 0}, ++ {"(IntSlice).Less", Method, 0}, ++ {"(IntSlice).Search", Method, 0}, ++ {"(IntSlice).Sort", Method, 0}, ++ {"(IntSlice).Swap", Method, 0}, ++ {"(StringSlice).Len", Method, 0}, ++ {"(StringSlice).Less", Method, 0}, ++ {"(StringSlice).Search", Method, 0}, ++ {"(StringSlice).Sort", Method, 0}, ++ {"(StringSlice).Swap", Method, 0}, ++ {"Find", Func, 19}, ++ {"Float64Slice", Type, 0}, ++ {"Float64s", Func, 0}, ++ {"Float64sAreSorted", Func, 0}, ++ {"IntSlice", Type, 0}, ++ {"Interface", Type, 0}, ++ {"Ints", Func, 0}, ++ {"IntsAreSorted", Func, 0}, ++ {"IsSorted", Func, 0}, ++ {"Reverse", Func, 1}, ++ {"Search", Func, 0}, ++ {"SearchFloat64s", Func, 0}, ++ {"SearchInts", Func, 0}, ++ {"SearchStrings", Func, 0}, ++ {"Slice", Func, 8}, ++ {"SliceIsSorted", Func, 8}, ++ {"SliceStable", Func, 8}, ++ {"Sort", Func, 0}, ++ {"Stable", Func, 2}, ++ {"StringSlice", Type, 0}, ++ {"Strings", Func, 0}, ++ {"StringsAreSorted", Func, 0}, ++ }, ++ "strconv": { ++ {"(*NumError).Error", Method, 0}, ++ {"(*NumError).Unwrap", Method, 14}, ++ {"AppendBool", Func, 0}, ++ {"AppendFloat", Func, 0}, ++ {"AppendInt", Func, 0}, ++ {"AppendQuote", Func, 0}, ++ {"AppendQuoteRune", Func, 0}, ++ {"AppendQuoteRuneToASCII", Func, 0}, ++ {"AppendQuoteRuneToGraphic", Func, 6}, ++ {"AppendQuoteToASCII", Func, 0}, ++ {"AppendQuoteToGraphic", Func, 6}, ++ {"AppendUint", Func, 0}, ++ {"Atoi", Func, 0}, ++ {"CanBackquote", Func, 0}, ++ {"ErrRange", Var, 0}, ++ {"ErrSyntax", Var, 0}, ++ {"FormatBool", Func, 0}, ++ {"FormatComplex", Func, 15}, ++ {"FormatFloat", Func, 0}, ++ {"FormatInt", Func, 0}, ++ {"FormatUint", Func, 0}, ++ {"IntSize", Const, 0}, ++ {"IsGraphic", Func, 6}, ++ {"IsPrint", Func, 0}, ++ {"Itoa", Func, 0}, ++ {"NumError", Type, 0}, ++ {"NumError.Err", Field, 0}, ++ {"NumError.Func", Field, 0}, ++ {"NumError.Num", Field, 0}, ++ {"ParseBool", Func, 0}, ++ {"ParseComplex", Func, 15}, ++ {"ParseFloat", Func, 0}, ++ {"ParseInt", Func, 0}, ++ {"ParseUint", Func, 0}, ++ {"Quote", Func, 0}, ++ {"QuoteRune", Func, 0}, ++ {"QuoteRuneToASCII", Func, 0}, ++ {"QuoteRuneToGraphic", Func, 6}, ++ {"QuoteToASCII", Func, 0}, ++ {"QuoteToGraphic", Func, 6}, ++ {"QuotedPrefix", Func, 17}, ++ {"Unquote", Func, 0}, ++ {"UnquoteChar", Func, 0}, ++ }, ++ "strings": { ++ {"(*Builder).Cap", Method, 12}, ++ {"(*Builder).Grow", Method, 10}, ++ {"(*Builder).Len", Method, 10}, ++ {"(*Builder).Reset", Method, 10}, ++ {"(*Builder).String", Method, 10}, ++ {"(*Builder).Write", Method, 10}, ++ {"(*Builder).WriteByte", Method, 10}, ++ {"(*Builder).WriteRune", Method, 10}, ++ {"(*Builder).WriteString", Method, 10}, ++ {"(*Reader).Len", Method, 0}, ++ {"(*Reader).Read", Method, 0}, ++ {"(*Reader).ReadAt", Method, 0}, ++ {"(*Reader).ReadByte", Method, 0}, ++ {"(*Reader).ReadRune", Method, 0}, ++ {"(*Reader).Reset", Method, 7}, ++ {"(*Reader).Seek", Method, 0}, ++ {"(*Reader).Size", Method, 5}, ++ {"(*Reader).UnreadByte", Method, 0}, ++ {"(*Reader).UnreadRune", Method, 0}, ++ {"(*Reader).WriteTo", Method, 1}, ++ {"(*Replacer).Replace", Method, 0}, ++ {"(*Replacer).WriteString", Method, 0}, ++ {"Builder", Type, 10}, ++ {"Clone", Func, 18}, ++ {"Compare", Func, 5}, ++ {"Contains", Func, 0}, ++ {"ContainsAny", Func, 0}, ++ {"ContainsFunc", Func, 21}, ++ {"ContainsRune", Func, 0}, ++ {"Count", Func, 0}, ++ {"Cut", Func, 18}, ++ {"CutPrefix", Func, 20}, ++ {"CutSuffix", Func, 20}, ++ {"EqualFold", Func, 0}, ++ {"Fields", Func, 0}, ++ {"FieldsFunc", Func, 0}, ++ {"HasPrefix", Func, 0}, ++ {"HasSuffix", Func, 0}, ++ {"Index", Func, 0}, ++ {"IndexAny", Func, 0}, ++ {"IndexByte", Func, 2}, ++ {"IndexFunc", Func, 0}, ++ {"IndexRune", Func, 0}, ++ {"Join", Func, 0}, ++ {"LastIndex", Func, 0}, ++ {"LastIndexAny", Func, 0}, ++ {"LastIndexByte", Func, 5}, ++ {"LastIndexFunc", Func, 0}, ++ {"Map", Func, 0}, ++ {"NewReader", Func, 0}, ++ {"NewReplacer", Func, 0}, ++ {"Reader", Type, 0}, ++ {"Repeat", Func, 0}, ++ {"Replace", Func, 0}, ++ {"ReplaceAll", Func, 12}, ++ {"Replacer", Type, 0}, ++ {"Split", Func, 0}, ++ {"SplitAfter", Func, 0}, ++ {"SplitAfterN", Func, 0}, ++ {"SplitN", Func, 0}, ++ {"Title", Func, 0}, ++ {"ToLower", Func, 0}, ++ {"ToLowerSpecial", Func, 0}, ++ {"ToTitle", Func, 0}, ++ {"ToTitleSpecial", Func, 0}, ++ {"ToUpper", Func, 0}, ++ {"ToUpperSpecial", Func, 0}, ++ {"ToValidUTF8", Func, 13}, ++ {"Trim", Func, 0}, ++ {"TrimFunc", Func, 0}, ++ {"TrimLeft", Func, 0}, ++ {"TrimLeftFunc", Func, 0}, ++ {"TrimPrefix", Func, 1}, ++ {"TrimRight", Func, 0}, ++ {"TrimRightFunc", Func, 0}, ++ {"TrimSpace", Func, 0}, ++ {"TrimSuffix", Func, 1}, ++ }, ++ "sync": { ++ {"(*Cond).Broadcast", Method, 0}, ++ {"(*Cond).Signal", Method, 0}, ++ {"(*Cond).Wait", Method, 0}, ++ {"(*Map).CompareAndDelete", Method, 20}, ++ {"(*Map).CompareAndSwap", Method, 20}, ++ {"(*Map).Delete", Method, 9}, ++ {"(*Map).Load", Method, 9}, ++ {"(*Map).LoadAndDelete", Method, 15}, ++ {"(*Map).LoadOrStore", Method, 9}, ++ {"(*Map).Range", Method, 9}, ++ {"(*Map).Store", Method, 9}, ++ {"(*Map).Swap", Method, 20}, ++ {"(*Mutex).Lock", Method, 0}, ++ {"(*Mutex).TryLock", Method, 18}, ++ {"(*Mutex).Unlock", Method, 0}, ++ {"(*Once).Do", Method, 0}, ++ {"(*Pool).Get", Method, 3}, ++ {"(*Pool).Put", Method, 3}, ++ {"(*RWMutex).Lock", Method, 0}, ++ {"(*RWMutex).RLock", Method, 0}, ++ {"(*RWMutex).RLocker", Method, 0}, ++ {"(*RWMutex).RUnlock", Method, 0}, ++ {"(*RWMutex).TryLock", Method, 18}, ++ {"(*RWMutex).TryRLock", Method, 18}, ++ {"(*RWMutex).Unlock", Method, 0}, ++ {"(*WaitGroup).Add", Method, 0}, ++ {"(*WaitGroup).Done", Method, 0}, ++ {"(*WaitGroup).Wait", Method, 0}, ++ {"Cond", Type, 0}, ++ {"Cond.L", Field, 0}, ++ {"Locker", Type, 0}, ++ {"Map", Type, 9}, ++ {"Mutex", Type, 0}, ++ {"NewCond", Func, 0}, ++ {"Once", Type, 0}, ++ {"OnceFunc", Func, 21}, ++ {"OnceValue", Func, 21}, ++ {"OnceValues", Func, 21}, ++ {"Pool", Type, 3}, ++ {"Pool.New", Field, 3}, ++ {"RWMutex", Type, 0}, ++ {"WaitGroup", Type, 0}, ++ }, ++ "sync/atomic": { ++ {"(*Bool).CompareAndSwap", Method, 19}, ++ {"(*Bool).Load", Method, 19}, ++ {"(*Bool).Store", Method, 19}, ++ {"(*Bool).Swap", Method, 19}, ++ {"(*Int32).Add", Method, 19}, ++ {"(*Int32).CompareAndSwap", Method, 19}, ++ {"(*Int32).Load", Method, 19}, ++ {"(*Int32).Store", Method, 19}, ++ {"(*Int32).Swap", Method, 19}, ++ {"(*Int64).Add", Method, 19}, ++ {"(*Int64).CompareAndSwap", Method, 19}, ++ {"(*Int64).Load", Method, 19}, ++ {"(*Int64).Store", Method, 19}, ++ {"(*Int64).Swap", Method, 19}, ++ {"(*Pointer).CompareAndSwap", Method, 19}, ++ {"(*Pointer).Load", Method, 19}, ++ {"(*Pointer).Store", Method, 19}, ++ {"(*Pointer).Swap", Method, 19}, ++ {"(*Uint32).Add", Method, 19}, ++ {"(*Uint32).CompareAndSwap", Method, 19}, ++ {"(*Uint32).Load", Method, 19}, ++ {"(*Uint32).Store", Method, 19}, ++ {"(*Uint32).Swap", Method, 19}, ++ {"(*Uint64).Add", Method, 19}, ++ {"(*Uint64).CompareAndSwap", Method, 19}, ++ {"(*Uint64).Load", Method, 19}, ++ {"(*Uint64).Store", Method, 19}, ++ {"(*Uint64).Swap", Method, 19}, ++ {"(*Uintptr).Add", Method, 19}, ++ {"(*Uintptr).CompareAndSwap", Method, 19}, ++ {"(*Uintptr).Load", Method, 19}, ++ {"(*Uintptr).Store", Method, 19}, ++ {"(*Uintptr).Swap", Method, 19}, ++ {"(*Value).CompareAndSwap", Method, 17}, ++ {"(*Value).Load", Method, 4}, ++ {"(*Value).Store", Method, 4}, ++ {"(*Value).Swap", Method, 17}, ++ {"AddInt32", Func, 0}, ++ {"AddInt64", Func, 0}, ++ {"AddUint32", Func, 0}, ++ {"AddUint64", Func, 0}, ++ {"AddUintptr", Func, 0}, ++ {"Bool", Type, 19}, ++ {"CompareAndSwapInt32", Func, 0}, ++ {"CompareAndSwapInt64", Func, 0}, ++ {"CompareAndSwapPointer", Func, 0}, ++ {"CompareAndSwapUint32", Func, 0}, ++ {"CompareAndSwapUint64", Func, 0}, ++ {"CompareAndSwapUintptr", Func, 0}, ++ {"Int32", Type, 19}, ++ {"Int64", Type, 19}, ++ {"LoadInt32", Func, 0}, ++ {"LoadInt64", Func, 0}, ++ {"LoadPointer", Func, 0}, ++ {"LoadUint32", Func, 0}, ++ {"LoadUint64", Func, 0}, ++ {"LoadUintptr", Func, 0}, ++ {"Pointer", Type, 19}, ++ {"StoreInt32", Func, 0}, ++ {"StoreInt64", Func, 0}, ++ {"StorePointer", Func, 0}, ++ {"StoreUint32", Func, 0}, ++ {"StoreUint64", Func, 0}, ++ {"StoreUintptr", Func, 0}, ++ {"SwapInt32", Func, 2}, ++ {"SwapInt64", Func, 2}, ++ {"SwapPointer", Func, 2}, ++ {"SwapUint32", Func, 2}, ++ {"SwapUint64", Func, 2}, ++ {"SwapUintptr", Func, 2}, ++ {"Uint32", Type, 19}, ++ {"Uint64", Type, 19}, ++ {"Uintptr", Type, 19}, ++ {"Value", Type, 4}, ++ }, ++ "syscall": { ++ {"(*Cmsghdr).SetLen", Method, 0}, ++ {"(*DLL).FindProc", Method, 0}, ++ {"(*DLL).MustFindProc", Method, 0}, ++ {"(*DLL).Release", Method, 0}, ++ {"(*DLLError).Error", Method, 0}, ++ {"(*DLLError).Unwrap", Method, 16}, ++ {"(*Filetime).Nanoseconds", Method, 0}, ++ {"(*Iovec).SetLen", Method, 0}, ++ {"(*LazyDLL).Handle", Method, 0}, ++ {"(*LazyDLL).Load", Method, 0}, ++ {"(*LazyDLL).NewProc", Method, 0}, ++ {"(*LazyProc).Addr", Method, 0}, ++ {"(*LazyProc).Call", Method, 0}, ++ {"(*LazyProc).Find", Method, 0}, ++ {"(*Msghdr).SetControllen", Method, 0}, ++ {"(*Proc).Addr", Method, 0}, ++ {"(*Proc).Call", Method, 0}, ++ {"(*PtraceRegs).PC", Method, 0}, ++ {"(*PtraceRegs).SetPC", Method, 0}, ++ {"(*RawSockaddrAny).Sockaddr", Method, 0}, ++ {"(*SID).Copy", Method, 0}, ++ {"(*SID).Len", Method, 0}, ++ {"(*SID).LookupAccount", Method, 0}, ++ {"(*SID).String", Method, 0}, ++ {"(*Timespec).Nano", Method, 0}, ++ {"(*Timespec).Unix", Method, 0}, ++ {"(*Timeval).Nano", Method, 0}, ++ {"(*Timeval).Nanoseconds", Method, 0}, ++ {"(*Timeval).Unix", Method, 0}, ++ {"(Errno).Error", Method, 0}, ++ {"(Errno).Is", Method, 13}, ++ {"(Errno).Temporary", Method, 0}, ++ {"(Errno).Timeout", Method, 0}, ++ {"(Signal).Signal", Method, 0}, ++ {"(Signal).String", Method, 0}, ++ {"(Token).Close", Method, 0}, ++ {"(Token).GetTokenPrimaryGroup", Method, 0}, ++ {"(Token).GetTokenUser", Method, 0}, ++ {"(Token).GetUserProfileDirectory", Method, 0}, ++ {"(WaitStatus).Continued", Method, 0}, ++ {"(WaitStatus).CoreDump", Method, 0}, ++ {"(WaitStatus).ExitStatus", Method, 0}, ++ {"(WaitStatus).Exited", Method, 0}, ++ {"(WaitStatus).Signal", Method, 0}, ++ {"(WaitStatus).Signaled", Method, 0}, ++ {"(WaitStatus).StopSignal", Method, 0}, ++ {"(WaitStatus).Stopped", Method, 0}, ++ {"(WaitStatus).TrapCause", Method, 0}, ++ {"AF_ALG", Const, 0}, ++ {"AF_APPLETALK", Const, 0}, ++ {"AF_ARP", Const, 0}, ++ {"AF_ASH", Const, 0}, ++ {"AF_ATM", Const, 0}, ++ {"AF_ATMPVC", Const, 0}, ++ {"AF_ATMSVC", Const, 0}, ++ {"AF_AX25", Const, 0}, ++ {"AF_BLUETOOTH", Const, 0}, ++ {"AF_BRIDGE", Const, 0}, ++ {"AF_CAIF", Const, 0}, ++ {"AF_CAN", Const, 0}, ++ {"AF_CCITT", Const, 0}, ++ {"AF_CHAOS", Const, 0}, ++ {"AF_CNT", Const, 0}, ++ {"AF_COIP", Const, 0}, ++ {"AF_DATAKIT", Const, 0}, ++ {"AF_DECnet", Const, 0}, ++ {"AF_DLI", Const, 0}, ++ {"AF_E164", Const, 0}, ++ {"AF_ECMA", Const, 0}, ++ {"AF_ECONET", Const, 0}, ++ {"AF_ENCAP", Const, 1}, ++ {"AF_FILE", Const, 0}, ++ {"AF_HYLINK", Const, 0}, ++ {"AF_IEEE80211", Const, 0}, ++ {"AF_IEEE802154", Const, 0}, ++ {"AF_IMPLINK", Const, 0}, ++ {"AF_INET", Const, 0}, ++ {"AF_INET6", Const, 0}, ++ {"AF_INET6_SDP", Const, 3}, ++ {"AF_INET_SDP", Const, 3}, ++ {"AF_IPX", Const, 0}, ++ {"AF_IRDA", Const, 0}, ++ {"AF_ISDN", Const, 0}, ++ {"AF_ISO", Const, 0}, ++ {"AF_IUCV", Const, 0}, ++ {"AF_KEY", Const, 0}, ++ {"AF_LAT", Const, 0}, ++ {"AF_LINK", Const, 0}, ++ {"AF_LLC", Const, 0}, ++ {"AF_LOCAL", Const, 0}, ++ {"AF_MAX", Const, 0}, ++ {"AF_MPLS", Const, 1}, ++ {"AF_NATM", Const, 0}, ++ {"AF_NDRV", Const, 0}, ++ {"AF_NETBEUI", Const, 0}, ++ {"AF_NETBIOS", Const, 0}, ++ {"AF_NETGRAPH", Const, 0}, ++ {"AF_NETLINK", Const, 0}, ++ {"AF_NETROM", Const, 0}, ++ {"AF_NS", Const, 0}, ++ {"AF_OROUTE", Const, 1}, ++ {"AF_OSI", Const, 0}, ++ {"AF_PACKET", Const, 0}, ++ {"AF_PHONET", Const, 0}, ++ {"AF_PPP", Const, 0}, ++ {"AF_PPPOX", Const, 0}, ++ {"AF_PUP", Const, 0}, ++ {"AF_RDS", Const, 0}, ++ {"AF_RESERVED_36", Const, 0}, ++ {"AF_ROSE", Const, 0}, ++ {"AF_ROUTE", Const, 0}, ++ {"AF_RXRPC", Const, 0}, ++ {"AF_SCLUSTER", Const, 0}, ++ {"AF_SECURITY", Const, 0}, ++ {"AF_SIP", Const, 0}, ++ {"AF_SLOW", Const, 0}, ++ {"AF_SNA", Const, 0}, ++ {"AF_SYSTEM", Const, 0}, ++ {"AF_TIPC", Const, 0}, ++ {"AF_UNIX", Const, 0}, ++ {"AF_UNSPEC", Const, 0}, ++ {"AF_UTUN", Const, 16}, ++ {"AF_VENDOR00", Const, 0}, ++ {"AF_VENDOR01", Const, 0}, ++ {"AF_VENDOR02", Const, 0}, ++ {"AF_VENDOR03", Const, 0}, ++ {"AF_VENDOR04", Const, 0}, ++ {"AF_VENDOR05", Const, 0}, ++ {"AF_VENDOR06", Const, 0}, ++ {"AF_VENDOR07", Const, 0}, ++ {"AF_VENDOR08", Const, 0}, ++ {"AF_VENDOR09", Const, 0}, ++ {"AF_VENDOR10", Const, 0}, ++ {"AF_VENDOR11", Const, 0}, ++ {"AF_VENDOR12", Const, 0}, ++ {"AF_VENDOR13", Const, 0}, ++ {"AF_VENDOR14", Const, 0}, ++ {"AF_VENDOR15", Const, 0}, ++ {"AF_VENDOR16", Const, 0}, ++ {"AF_VENDOR17", Const, 0}, ++ {"AF_VENDOR18", Const, 0}, ++ {"AF_VENDOR19", Const, 0}, ++ {"AF_VENDOR20", Const, 0}, ++ {"AF_VENDOR21", Const, 0}, ++ {"AF_VENDOR22", Const, 0}, ++ {"AF_VENDOR23", Const, 0}, ++ {"AF_VENDOR24", Const, 0}, ++ {"AF_VENDOR25", Const, 0}, ++ {"AF_VENDOR26", Const, 0}, ++ {"AF_VENDOR27", Const, 0}, ++ {"AF_VENDOR28", Const, 0}, ++ {"AF_VENDOR29", Const, 0}, ++ {"AF_VENDOR30", Const, 0}, ++ {"AF_VENDOR31", Const, 0}, ++ {"AF_VENDOR32", Const, 0}, ++ {"AF_VENDOR33", Const, 0}, ++ {"AF_VENDOR34", Const, 0}, ++ {"AF_VENDOR35", Const, 0}, ++ {"AF_VENDOR36", Const, 0}, ++ {"AF_VENDOR37", Const, 0}, ++ {"AF_VENDOR38", Const, 0}, ++ {"AF_VENDOR39", Const, 0}, ++ {"AF_VENDOR40", Const, 0}, ++ {"AF_VENDOR41", Const, 0}, ++ {"AF_VENDOR42", Const, 0}, ++ {"AF_VENDOR43", Const, 0}, ++ {"AF_VENDOR44", Const, 0}, ++ {"AF_VENDOR45", Const, 0}, ++ {"AF_VENDOR46", Const, 0}, ++ {"AF_VENDOR47", Const, 0}, ++ {"AF_WANPIPE", Const, 0}, ++ {"AF_X25", Const, 0}, ++ {"AI_CANONNAME", Const, 1}, ++ {"AI_NUMERICHOST", Const, 1}, ++ {"AI_PASSIVE", Const, 1}, ++ {"APPLICATION_ERROR", Const, 0}, ++ {"ARPHRD_ADAPT", Const, 0}, ++ {"ARPHRD_APPLETLK", Const, 0}, ++ {"ARPHRD_ARCNET", Const, 0}, ++ {"ARPHRD_ASH", Const, 0}, ++ {"ARPHRD_ATM", Const, 0}, ++ {"ARPHRD_AX25", Const, 0}, ++ {"ARPHRD_BIF", Const, 0}, ++ {"ARPHRD_CHAOS", Const, 0}, ++ {"ARPHRD_CISCO", Const, 0}, ++ {"ARPHRD_CSLIP", Const, 0}, ++ {"ARPHRD_CSLIP6", Const, 0}, ++ {"ARPHRD_DDCMP", Const, 0}, ++ {"ARPHRD_DLCI", Const, 0}, ++ {"ARPHRD_ECONET", Const, 0}, ++ {"ARPHRD_EETHER", Const, 0}, ++ {"ARPHRD_ETHER", Const, 0}, ++ {"ARPHRD_EUI64", Const, 0}, ++ {"ARPHRD_FCAL", Const, 0}, ++ {"ARPHRD_FCFABRIC", Const, 0}, ++ {"ARPHRD_FCPL", Const, 0}, ++ {"ARPHRD_FCPP", Const, 0}, ++ {"ARPHRD_FDDI", Const, 0}, ++ {"ARPHRD_FRAD", Const, 0}, ++ {"ARPHRD_FRELAY", Const, 1}, ++ {"ARPHRD_HDLC", Const, 0}, ++ {"ARPHRD_HIPPI", Const, 0}, ++ {"ARPHRD_HWX25", Const, 0}, ++ {"ARPHRD_IEEE1394", Const, 0}, ++ {"ARPHRD_IEEE802", Const, 0}, ++ {"ARPHRD_IEEE80211", Const, 0}, ++ {"ARPHRD_IEEE80211_PRISM", Const, 0}, ++ {"ARPHRD_IEEE80211_RADIOTAP", Const, 0}, ++ {"ARPHRD_IEEE802154", Const, 0}, ++ {"ARPHRD_IEEE802154_PHY", Const, 0}, ++ {"ARPHRD_IEEE802_TR", Const, 0}, ++ {"ARPHRD_INFINIBAND", Const, 0}, ++ {"ARPHRD_IPDDP", Const, 0}, ++ {"ARPHRD_IPGRE", Const, 0}, ++ {"ARPHRD_IRDA", Const, 0}, ++ {"ARPHRD_LAPB", Const, 0}, ++ {"ARPHRD_LOCALTLK", Const, 0}, ++ {"ARPHRD_LOOPBACK", Const, 0}, ++ {"ARPHRD_METRICOM", Const, 0}, ++ {"ARPHRD_NETROM", Const, 0}, ++ {"ARPHRD_NONE", Const, 0}, ++ {"ARPHRD_PIMREG", Const, 0}, ++ {"ARPHRD_PPP", Const, 0}, ++ {"ARPHRD_PRONET", Const, 0}, ++ {"ARPHRD_RAWHDLC", Const, 0}, ++ {"ARPHRD_ROSE", Const, 0}, ++ {"ARPHRD_RSRVD", Const, 0}, ++ {"ARPHRD_SIT", Const, 0}, ++ {"ARPHRD_SKIP", Const, 0}, ++ {"ARPHRD_SLIP", Const, 0}, ++ {"ARPHRD_SLIP6", Const, 0}, ++ {"ARPHRD_STRIP", Const, 1}, ++ {"ARPHRD_TUNNEL", Const, 0}, ++ {"ARPHRD_TUNNEL6", Const, 0}, ++ {"ARPHRD_VOID", Const, 0}, ++ {"ARPHRD_X25", Const, 0}, ++ {"AUTHTYPE_CLIENT", Const, 0}, ++ {"AUTHTYPE_SERVER", Const, 0}, ++ {"Accept", Func, 0}, ++ {"Accept4", Func, 1}, ++ {"AcceptEx", Func, 0}, ++ {"Access", Func, 0}, ++ {"Acct", Func, 0}, ++ {"AddrinfoW", Type, 1}, ++ {"AddrinfoW.Addr", Field, 1}, ++ {"AddrinfoW.Addrlen", Field, 1}, ++ {"AddrinfoW.Canonname", Field, 1}, ++ {"AddrinfoW.Family", Field, 1}, ++ {"AddrinfoW.Flags", Field, 1}, ++ {"AddrinfoW.Next", Field, 1}, ++ {"AddrinfoW.Protocol", Field, 1}, ++ {"AddrinfoW.Socktype", Field, 1}, ++ {"Adjtime", Func, 0}, ++ {"Adjtimex", Func, 0}, ++ {"AllThreadsSyscall", Func, 16}, ++ {"AllThreadsSyscall6", Func, 16}, ++ {"AttachLsf", Func, 0}, ++ {"B0", Const, 0}, ++ {"B1000000", Const, 0}, ++ {"B110", Const, 0}, ++ {"B115200", Const, 0}, ++ {"B1152000", Const, 0}, ++ {"B1200", Const, 0}, ++ {"B134", Const, 0}, ++ {"B14400", Const, 1}, ++ {"B150", Const, 0}, ++ {"B1500000", Const, 0}, ++ {"B1800", Const, 0}, ++ {"B19200", Const, 0}, ++ {"B200", Const, 0}, ++ {"B2000000", Const, 0}, ++ {"B230400", Const, 0}, ++ {"B2400", Const, 0}, ++ {"B2500000", Const, 0}, ++ {"B28800", Const, 1}, ++ {"B300", Const, 0}, ++ {"B3000000", Const, 0}, ++ {"B3500000", Const, 0}, ++ {"B38400", Const, 0}, ++ {"B4000000", Const, 0}, ++ {"B460800", Const, 0}, ++ {"B4800", Const, 0}, ++ {"B50", Const, 0}, ++ {"B500000", Const, 0}, ++ {"B57600", Const, 0}, ++ {"B576000", Const, 0}, ++ {"B600", Const, 0}, ++ {"B7200", Const, 1}, ++ {"B75", Const, 0}, ++ {"B76800", Const, 1}, ++ {"B921600", Const, 0}, ++ {"B9600", Const, 0}, ++ {"BASE_PROTOCOL", Const, 2}, ++ {"BIOCFEEDBACK", Const, 0}, ++ {"BIOCFLUSH", Const, 0}, ++ {"BIOCGBLEN", Const, 0}, ++ {"BIOCGDIRECTION", Const, 0}, ++ {"BIOCGDIRFILT", Const, 1}, ++ {"BIOCGDLT", Const, 0}, ++ {"BIOCGDLTLIST", Const, 0}, ++ {"BIOCGETBUFMODE", Const, 0}, ++ {"BIOCGETIF", Const, 0}, ++ {"BIOCGETZMAX", Const, 0}, ++ {"BIOCGFEEDBACK", Const, 1}, ++ {"BIOCGFILDROP", Const, 1}, ++ {"BIOCGHDRCMPLT", Const, 0}, ++ {"BIOCGRSIG", Const, 0}, ++ {"BIOCGRTIMEOUT", Const, 0}, ++ {"BIOCGSEESENT", Const, 0}, ++ {"BIOCGSTATS", Const, 0}, ++ {"BIOCGSTATSOLD", Const, 1}, ++ {"BIOCGTSTAMP", Const, 1}, ++ {"BIOCIMMEDIATE", Const, 0}, ++ {"BIOCLOCK", Const, 0}, ++ {"BIOCPROMISC", Const, 0}, ++ {"BIOCROTZBUF", Const, 0}, ++ {"BIOCSBLEN", Const, 0}, ++ {"BIOCSDIRECTION", Const, 0}, ++ {"BIOCSDIRFILT", Const, 1}, ++ {"BIOCSDLT", Const, 0}, ++ {"BIOCSETBUFMODE", Const, 0}, ++ {"BIOCSETF", Const, 0}, ++ {"BIOCSETFNR", Const, 0}, ++ {"BIOCSETIF", Const, 0}, ++ {"BIOCSETWF", Const, 0}, ++ {"BIOCSETZBUF", Const, 0}, ++ {"BIOCSFEEDBACK", Const, 1}, ++ {"BIOCSFILDROP", Const, 1}, ++ {"BIOCSHDRCMPLT", Const, 0}, ++ {"BIOCSRSIG", Const, 0}, ++ {"BIOCSRTIMEOUT", Const, 0}, ++ {"BIOCSSEESENT", Const, 0}, ++ {"BIOCSTCPF", Const, 1}, ++ {"BIOCSTSTAMP", Const, 1}, ++ {"BIOCSUDPF", Const, 1}, ++ {"BIOCVERSION", Const, 0}, ++ {"BPF_A", Const, 0}, ++ {"BPF_ABS", Const, 0}, ++ {"BPF_ADD", Const, 0}, ++ {"BPF_ALIGNMENT", Const, 0}, ++ {"BPF_ALIGNMENT32", Const, 1}, ++ {"BPF_ALU", Const, 0}, ++ {"BPF_AND", Const, 0}, ++ {"BPF_B", Const, 0}, ++ {"BPF_BUFMODE_BUFFER", Const, 0}, ++ {"BPF_BUFMODE_ZBUF", Const, 0}, ++ {"BPF_DFLTBUFSIZE", Const, 1}, ++ {"BPF_DIRECTION_IN", Const, 1}, ++ {"BPF_DIRECTION_OUT", Const, 1}, ++ {"BPF_DIV", Const, 0}, ++ {"BPF_H", Const, 0}, ++ {"BPF_IMM", Const, 0}, ++ {"BPF_IND", Const, 0}, ++ {"BPF_JA", Const, 0}, ++ {"BPF_JEQ", Const, 0}, ++ {"BPF_JGE", Const, 0}, ++ {"BPF_JGT", Const, 0}, ++ {"BPF_JMP", Const, 0}, ++ {"BPF_JSET", Const, 0}, ++ {"BPF_K", Const, 0}, ++ {"BPF_LD", Const, 0}, ++ {"BPF_LDX", Const, 0}, ++ {"BPF_LEN", Const, 0}, ++ {"BPF_LSH", Const, 0}, ++ {"BPF_MAJOR_VERSION", Const, 0}, ++ {"BPF_MAXBUFSIZE", Const, 0}, ++ {"BPF_MAXINSNS", Const, 0}, ++ {"BPF_MEM", Const, 0}, ++ {"BPF_MEMWORDS", Const, 0}, ++ {"BPF_MINBUFSIZE", Const, 0}, ++ {"BPF_MINOR_VERSION", Const, 0}, ++ {"BPF_MISC", Const, 0}, ++ {"BPF_MSH", Const, 0}, ++ {"BPF_MUL", Const, 0}, ++ {"BPF_NEG", Const, 0}, ++ {"BPF_OR", Const, 0}, ++ {"BPF_RELEASE", Const, 0}, ++ {"BPF_RET", Const, 0}, ++ {"BPF_RSH", Const, 0}, ++ {"BPF_ST", Const, 0}, ++ {"BPF_STX", Const, 0}, ++ {"BPF_SUB", Const, 0}, ++ {"BPF_TAX", Const, 0}, ++ {"BPF_TXA", Const, 0}, ++ {"BPF_T_BINTIME", Const, 1}, ++ {"BPF_T_BINTIME_FAST", Const, 1}, ++ {"BPF_T_BINTIME_MONOTONIC", Const, 1}, ++ {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1}, ++ {"BPF_T_FAST", Const, 1}, ++ {"BPF_T_FLAG_MASK", Const, 1}, ++ {"BPF_T_FORMAT_MASK", Const, 1}, ++ {"BPF_T_MICROTIME", Const, 1}, ++ {"BPF_T_MICROTIME_FAST", Const, 1}, ++ {"BPF_T_MICROTIME_MONOTONIC", Const, 1}, ++ {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1}, ++ {"BPF_T_MONOTONIC", Const, 1}, ++ {"BPF_T_MONOTONIC_FAST", Const, 1}, ++ {"BPF_T_NANOTIME", Const, 1}, ++ {"BPF_T_NANOTIME_FAST", Const, 1}, ++ {"BPF_T_NANOTIME_MONOTONIC", Const, 1}, ++ {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1}, ++ {"BPF_T_NONE", Const, 1}, ++ {"BPF_T_NORMAL", Const, 1}, ++ {"BPF_W", Const, 0}, ++ {"BPF_X", Const, 0}, ++ {"BRKINT", Const, 0}, ++ {"Bind", Func, 0}, ++ {"BindToDevice", Func, 0}, ++ {"BpfBuflen", Func, 0}, ++ {"BpfDatalink", Func, 0}, ++ {"BpfHdr", Type, 0}, ++ {"BpfHdr.Caplen", Field, 0}, ++ {"BpfHdr.Datalen", Field, 0}, ++ {"BpfHdr.Hdrlen", Field, 0}, ++ {"BpfHdr.Pad_cgo_0", Field, 0}, ++ {"BpfHdr.Tstamp", Field, 0}, ++ {"BpfHeadercmpl", Func, 0}, ++ {"BpfInsn", Type, 0}, ++ {"BpfInsn.Code", Field, 0}, ++ {"BpfInsn.Jf", Field, 0}, ++ {"BpfInsn.Jt", Field, 0}, ++ {"BpfInsn.K", Field, 0}, ++ {"BpfInterface", Func, 0}, ++ {"BpfJump", Func, 0}, ++ {"BpfProgram", Type, 0}, ++ {"BpfProgram.Insns", Field, 0}, ++ {"BpfProgram.Len", Field, 0}, ++ {"BpfProgram.Pad_cgo_0", Field, 0}, ++ {"BpfStat", Type, 0}, ++ {"BpfStat.Capt", Field, 2}, ++ {"BpfStat.Drop", Field, 0}, ++ {"BpfStat.Padding", Field, 2}, ++ {"BpfStat.Recv", Field, 0}, ++ {"BpfStats", Func, 0}, ++ {"BpfStmt", Func, 0}, ++ {"BpfTimeout", Func, 0}, ++ {"BpfTimeval", Type, 2}, ++ {"BpfTimeval.Sec", Field, 2}, ++ {"BpfTimeval.Usec", Field, 2}, ++ {"BpfVersion", Type, 0}, ++ {"BpfVersion.Major", Field, 0}, ++ {"BpfVersion.Minor", Field, 0}, ++ {"BpfZbuf", Type, 0}, ++ {"BpfZbuf.Bufa", Field, 0}, ++ {"BpfZbuf.Bufb", Field, 0}, ++ {"BpfZbuf.Buflen", Field, 0}, ++ {"BpfZbufHeader", Type, 0}, ++ {"BpfZbufHeader.Kernel_gen", Field, 0}, ++ {"BpfZbufHeader.Kernel_len", Field, 0}, ++ {"BpfZbufHeader.User_gen", Field, 0}, ++ {"BpfZbufHeader.X_bzh_pad", Field, 0}, ++ {"ByHandleFileInformation", Type, 0}, ++ {"ByHandleFileInformation.CreationTime", Field, 0}, ++ {"ByHandleFileInformation.FileAttributes", Field, 0}, ++ {"ByHandleFileInformation.FileIndexHigh", Field, 0}, ++ {"ByHandleFileInformation.FileIndexLow", Field, 0}, ++ {"ByHandleFileInformation.FileSizeHigh", Field, 0}, ++ {"ByHandleFileInformation.FileSizeLow", Field, 0}, ++ {"ByHandleFileInformation.LastAccessTime", Field, 0}, ++ {"ByHandleFileInformation.LastWriteTime", Field, 0}, ++ {"ByHandleFileInformation.NumberOfLinks", Field, 0}, ++ {"ByHandleFileInformation.VolumeSerialNumber", Field, 0}, ++ {"BytePtrFromString", Func, 1}, ++ {"ByteSliceFromString", Func, 1}, ++ {"CCR0_FLUSH", Const, 1}, ++ {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0}, ++ {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0}, ++ {"CERT_CHAIN_POLICY_BASE", Const, 0}, ++ {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0}, ++ {"CERT_CHAIN_POLICY_EV", Const, 0}, ++ {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0}, ++ {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0}, ++ {"CERT_CHAIN_POLICY_SSL", Const, 0}, ++ {"CERT_E_CN_NO_MATCH", Const, 0}, ++ {"CERT_E_EXPIRED", Const, 0}, ++ {"CERT_E_PURPOSE", Const, 0}, ++ {"CERT_E_ROLE", Const, 0}, ++ {"CERT_E_UNTRUSTEDROOT", Const, 0}, ++ {"CERT_STORE_ADD_ALWAYS", Const, 0}, ++ {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0}, ++ {"CERT_STORE_PROV_MEMORY", Const, 0}, ++ {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0}, ++ {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0}, ++ {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0}, ++ {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0}, ++ {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0}, ++ {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0}, ++ {"CERT_TRUST_INVALID_EXTENSION", Const, 0}, ++ {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0}, ++ {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0}, ++ {"CERT_TRUST_IS_CYCLIC", Const, 0}, ++ {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0}, ++ {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0}, ++ {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0}, ++ {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0}, ++ {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0}, ++ {"CERT_TRUST_IS_REVOKED", Const, 0}, ++ {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0}, ++ {"CERT_TRUST_NO_ERROR", Const, 0}, ++ {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0}, ++ {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0}, ++ {"CFLUSH", Const, 1}, ++ {"CLOCAL", Const, 0}, ++ {"CLONE_CHILD_CLEARTID", Const, 2}, ++ {"CLONE_CHILD_SETTID", Const, 2}, ++ {"CLONE_CLEAR_SIGHAND", Const, 20}, ++ {"CLONE_CSIGNAL", Const, 3}, ++ {"CLONE_DETACHED", Const, 2}, ++ {"CLONE_FILES", Const, 2}, ++ {"CLONE_FS", Const, 2}, ++ {"CLONE_INTO_CGROUP", Const, 20}, ++ {"CLONE_IO", Const, 2}, ++ {"CLONE_NEWCGROUP", Const, 20}, ++ {"CLONE_NEWIPC", Const, 2}, ++ {"CLONE_NEWNET", Const, 2}, ++ {"CLONE_NEWNS", Const, 2}, ++ {"CLONE_NEWPID", Const, 2}, ++ {"CLONE_NEWTIME", Const, 20}, ++ {"CLONE_NEWUSER", Const, 2}, ++ {"CLONE_NEWUTS", Const, 2}, ++ {"CLONE_PARENT", Const, 2}, ++ {"CLONE_PARENT_SETTID", Const, 2}, ++ {"CLONE_PID", Const, 3}, ++ {"CLONE_PIDFD", Const, 20}, ++ {"CLONE_PTRACE", Const, 2}, ++ {"CLONE_SETTLS", Const, 2}, ++ {"CLONE_SIGHAND", Const, 2}, ++ {"CLONE_SYSVSEM", Const, 2}, ++ {"CLONE_THREAD", Const, 2}, ++ {"CLONE_UNTRACED", Const, 2}, ++ {"CLONE_VFORK", Const, 2}, ++ {"CLONE_VM", Const, 2}, ++ {"CPUID_CFLUSH", Const, 1}, ++ {"CREAD", Const, 0}, ++ {"CREATE_ALWAYS", Const, 0}, ++ {"CREATE_NEW", Const, 0}, ++ {"CREATE_NEW_PROCESS_GROUP", Const, 1}, ++ {"CREATE_UNICODE_ENVIRONMENT", Const, 0}, ++ {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0}, ++ {"CRYPT_DELETEKEYSET", Const, 0}, ++ {"CRYPT_MACHINE_KEYSET", Const, 0}, ++ {"CRYPT_NEWKEYSET", Const, 0}, ++ {"CRYPT_SILENT", Const, 0}, ++ {"CRYPT_VERIFYCONTEXT", Const, 0}, ++ {"CS5", Const, 0}, ++ {"CS6", Const, 0}, ++ {"CS7", Const, 0}, ++ {"CS8", Const, 0}, ++ {"CSIZE", Const, 0}, ++ {"CSTART", Const, 1}, ++ {"CSTATUS", Const, 1}, ++ {"CSTOP", Const, 1}, ++ {"CSTOPB", Const, 0}, ++ {"CSUSP", Const, 1}, ++ {"CTL_MAXNAME", Const, 0}, ++ {"CTL_NET", Const, 0}, ++ {"CTL_QUERY", Const, 1}, ++ {"CTRL_BREAK_EVENT", Const, 1}, ++ {"CTRL_CLOSE_EVENT", Const, 14}, ++ {"CTRL_C_EVENT", Const, 1}, ++ {"CTRL_LOGOFF_EVENT", Const, 14}, ++ {"CTRL_SHUTDOWN_EVENT", Const, 14}, ++ {"CancelIo", Func, 0}, ++ {"CancelIoEx", Func, 1}, ++ {"CertAddCertificateContextToStore", Func, 0}, ++ {"CertChainContext", Type, 0}, ++ {"CertChainContext.ChainCount", Field, 0}, ++ {"CertChainContext.Chains", Field, 0}, ++ {"CertChainContext.HasRevocationFreshnessTime", Field, 0}, ++ {"CertChainContext.LowerQualityChainCount", Field, 0}, ++ {"CertChainContext.LowerQualityChains", Field, 0}, ++ {"CertChainContext.RevocationFreshnessTime", Field, 0}, ++ {"CertChainContext.Size", Field, 0}, ++ {"CertChainContext.TrustStatus", Field, 0}, ++ {"CertChainElement", Type, 0}, ++ {"CertChainElement.ApplicationUsage", Field, 0}, ++ {"CertChainElement.CertContext", Field, 0}, ++ {"CertChainElement.ExtendedErrorInfo", Field, 0}, ++ {"CertChainElement.IssuanceUsage", Field, 0}, ++ {"CertChainElement.RevocationInfo", Field, 0}, ++ {"CertChainElement.Size", Field, 0}, ++ {"CertChainElement.TrustStatus", Field, 0}, ++ {"CertChainPara", Type, 0}, ++ {"CertChainPara.CacheResync", Field, 0}, ++ {"CertChainPara.CheckRevocationFreshnessTime", Field, 0}, ++ {"CertChainPara.RequestedUsage", Field, 0}, ++ {"CertChainPara.RequstedIssuancePolicy", Field, 0}, ++ {"CertChainPara.RevocationFreshnessTime", Field, 0}, ++ {"CertChainPara.Size", Field, 0}, ++ {"CertChainPara.URLRetrievalTimeout", Field, 0}, ++ {"CertChainPolicyPara", Type, 0}, ++ {"CertChainPolicyPara.ExtraPolicyPara", Field, 0}, ++ {"CertChainPolicyPara.Flags", Field, 0}, ++ {"CertChainPolicyPara.Size", Field, 0}, ++ {"CertChainPolicyStatus", Type, 0}, ++ {"CertChainPolicyStatus.ChainIndex", Field, 0}, ++ {"CertChainPolicyStatus.ElementIndex", Field, 0}, ++ {"CertChainPolicyStatus.Error", Field, 0}, ++ {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0}, ++ {"CertChainPolicyStatus.Size", Field, 0}, ++ {"CertCloseStore", Func, 0}, ++ {"CertContext", Type, 0}, ++ {"CertContext.CertInfo", Field, 0}, ++ {"CertContext.EncodedCert", Field, 0}, ++ {"CertContext.EncodingType", Field, 0}, ++ {"CertContext.Length", Field, 0}, ++ {"CertContext.Store", Field, 0}, ++ {"CertCreateCertificateContext", Func, 0}, ++ {"CertEnhKeyUsage", Type, 0}, ++ {"CertEnhKeyUsage.Length", Field, 0}, ++ {"CertEnhKeyUsage.UsageIdentifiers", Field, 0}, ++ {"CertEnumCertificatesInStore", Func, 0}, ++ {"CertFreeCertificateChain", Func, 0}, ++ {"CertFreeCertificateContext", Func, 0}, ++ {"CertGetCertificateChain", Func, 0}, ++ {"CertInfo", Type, 11}, ++ {"CertOpenStore", Func, 0}, ++ {"CertOpenSystemStore", Func, 0}, ++ {"CertRevocationCrlInfo", Type, 11}, ++ {"CertRevocationInfo", Type, 0}, ++ {"CertRevocationInfo.CrlInfo", Field, 0}, ++ {"CertRevocationInfo.FreshnessTime", Field, 0}, ++ {"CertRevocationInfo.HasFreshnessTime", Field, 0}, ++ {"CertRevocationInfo.OidSpecificInfo", Field, 0}, ++ {"CertRevocationInfo.RevocationOid", Field, 0}, ++ {"CertRevocationInfo.RevocationResult", Field, 0}, ++ {"CertRevocationInfo.Size", Field, 0}, ++ {"CertSimpleChain", Type, 0}, ++ {"CertSimpleChain.Elements", Field, 0}, ++ {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0}, ++ {"CertSimpleChain.NumElements", Field, 0}, ++ {"CertSimpleChain.RevocationFreshnessTime", Field, 0}, ++ {"CertSimpleChain.Size", Field, 0}, ++ {"CertSimpleChain.TrustListInfo", Field, 0}, ++ {"CertSimpleChain.TrustStatus", Field, 0}, ++ {"CertTrustListInfo", Type, 11}, ++ {"CertTrustStatus", Type, 0}, ++ {"CertTrustStatus.ErrorStatus", Field, 0}, ++ {"CertTrustStatus.InfoStatus", Field, 0}, ++ {"CertUsageMatch", Type, 0}, ++ {"CertUsageMatch.Type", Field, 0}, ++ {"CertUsageMatch.Usage", Field, 0}, ++ {"CertVerifyCertificateChainPolicy", Func, 0}, ++ {"Chdir", Func, 0}, ++ {"CheckBpfVersion", Func, 0}, ++ {"Chflags", Func, 0}, ++ {"Chmod", Func, 0}, ++ {"Chown", Func, 0}, ++ {"Chroot", Func, 0}, ++ {"Clearenv", Func, 0}, ++ {"Close", Func, 0}, ++ {"CloseHandle", Func, 0}, ++ {"CloseOnExec", Func, 0}, ++ {"Closesocket", Func, 0}, ++ {"CmsgLen", Func, 0}, ++ {"CmsgSpace", Func, 0}, ++ {"Cmsghdr", Type, 0}, ++ {"Cmsghdr.Len", Field, 0}, ++ {"Cmsghdr.Level", Field, 0}, ++ {"Cmsghdr.Type", Field, 0}, ++ {"Cmsghdr.X__cmsg_data", Field, 0}, ++ {"CommandLineToArgv", Func, 0}, ++ {"ComputerName", Func, 0}, ++ {"Conn", Type, 9}, ++ {"Connect", Func, 0}, ++ {"ConnectEx", Func, 1}, ++ {"ConvertSidToStringSid", Func, 0}, ++ {"ConvertStringSidToSid", Func, 0}, ++ {"CopySid", Func, 0}, ++ {"Creat", Func, 0}, ++ {"CreateDirectory", Func, 0}, ++ {"CreateFile", Func, 0}, ++ {"CreateFileMapping", Func, 0}, ++ {"CreateHardLink", Func, 4}, ++ {"CreateIoCompletionPort", Func, 0}, ++ {"CreatePipe", Func, 0}, ++ {"CreateProcess", Func, 0}, ++ {"CreateProcessAsUser", Func, 10}, ++ {"CreateSymbolicLink", Func, 4}, ++ {"CreateToolhelp32Snapshot", Func, 4}, ++ {"Credential", Type, 0}, ++ {"Credential.Gid", Field, 0}, ++ {"Credential.Groups", Field, 0}, ++ {"Credential.NoSetGroups", Field, 9}, ++ {"Credential.Uid", Field, 0}, ++ {"CryptAcquireContext", Func, 0}, ++ {"CryptGenRandom", Func, 0}, ++ {"CryptReleaseContext", Func, 0}, ++ {"DIOCBSFLUSH", Const, 1}, ++ {"DIOCOSFPFLUSH", Const, 1}, ++ {"DLL", Type, 0}, ++ {"DLL.Handle", Field, 0}, ++ {"DLL.Name", Field, 0}, ++ {"DLLError", Type, 0}, ++ {"DLLError.Err", Field, 0}, ++ {"DLLError.Msg", Field, 0}, ++ {"DLLError.ObjName", Field, 0}, ++ {"DLT_A429", Const, 0}, ++ {"DLT_A653_ICM", Const, 0}, ++ {"DLT_AIRONET_HEADER", Const, 0}, ++ {"DLT_AOS", Const, 1}, ++ {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0}, ++ {"DLT_ARCNET", Const, 0}, ++ {"DLT_ARCNET_LINUX", Const, 0}, ++ {"DLT_ATM_CLIP", Const, 0}, ++ {"DLT_ATM_RFC1483", Const, 0}, ++ {"DLT_AURORA", Const, 0}, ++ {"DLT_AX25", Const, 0}, ++ {"DLT_AX25_KISS", Const, 0}, ++ {"DLT_BACNET_MS_TP", Const, 0}, ++ {"DLT_BLUETOOTH_HCI_H4", Const, 0}, ++ {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0}, ++ {"DLT_CAN20B", Const, 0}, ++ {"DLT_CAN_SOCKETCAN", Const, 1}, ++ {"DLT_CHAOS", Const, 0}, ++ {"DLT_CHDLC", Const, 0}, ++ {"DLT_CISCO_IOS", Const, 0}, ++ {"DLT_C_HDLC", Const, 0}, ++ {"DLT_C_HDLC_WITH_DIR", Const, 0}, ++ {"DLT_DBUS", Const, 1}, ++ {"DLT_DECT", Const, 1}, ++ {"DLT_DOCSIS", Const, 0}, ++ {"DLT_DVB_CI", Const, 1}, ++ {"DLT_ECONET", Const, 0}, ++ {"DLT_EN10MB", Const, 0}, ++ {"DLT_EN3MB", Const, 0}, ++ {"DLT_ENC", Const, 0}, ++ {"DLT_ERF", Const, 0}, ++ {"DLT_ERF_ETH", Const, 0}, ++ {"DLT_ERF_POS", Const, 0}, ++ {"DLT_FC_2", Const, 1}, ++ {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1}, ++ {"DLT_FDDI", Const, 0}, ++ {"DLT_FLEXRAY", Const, 0}, ++ {"DLT_FRELAY", Const, 0}, ++ {"DLT_FRELAY_WITH_DIR", Const, 0}, ++ {"DLT_GCOM_SERIAL", Const, 0}, ++ {"DLT_GCOM_T1E1", Const, 0}, ++ {"DLT_GPF_F", Const, 0}, ++ {"DLT_GPF_T", Const, 0}, ++ {"DLT_GPRS_LLC", Const, 0}, ++ {"DLT_GSMTAP_ABIS", Const, 1}, ++ {"DLT_GSMTAP_UM", Const, 1}, ++ {"DLT_HDLC", Const, 1}, ++ {"DLT_HHDLC", Const, 0}, ++ {"DLT_HIPPI", Const, 1}, ++ {"DLT_IBM_SN", Const, 0}, ++ {"DLT_IBM_SP", Const, 0}, ++ {"DLT_IEEE802", Const, 0}, ++ {"DLT_IEEE802_11", Const, 0}, ++ {"DLT_IEEE802_11_RADIO", Const, 0}, ++ {"DLT_IEEE802_11_RADIO_AVS", Const, 0}, ++ {"DLT_IEEE802_15_4", Const, 0}, ++ {"DLT_IEEE802_15_4_LINUX", Const, 0}, ++ {"DLT_IEEE802_15_4_NOFCS", Const, 1}, ++ {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0}, ++ {"DLT_IEEE802_16_MAC_CPS", Const, 0}, ++ {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0}, ++ {"DLT_IPFILTER", Const, 0}, ++ {"DLT_IPMB", Const, 0}, ++ {"DLT_IPMB_LINUX", Const, 0}, ++ {"DLT_IPNET", Const, 1}, ++ {"DLT_IPOIB", Const, 1}, ++ {"DLT_IPV4", Const, 1}, ++ {"DLT_IPV6", Const, 1}, ++ {"DLT_IP_OVER_FC", Const, 0}, ++ {"DLT_JUNIPER_ATM1", Const, 0}, ++ {"DLT_JUNIPER_ATM2", Const, 0}, ++ {"DLT_JUNIPER_ATM_CEMIC", Const, 1}, ++ {"DLT_JUNIPER_CHDLC", Const, 0}, ++ {"DLT_JUNIPER_ES", Const, 0}, ++ {"DLT_JUNIPER_ETHER", Const, 0}, ++ {"DLT_JUNIPER_FIBRECHANNEL", Const, 1}, ++ {"DLT_JUNIPER_FRELAY", Const, 0}, ++ {"DLT_JUNIPER_GGSN", Const, 0}, ++ {"DLT_JUNIPER_ISM", Const, 0}, ++ {"DLT_JUNIPER_MFR", Const, 0}, ++ {"DLT_JUNIPER_MLFR", Const, 0}, ++ {"DLT_JUNIPER_MLPPP", Const, 0}, ++ {"DLT_JUNIPER_MONITOR", Const, 0}, ++ {"DLT_JUNIPER_PIC_PEER", Const, 0}, ++ {"DLT_JUNIPER_PPP", Const, 0}, ++ {"DLT_JUNIPER_PPPOE", Const, 0}, ++ {"DLT_JUNIPER_PPPOE_ATM", Const, 0}, ++ {"DLT_JUNIPER_SERVICES", Const, 0}, ++ {"DLT_JUNIPER_SRX_E2E", Const, 1}, ++ {"DLT_JUNIPER_ST", Const, 0}, ++ {"DLT_JUNIPER_VP", Const, 0}, ++ {"DLT_JUNIPER_VS", Const, 1}, ++ {"DLT_LAPB_WITH_DIR", Const, 0}, ++ {"DLT_LAPD", Const, 0}, ++ {"DLT_LIN", Const, 0}, ++ {"DLT_LINUX_EVDEV", Const, 1}, ++ {"DLT_LINUX_IRDA", Const, 0}, ++ {"DLT_LINUX_LAPD", Const, 0}, ++ {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0}, ++ {"DLT_LINUX_SLL", Const, 0}, ++ {"DLT_LOOP", Const, 0}, ++ {"DLT_LTALK", Const, 0}, ++ {"DLT_MATCHING_MAX", Const, 1}, ++ {"DLT_MATCHING_MIN", Const, 1}, ++ {"DLT_MFR", Const, 0}, ++ {"DLT_MOST", Const, 0}, ++ {"DLT_MPEG_2_TS", Const, 1}, ++ {"DLT_MPLS", Const, 1}, ++ {"DLT_MTP2", Const, 0}, ++ {"DLT_MTP2_WITH_PHDR", Const, 0}, ++ {"DLT_MTP3", Const, 0}, ++ {"DLT_MUX27010", Const, 1}, ++ {"DLT_NETANALYZER", Const, 1}, ++ {"DLT_NETANALYZER_TRANSPARENT", Const, 1}, ++ {"DLT_NFC_LLCP", Const, 1}, ++ {"DLT_NFLOG", Const, 1}, ++ {"DLT_NG40", Const, 1}, ++ {"DLT_NULL", Const, 0}, ++ {"DLT_PCI_EXP", Const, 0}, ++ {"DLT_PFLOG", Const, 0}, ++ {"DLT_PFSYNC", Const, 0}, ++ {"DLT_PPI", Const, 0}, ++ {"DLT_PPP", Const, 0}, ++ {"DLT_PPP_BSDOS", Const, 0}, ++ {"DLT_PPP_ETHER", Const, 0}, ++ {"DLT_PPP_PPPD", Const, 0}, ++ {"DLT_PPP_SERIAL", Const, 0}, ++ {"DLT_PPP_WITH_DIR", Const, 0}, ++ {"DLT_PPP_WITH_DIRECTION", Const, 0}, ++ {"DLT_PRISM_HEADER", Const, 0}, ++ {"DLT_PRONET", Const, 0}, ++ {"DLT_RAIF1", Const, 0}, ++ {"DLT_RAW", Const, 0}, ++ {"DLT_RAWAF_MASK", Const, 1}, ++ {"DLT_RIO", Const, 0}, ++ {"DLT_SCCP", Const, 0}, ++ {"DLT_SITA", Const, 0}, ++ {"DLT_SLIP", Const, 0}, ++ {"DLT_SLIP_BSDOS", Const, 0}, ++ {"DLT_STANAG_5066_D_PDU", Const, 1}, ++ {"DLT_SUNATM", Const, 0}, ++ {"DLT_SYMANTEC_FIREWALL", Const, 0}, ++ {"DLT_TZSP", Const, 0}, ++ {"DLT_USB", Const, 0}, ++ {"DLT_USB_LINUX", Const, 0}, ++ {"DLT_USB_LINUX_MMAPPED", Const, 1}, ++ {"DLT_USER0", Const, 0}, ++ {"DLT_USER1", Const, 0}, ++ {"DLT_USER10", Const, 0}, ++ {"DLT_USER11", Const, 0}, ++ {"DLT_USER12", Const, 0}, ++ {"DLT_USER13", Const, 0}, ++ {"DLT_USER14", Const, 0}, ++ {"DLT_USER15", Const, 0}, ++ {"DLT_USER2", Const, 0}, ++ {"DLT_USER3", Const, 0}, ++ {"DLT_USER4", Const, 0}, ++ {"DLT_USER5", Const, 0}, ++ {"DLT_USER6", Const, 0}, ++ {"DLT_USER7", Const, 0}, ++ {"DLT_USER8", Const, 0}, ++ {"DLT_USER9", Const, 0}, ++ {"DLT_WIHART", Const, 1}, ++ {"DLT_X2E_SERIAL", Const, 0}, ++ {"DLT_X2E_XORAYA", Const, 0}, ++ {"DNSMXData", Type, 0}, ++ {"DNSMXData.NameExchange", Field, 0}, ++ {"DNSMXData.Pad", Field, 0}, ++ {"DNSMXData.Preference", Field, 0}, ++ {"DNSPTRData", Type, 0}, ++ {"DNSPTRData.Host", Field, 0}, ++ {"DNSRecord", Type, 0}, ++ {"DNSRecord.Data", Field, 0}, ++ {"DNSRecord.Dw", Field, 0}, ++ {"DNSRecord.Length", Field, 0}, ++ {"DNSRecord.Name", Field, 0}, ++ {"DNSRecord.Next", Field, 0}, ++ {"DNSRecord.Reserved", Field, 0}, ++ {"DNSRecord.Ttl", Field, 0}, ++ {"DNSRecord.Type", Field, 0}, ++ {"DNSSRVData", Type, 0}, ++ {"DNSSRVData.Pad", Field, 0}, ++ {"DNSSRVData.Port", Field, 0}, ++ {"DNSSRVData.Priority", Field, 0}, ++ {"DNSSRVData.Target", Field, 0}, ++ {"DNSSRVData.Weight", Field, 0}, ++ {"DNSTXTData", Type, 0}, ++ {"DNSTXTData.StringArray", Field, 0}, ++ {"DNSTXTData.StringCount", Field, 0}, ++ {"DNS_INFO_NO_RECORDS", Const, 4}, ++ {"DNS_TYPE_A", Const, 0}, ++ {"DNS_TYPE_A6", Const, 0}, ++ {"DNS_TYPE_AAAA", Const, 0}, ++ {"DNS_TYPE_ADDRS", Const, 0}, ++ {"DNS_TYPE_AFSDB", Const, 0}, ++ {"DNS_TYPE_ALL", Const, 0}, ++ {"DNS_TYPE_ANY", Const, 0}, ++ {"DNS_TYPE_ATMA", Const, 0}, ++ {"DNS_TYPE_AXFR", Const, 0}, ++ {"DNS_TYPE_CERT", Const, 0}, ++ {"DNS_TYPE_CNAME", Const, 0}, ++ {"DNS_TYPE_DHCID", Const, 0}, ++ {"DNS_TYPE_DNAME", Const, 0}, ++ {"DNS_TYPE_DNSKEY", Const, 0}, ++ {"DNS_TYPE_DS", Const, 0}, ++ {"DNS_TYPE_EID", Const, 0}, ++ {"DNS_TYPE_GID", Const, 0}, ++ {"DNS_TYPE_GPOS", Const, 0}, ++ {"DNS_TYPE_HINFO", Const, 0}, ++ {"DNS_TYPE_ISDN", Const, 0}, ++ {"DNS_TYPE_IXFR", Const, 0}, ++ {"DNS_TYPE_KEY", Const, 0}, ++ {"DNS_TYPE_KX", Const, 0}, ++ {"DNS_TYPE_LOC", Const, 0}, ++ {"DNS_TYPE_MAILA", Const, 0}, ++ {"DNS_TYPE_MAILB", Const, 0}, ++ {"DNS_TYPE_MB", Const, 0}, ++ {"DNS_TYPE_MD", Const, 0}, ++ {"DNS_TYPE_MF", Const, 0}, ++ {"DNS_TYPE_MG", Const, 0}, ++ {"DNS_TYPE_MINFO", Const, 0}, ++ {"DNS_TYPE_MR", Const, 0}, ++ {"DNS_TYPE_MX", Const, 0}, ++ {"DNS_TYPE_NAPTR", Const, 0}, ++ {"DNS_TYPE_NBSTAT", Const, 0}, ++ {"DNS_TYPE_NIMLOC", Const, 0}, ++ {"DNS_TYPE_NS", Const, 0}, ++ {"DNS_TYPE_NSAP", Const, 0}, ++ {"DNS_TYPE_NSAPPTR", Const, 0}, ++ {"DNS_TYPE_NSEC", Const, 0}, ++ {"DNS_TYPE_NULL", Const, 0}, ++ {"DNS_TYPE_NXT", Const, 0}, ++ {"DNS_TYPE_OPT", Const, 0}, ++ {"DNS_TYPE_PTR", Const, 0}, ++ {"DNS_TYPE_PX", Const, 0}, ++ {"DNS_TYPE_RP", Const, 0}, ++ {"DNS_TYPE_RRSIG", Const, 0}, ++ {"DNS_TYPE_RT", Const, 0}, ++ {"DNS_TYPE_SIG", Const, 0}, ++ {"DNS_TYPE_SINK", Const, 0}, ++ {"DNS_TYPE_SOA", Const, 0}, ++ {"DNS_TYPE_SRV", Const, 0}, ++ {"DNS_TYPE_TEXT", Const, 0}, ++ {"DNS_TYPE_TKEY", Const, 0}, ++ {"DNS_TYPE_TSIG", Const, 0}, ++ {"DNS_TYPE_UID", Const, 0}, ++ {"DNS_TYPE_UINFO", Const, 0}, ++ {"DNS_TYPE_UNSPEC", Const, 0}, ++ {"DNS_TYPE_WINS", Const, 0}, ++ {"DNS_TYPE_WINSR", Const, 0}, ++ {"DNS_TYPE_WKS", Const, 0}, ++ {"DNS_TYPE_X25", Const, 0}, ++ {"DT_BLK", Const, 0}, ++ {"DT_CHR", Const, 0}, ++ {"DT_DIR", Const, 0}, ++ {"DT_FIFO", Const, 0}, ++ {"DT_LNK", Const, 0}, ++ {"DT_REG", Const, 0}, ++ {"DT_SOCK", Const, 0}, ++ {"DT_UNKNOWN", Const, 0}, ++ {"DT_WHT", Const, 0}, ++ {"DUPLICATE_CLOSE_SOURCE", Const, 0}, ++ {"DUPLICATE_SAME_ACCESS", Const, 0}, ++ {"DeleteFile", Func, 0}, ++ {"DetachLsf", Func, 0}, ++ {"DeviceIoControl", Func, 4}, ++ {"Dirent", Type, 0}, ++ {"Dirent.Fileno", Field, 0}, ++ {"Dirent.Ino", Field, 0}, ++ {"Dirent.Name", Field, 0}, ++ {"Dirent.Namlen", Field, 0}, ++ {"Dirent.Off", Field, 0}, ++ {"Dirent.Pad0", Field, 12}, ++ {"Dirent.Pad1", Field, 12}, ++ {"Dirent.Pad_cgo_0", Field, 0}, ++ {"Dirent.Reclen", Field, 0}, ++ {"Dirent.Seekoff", Field, 0}, ++ {"Dirent.Type", Field, 0}, ++ {"Dirent.X__d_padding", Field, 3}, ++ {"DnsNameCompare", Func, 4}, ++ {"DnsQuery", Func, 0}, ++ {"DnsRecordListFree", Func, 0}, ++ {"DnsSectionAdditional", Const, 4}, ++ {"DnsSectionAnswer", Const, 4}, ++ {"DnsSectionAuthority", Const, 4}, ++ {"DnsSectionQuestion", Const, 4}, ++ {"Dup", Func, 0}, ++ {"Dup2", Func, 0}, ++ {"Dup3", Func, 2}, ++ {"DuplicateHandle", Func, 0}, ++ {"E2BIG", Const, 0}, ++ {"EACCES", Const, 0}, ++ {"EADDRINUSE", Const, 0}, ++ {"EADDRNOTAVAIL", Const, 0}, ++ {"EADV", Const, 0}, ++ {"EAFNOSUPPORT", Const, 0}, ++ {"EAGAIN", Const, 0}, ++ {"EALREADY", Const, 0}, ++ {"EAUTH", Const, 0}, ++ {"EBADARCH", Const, 0}, ++ {"EBADE", Const, 0}, ++ {"EBADEXEC", Const, 0}, ++ {"EBADF", Const, 0}, ++ {"EBADFD", Const, 0}, ++ {"EBADMACHO", Const, 0}, ++ {"EBADMSG", Const, 0}, ++ {"EBADR", Const, 0}, ++ {"EBADRPC", Const, 0}, ++ {"EBADRQC", Const, 0}, ++ {"EBADSLT", Const, 0}, ++ {"EBFONT", Const, 0}, ++ {"EBUSY", Const, 0}, ++ {"ECANCELED", Const, 0}, ++ {"ECAPMODE", Const, 1}, ++ {"ECHILD", Const, 0}, ++ {"ECHO", Const, 0}, ++ {"ECHOCTL", Const, 0}, ++ {"ECHOE", Const, 0}, ++ {"ECHOK", Const, 0}, ++ {"ECHOKE", Const, 0}, ++ {"ECHONL", Const, 0}, ++ {"ECHOPRT", Const, 0}, ++ {"ECHRNG", Const, 0}, ++ {"ECOMM", Const, 0}, ++ {"ECONNABORTED", Const, 0}, ++ {"ECONNREFUSED", Const, 0}, ++ {"ECONNRESET", Const, 0}, ++ {"EDEADLK", Const, 0}, ++ {"EDEADLOCK", Const, 0}, ++ {"EDESTADDRREQ", Const, 0}, ++ {"EDEVERR", Const, 0}, ++ {"EDOM", Const, 0}, ++ {"EDOOFUS", Const, 0}, ++ {"EDOTDOT", Const, 0}, ++ {"EDQUOT", Const, 0}, ++ {"EEXIST", Const, 0}, ++ {"EFAULT", Const, 0}, ++ {"EFBIG", Const, 0}, ++ {"EFER_LMA", Const, 1}, ++ {"EFER_LME", Const, 1}, ++ {"EFER_NXE", Const, 1}, ++ {"EFER_SCE", Const, 1}, ++ {"EFTYPE", Const, 0}, ++ {"EHOSTDOWN", Const, 0}, ++ {"EHOSTUNREACH", Const, 0}, ++ {"EHWPOISON", Const, 0}, ++ {"EIDRM", Const, 0}, ++ {"EILSEQ", Const, 0}, ++ {"EINPROGRESS", Const, 0}, ++ {"EINTR", Const, 0}, ++ {"EINVAL", Const, 0}, ++ {"EIO", Const, 0}, ++ {"EIPSEC", Const, 1}, ++ {"EISCONN", Const, 0}, ++ {"EISDIR", Const, 0}, ++ {"EISNAM", Const, 0}, ++ {"EKEYEXPIRED", Const, 0}, ++ {"EKEYREJECTED", Const, 0}, ++ {"EKEYREVOKED", Const, 0}, ++ {"EL2HLT", Const, 0}, ++ {"EL2NSYNC", Const, 0}, ++ {"EL3HLT", Const, 0}, ++ {"EL3RST", Const, 0}, ++ {"ELAST", Const, 0}, ++ {"ELF_NGREG", Const, 0}, ++ {"ELF_PRARGSZ", Const, 0}, ++ {"ELIBACC", Const, 0}, ++ {"ELIBBAD", Const, 0}, ++ {"ELIBEXEC", Const, 0}, ++ {"ELIBMAX", Const, 0}, ++ {"ELIBSCN", Const, 0}, ++ {"ELNRNG", Const, 0}, ++ {"ELOOP", Const, 0}, ++ {"EMEDIUMTYPE", Const, 0}, ++ {"EMFILE", Const, 0}, ++ {"EMLINK", Const, 0}, ++ {"EMSGSIZE", Const, 0}, ++ {"EMT_TAGOVF", Const, 1}, ++ {"EMULTIHOP", Const, 0}, ++ {"EMUL_ENABLED", Const, 1}, ++ {"EMUL_LINUX", Const, 1}, ++ {"EMUL_LINUX32", Const, 1}, ++ {"EMUL_MAXID", Const, 1}, ++ {"EMUL_NATIVE", Const, 1}, ++ {"ENAMETOOLONG", Const, 0}, ++ {"ENAVAIL", Const, 0}, ++ {"ENDRUNDISC", Const, 1}, ++ {"ENEEDAUTH", Const, 0}, ++ {"ENETDOWN", Const, 0}, ++ {"ENETRESET", Const, 0}, ++ {"ENETUNREACH", Const, 0}, ++ {"ENFILE", Const, 0}, ++ {"ENOANO", Const, 0}, ++ {"ENOATTR", Const, 0}, ++ {"ENOBUFS", Const, 0}, ++ {"ENOCSI", Const, 0}, ++ {"ENODATA", Const, 0}, ++ {"ENODEV", Const, 0}, ++ {"ENOENT", Const, 0}, ++ {"ENOEXEC", Const, 0}, ++ {"ENOKEY", Const, 0}, ++ {"ENOLCK", Const, 0}, ++ {"ENOLINK", Const, 0}, ++ {"ENOMEDIUM", Const, 0}, ++ {"ENOMEM", Const, 0}, ++ {"ENOMSG", Const, 0}, ++ {"ENONET", Const, 0}, ++ {"ENOPKG", Const, 0}, ++ {"ENOPOLICY", Const, 0}, ++ {"ENOPROTOOPT", Const, 0}, ++ {"ENOSPC", Const, 0}, ++ {"ENOSR", Const, 0}, ++ {"ENOSTR", Const, 0}, ++ {"ENOSYS", Const, 0}, ++ {"ENOTBLK", Const, 0}, ++ {"ENOTCAPABLE", Const, 0}, ++ {"ENOTCONN", Const, 0}, ++ {"ENOTDIR", Const, 0}, ++ {"ENOTEMPTY", Const, 0}, ++ {"ENOTNAM", Const, 0}, ++ {"ENOTRECOVERABLE", Const, 0}, ++ {"ENOTSOCK", Const, 0}, ++ {"ENOTSUP", Const, 0}, ++ {"ENOTTY", Const, 0}, ++ {"ENOTUNIQ", Const, 0}, ++ {"ENXIO", Const, 0}, ++ {"EN_SW_CTL_INF", Const, 1}, ++ {"EN_SW_CTL_PREC", Const, 1}, ++ {"EN_SW_CTL_ROUND", Const, 1}, ++ {"EN_SW_DATACHAIN", Const, 1}, ++ {"EN_SW_DENORM", Const, 1}, ++ {"EN_SW_INVOP", Const, 1}, ++ {"EN_SW_OVERFLOW", Const, 1}, ++ {"EN_SW_PRECLOSS", Const, 1}, ++ {"EN_SW_UNDERFLOW", Const, 1}, ++ {"EN_SW_ZERODIV", Const, 1}, ++ {"EOPNOTSUPP", Const, 0}, ++ {"EOVERFLOW", Const, 0}, ++ {"EOWNERDEAD", Const, 0}, ++ {"EPERM", Const, 0}, ++ {"EPFNOSUPPORT", Const, 0}, ++ {"EPIPE", Const, 0}, ++ {"EPOLLERR", Const, 0}, ++ {"EPOLLET", Const, 0}, ++ {"EPOLLHUP", Const, 0}, ++ {"EPOLLIN", Const, 0}, ++ {"EPOLLMSG", Const, 0}, ++ {"EPOLLONESHOT", Const, 0}, ++ {"EPOLLOUT", Const, 0}, ++ {"EPOLLPRI", Const, 0}, ++ {"EPOLLRDBAND", Const, 0}, ++ {"EPOLLRDHUP", Const, 0}, ++ {"EPOLLRDNORM", Const, 0}, ++ {"EPOLLWRBAND", Const, 0}, ++ {"EPOLLWRNORM", Const, 0}, ++ {"EPOLL_CLOEXEC", Const, 0}, ++ {"EPOLL_CTL_ADD", Const, 0}, ++ {"EPOLL_CTL_DEL", Const, 0}, ++ {"EPOLL_CTL_MOD", Const, 0}, ++ {"EPOLL_NONBLOCK", Const, 0}, ++ {"EPROCLIM", Const, 0}, ++ {"EPROCUNAVAIL", Const, 0}, ++ {"EPROGMISMATCH", Const, 0}, ++ {"EPROGUNAVAIL", Const, 0}, ++ {"EPROTO", Const, 0}, ++ {"EPROTONOSUPPORT", Const, 0}, ++ {"EPROTOTYPE", Const, 0}, ++ {"EPWROFF", Const, 0}, ++ {"EQFULL", Const, 16}, ++ {"ERANGE", Const, 0}, ++ {"EREMCHG", Const, 0}, ++ {"EREMOTE", Const, 0}, ++ {"EREMOTEIO", Const, 0}, ++ {"ERESTART", Const, 0}, ++ {"ERFKILL", Const, 0}, ++ {"EROFS", Const, 0}, ++ {"ERPCMISMATCH", Const, 0}, ++ {"ERROR_ACCESS_DENIED", Const, 0}, ++ {"ERROR_ALREADY_EXISTS", Const, 0}, ++ {"ERROR_BROKEN_PIPE", Const, 0}, ++ {"ERROR_BUFFER_OVERFLOW", Const, 0}, ++ {"ERROR_DIR_NOT_EMPTY", Const, 8}, ++ {"ERROR_ENVVAR_NOT_FOUND", Const, 0}, ++ {"ERROR_FILE_EXISTS", Const, 0}, ++ {"ERROR_FILE_NOT_FOUND", Const, 0}, ++ {"ERROR_HANDLE_EOF", Const, 2}, ++ {"ERROR_INSUFFICIENT_BUFFER", Const, 0}, ++ {"ERROR_IO_PENDING", Const, 0}, ++ {"ERROR_MOD_NOT_FOUND", Const, 0}, ++ {"ERROR_MORE_DATA", Const, 3}, ++ {"ERROR_NETNAME_DELETED", Const, 3}, ++ {"ERROR_NOT_FOUND", Const, 1}, ++ {"ERROR_NO_MORE_FILES", Const, 0}, ++ {"ERROR_OPERATION_ABORTED", Const, 0}, ++ {"ERROR_PATH_NOT_FOUND", Const, 0}, ++ {"ERROR_PRIVILEGE_NOT_HELD", Const, 4}, ++ {"ERROR_PROC_NOT_FOUND", Const, 0}, ++ {"ESHLIBVERS", Const, 0}, ++ {"ESHUTDOWN", Const, 0}, ++ {"ESOCKTNOSUPPORT", Const, 0}, ++ {"ESPIPE", Const, 0}, ++ {"ESRCH", Const, 0}, ++ {"ESRMNT", Const, 0}, ++ {"ESTALE", Const, 0}, ++ {"ESTRPIPE", Const, 0}, ++ {"ETHERCAP_JUMBO_MTU", Const, 1}, ++ {"ETHERCAP_VLAN_HWTAGGING", Const, 1}, ++ {"ETHERCAP_VLAN_MTU", Const, 1}, ++ {"ETHERMIN", Const, 1}, ++ {"ETHERMTU", Const, 1}, ++ {"ETHERMTU_JUMBO", Const, 1}, ++ {"ETHERTYPE_8023", Const, 1}, ++ {"ETHERTYPE_AARP", Const, 1}, ++ {"ETHERTYPE_ACCTON", Const, 1}, ++ {"ETHERTYPE_AEONIC", Const, 1}, ++ {"ETHERTYPE_ALPHA", Const, 1}, ++ {"ETHERTYPE_AMBER", Const, 1}, ++ {"ETHERTYPE_AMOEBA", Const, 1}, ++ {"ETHERTYPE_AOE", Const, 1}, ++ {"ETHERTYPE_APOLLO", Const, 1}, ++ {"ETHERTYPE_APOLLODOMAIN", Const, 1}, ++ {"ETHERTYPE_APPLETALK", Const, 1}, ++ {"ETHERTYPE_APPLITEK", Const, 1}, ++ {"ETHERTYPE_ARGONAUT", Const, 1}, ++ {"ETHERTYPE_ARP", Const, 1}, ++ {"ETHERTYPE_AT", Const, 1}, ++ {"ETHERTYPE_ATALK", Const, 1}, ++ {"ETHERTYPE_ATOMIC", Const, 1}, ++ {"ETHERTYPE_ATT", Const, 1}, ++ {"ETHERTYPE_ATTSTANFORD", Const, 1}, ++ {"ETHERTYPE_AUTOPHON", Const, 1}, ++ {"ETHERTYPE_AXIS", Const, 1}, ++ {"ETHERTYPE_BCLOOP", Const, 1}, ++ {"ETHERTYPE_BOFL", Const, 1}, ++ {"ETHERTYPE_CABLETRON", Const, 1}, ++ {"ETHERTYPE_CHAOS", Const, 1}, ++ {"ETHERTYPE_COMDESIGN", Const, 1}, ++ {"ETHERTYPE_COMPUGRAPHIC", Const, 1}, ++ {"ETHERTYPE_COUNTERPOINT", Const, 1}, ++ {"ETHERTYPE_CRONUS", Const, 1}, ++ {"ETHERTYPE_CRONUSVLN", Const, 1}, ++ {"ETHERTYPE_DCA", Const, 1}, ++ {"ETHERTYPE_DDE", Const, 1}, ++ {"ETHERTYPE_DEBNI", Const, 1}, ++ {"ETHERTYPE_DECAM", Const, 1}, ++ {"ETHERTYPE_DECCUST", Const, 1}, ++ {"ETHERTYPE_DECDIAG", Const, 1}, ++ {"ETHERTYPE_DECDNS", Const, 1}, ++ {"ETHERTYPE_DECDTS", Const, 1}, ++ {"ETHERTYPE_DECEXPER", Const, 1}, ++ {"ETHERTYPE_DECLAST", Const, 1}, ++ {"ETHERTYPE_DECLTM", Const, 1}, ++ {"ETHERTYPE_DECMUMPS", Const, 1}, ++ {"ETHERTYPE_DECNETBIOS", Const, 1}, ++ {"ETHERTYPE_DELTACON", Const, 1}, ++ {"ETHERTYPE_DIDDLE", Const, 1}, ++ {"ETHERTYPE_DLOG1", Const, 1}, ++ {"ETHERTYPE_DLOG2", Const, 1}, ++ {"ETHERTYPE_DN", Const, 1}, ++ {"ETHERTYPE_DOGFIGHT", Const, 1}, ++ {"ETHERTYPE_DSMD", Const, 1}, ++ {"ETHERTYPE_ECMA", Const, 1}, ++ {"ETHERTYPE_ENCRYPT", Const, 1}, ++ {"ETHERTYPE_ES", Const, 1}, ++ {"ETHERTYPE_EXCELAN", Const, 1}, ++ {"ETHERTYPE_EXPERDATA", Const, 1}, ++ {"ETHERTYPE_FLIP", Const, 1}, ++ {"ETHERTYPE_FLOWCONTROL", Const, 1}, ++ {"ETHERTYPE_FRARP", Const, 1}, ++ {"ETHERTYPE_GENDYN", Const, 1}, ++ {"ETHERTYPE_HAYES", Const, 1}, ++ {"ETHERTYPE_HIPPI_FP", Const, 1}, ++ {"ETHERTYPE_HITACHI", Const, 1}, ++ {"ETHERTYPE_HP", Const, 1}, ++ {"ETHERTYPE_IEEEPUP", Const, 1}, ++ {"ETHERTYPE_IEEEPUPAT", Const, 1}, ++ {"ETHERTYPE_IMLBL", Const, 1}, ++ {"ETHERTYPE_IMLBLDIAG", Const, 1}, ++ {"ETHERTYPE_IP", Const, 1}, ++ {"ETHERTYPE_IPAS", Const, 1}, ++ {"ETHERTYPE_IPV6", Const, 1}, ++ {"ETHERTYPE_IPX", Const, 1}, ++ {"ETHERTYPE_IPXNEW", Const, 1}, ++ {"ETHERTYPE_KALPANA", Const, 1}, ++ {"ETHERTYPE_LANBRIDGE", Const, 1}, ++ {"ETHERTYPE_LANPROBE", Const, 1}, ++ {"ETHERTYPE_LAT", Const, 1}, ++ {"ETHERTYPE_LBACK", Const, 1}, ++ {"ETHERTYPE_LITTLE", Const, 1}, ++ {"ETHERTYPE_LLDP", Const, 1}, ++ {"ETHERTYPE_LOGICRAFT", Const, 1}, ++ {"ETHERTYPE_LOOPBACK", Const, 1}, ++ {"ETHERTYPE_MATRA", Const, 1}, ++ {"ETHERTYPE_MAX", Const, 1}, ++ {"ETHERTYPE_MERIT", Const, 1}, ++ {"ETHERTYPE_MICP", Const, 1}, ++ {"ETHERTYPE_MOPDL", Const, 1}, ++ {"ETHERTYPE_MOPRC", Const, 1}, ++ {"ETHERTYPE_MOTOROLA", Const, 1}, ++ {"ETHERTYPE_MPLS", Const, 1}, ++ {"ETHERTYPE_MPLS_MCAST", Const, 1}, ++ {"ETHERTYPE_MUMPS", Const, 1}, ++ {"ETHERTYPE_NBPCC", Const, 1}, ++ {"ETHERTYPE_NBPCLAIM", Const, 1}, ++ {"ETHERTYPE_NBPCLREQ", Const, 1}, ++ {"ETHERTYPE_NBPCLRSP", Const, 1}, ++ {"ETHERTYPE_NBPCREQ", Const, 1}, ++ {"ETHERTYPE_NBPCRSP", Const, 1}, ++ {"ETHERTYPE_NBPDG", Const, 1}, ++ {"ETHERTYPE_NBPDGB", Const, 1}, ++ {"ETHERTYPE_NBPDLTE", Const, 1}, ++ {"ETHERTYPE_NBPRAR", Const, 1}, ++ {"ETHERTYPE_NBPRAS", Const, 1}, ++ {"ETHERTYPE_NBPRST", Const, 1}, ++ {"ETHERTYPE_NBPSCD", Const, 1}, ++ {"ETHERTYPE_NBPVCD", Const, 1}, ++ {"ETHERTYPE_NBS", Const, 1}, ++ {"ETHERTYPE_NCD", Const, 1}, ++ {"ETHERTYPE_NESTAR", Const, 1}, ++ {"ETHERTYPE_NETBEUI", Const, 1}, ++ {"ETHERTYPE_NOVELL", Const, 1}, ++ {"ETHERTYPE_NS", Const, 1}, ++ {"ETHERTYPE_NSAT", Const, 1}, ++ {"ETHERTYPE_NSCOMPAT", Const, 1}, ++ {"ETHERTYPE_NTRAILER", Const, 1}, ++ {"ETHERTYPE_OS9", Const, 1}, ++ {"ETHERTYPE_OS9NET", Const, 1}, ++ {"ETHERTYPE_PACER", Const, 1}, ++ {"ETHERTYPE_PAE", Const, 1}, ++ {"ETHERTYPE_PCS", Const, 1}, ++ {"ETHERTYPE_PLANNING", Const, 1}, ++ {"ETHERTYPE_PPP", Const, 1}, ++ {"ETHERTYPE_PPPOE", Const, 1}, ++ {"ETHERTYPE_PPPOEDISC", Const, 1}, ++ {"ETHERTYPE_PRIMENTS", Const, 1}, ++ {"ETHERTYPE_PUP", Const, 1}, ++ {"ETHERTYPE_PUPAT", Const, 1}, ++ {"ETHERTYPE_QINQ", Const, 1}, ++ {"ETHERTYPE_RACAL", Const, 1}, ++ {"ETHERTYPE_RATIONAL", Const, 1}, ++ {"ETHERTYPE_RAWFR", Const, 1}, ++ {"ETHERTYPE_RCL", Const, 1}, ++ {"ETHERTYPE_RDP", Const, 1}, ++ {"ETHERTYPE_RETIX", Const, 1}, ++ {"ETHERTYPE_REVARP", Const, 1}, ++ {"ETHERTYPE_SCA", Const, 1}, ++ {"ETHERTYPE_SECTRA", Const, 1}, ++ {"ETHERTYPE_SECUREDATA", Const, 1}, ++ {"ETHERTYPE_SGITW", Const, 1}, ++ {"ETHERTYPE_SG_BOUNCE", Const, 1}, ++ {"ETHERTYPE_SG_DIAG", Const, 1}, ++ {"ETHERTYPE_SG_NETGAMES", Const, 1}, ++ {"ETHERTYPE_SG_RESV", Const, 1}, ++ {"ETHERTYPE_SIMNET", Const, 1}, ++ {"ETHERTYPE_SLOW", Const, 1}, ++ {"ETHERTYPE_SLOWPROTOCOLS", Const, 1}, ++ {"ETHERTYPE_SNA", Const, 1}, ++ {"ETHERTYPE_SNMP", Const, 1}, ++ {"ETHERTYPE_SONIX", Const, 1}, ++ {"ETHERTYPE_SPIDER", Const, 1}, ++ {"ETHERTYPE_SPRITE", Const, 1}, ++ {"ETHERTYPE_STP", Const, 1}, ++ {"ETHERTYPE_TALARIS", Const, 1}, ++ {"ETHERTYPE_TALARISMC", Const, 1}, ++ {"ETHERTYPE_TCPCOMP", Const, 1}, ++ {"ETHERTYPE_TCPSM", Const, 1}, ++ {"ETHERTYPE_TEC", Const, 1}, ++ {"ETHERTYPE_TIGAN", Const, 1}, ++ {"ETHERTYPE_TRAIL", Const, 1}, ++ {"ETHERTYPE_TRANSETHER", Const, 1}, ++ {"ETHERTYPE_TYMSHARE", Const, 1}, ++ {"ETHERTYPE_UBBST", Const, 1}, ++ {"ETHERTYPE_UBDEBUG", Const, 1}, ++ {"ETHERTYPE_UBDIAGLOOP", Const, 1}, ++ {"ETHERTYPE_UBDL", Const, 1}, ++ {"ETHERTYPE_UBNIU", Const, 1}, ++ {"ETHERTYPE_UBNMC", Const, 1}, ++ {"ETHERTYPE_VALID", Const, 1}, ++ {"ETHERTYPE_VARIAN", Const, 1}, ++ {"ETHERTYPE_VAXELN", Const, 1}, ++ {"ETHERTYPE_VEECO", Const, 1}, ++ {"ETHERTYPE_VEXP", Const, 1}, ++ {"ETHERTYPE_VGLAB", Const, 1}, ++ {"ETHERTYPE_VINES", Const, 1}, ++ {"ETHERTYPE_VINESECHO", Const, 1}, ++ {"ETHERTYPE_VINESLOOP", Const, 1}, ++ {"ETHERTYPE_VITAL", Const, 1}, ++ {"ETHERTYPE_VLAN", Const, 1}, ++ {"ETHERTYPE_VLTLMAN", Const, 1}, ++ {"ETHERTYPE_VPROD", Const, 1}, ++ {"ETHERTYPE_VURESERVED", Const, 1}, ++ {"ETHERTYPE_WATERLOO", Const, 1}, ++ {"ETHERTYPE_WELLFLEET", Const, 1}, ++ {"ETHERTYPE_X25", Const, 1}, ++ {"ETHERTYPE_X75", Const, 1}, ++ {"ETHERTYPE_XNSSM", Const, 1}, ++ {"ETHERTYPE_XTP", Const, 1}, ++ {"ETHER_ADDR_LEN", Const, 1}, ++ {"ETHER_ALIGN", Const, 1}, ++ {"ETHER_CRC_LEN", Const, 1}, ++ {"ETHER_CRC_POLY_BE", Const, 1}, ++ {"ETHER_CRC_POLY_LE", Const, 1}, ++ {"ETHER_HDR_LEN", Const, 1}, ++ {"ETHER_MAX_DIX_LEN", Const, 1}, ++ {"ETHER_MAX_LEN", Const, 1}, ++ {"ETHER_MAX_LEN_JUMBO", Const, 1}, ++ {"ETHER_MIN_LEN", Const, 1}, ++ {"ETHER_PPPOE_ENCAP_LEN", Const, 1}, ++ {"ETHER_TYPE_LEN", Const, 1}, ++ {"ETHER_VLAN_ENCAP_LEN", Const, 1}, ++ {"ETH_P_1588", Const, 0}, ++ {"ETH_P_8021Q", Const, 0}, ++ {"ETH_P_802_2", Const, 0}, ++ {"ETH_P_802_3", Const, 0}, ++ {"ETH_P_AARP", Const, 0}, ++ {"ETH_P_ALL", Const, 0}, ++ {"ETH_P_AOE", Const, 0}, ++ {"ETH_P_ARCNET", Const, 0}, ++ {"ETH_P_ARP", Const, 0}, ++ {"ETH_P_ATALK", Const, 0}, ++ {"ETH_P_ATMFATE", Const, 0}, ++ {"ETH_P_ATMMPOA", Const, 0}, ++ {"ETH_P_AX25", Const, 0}, ++ {"ETH_P_BPQ", Const, 0}, ++ {"ETH_P_CAIF", Const, 0}, ++ {"ETH_P_CAN", Const, 0}, ++ {"ETH_P_CONTROL", Const, 0}, ++ {"ETH_P_CUST", Const, 0}, ++ {"ETH_P_DDCMP", Const, 0}, ++ {"ETH_P_DEC", Const, 0}, ++ {"ETH_P_DIAG", Const, 0}, ++ {"ETH_P_DNA_DL", Const, 0}, ++ {"ETH_P_DNA_RC", Const, 0}, ++ {"ETH_P_DNA_RT", Const, 0}, ++ {"ETH_P_DSA", Const, 0}, ++ {"ETH_P_ECONET", Const, 0}, ++ {"ETH_P_EDSA", Const, 0}, ++ {"ETH_P_FCOE", Const, 0}, ++ {"ETH_P_FIP", Const, 0}, ++ {"ETH_P_HDLC", Const, 0}, ++ {"ETH_P_IEEE802154", Const, 0}, ++ {"ETH_P_IEEEPUP", Const, 0}, ++ {"ETH_P_IEEEPUPAT", Const, 0}, ++ {"ETH_P_IP", Const, 0}, ++ {"ETH_P_IPV6", Const, 0}, ++ {"ETH_P_IPX", Const, 0}, ++ {"ETH_P_IRDA", Const, 0}, ++ {"ETH_P_LAT", Const, 0}, ++ {"ETH_P_LINK_CTL", Const, 0}, ++ {"ETH_P_LOCALTALK", Const, 0}, ++ {"ETH_P_LOOP", Const, 0}, ++ {"ETH_P_MOBITEX", Const, 0}, ++ {"ETH_P_MPLS_MC", Const, 0}, ++ {"ETH_P_MPLS_UC", Const, 0}, ++ {"ETH_P_PAE", Const, 0}, ++ {"ETH_P_PAUSE", Const, 0}, ++ {"ETH_P_PHONET", Const, 0}, ++ {"ETH_P_PPPTALK", Const, 0}, ++ {"ETH_P_PPP_DISC", Const, 0}, ++ {"ETH_P_PPP_MP", Const, 0}, ++ {"ETH_P_PPP_SES", Const, 0}, ++ {"ETH_P_PUP", Const, 0}, ++ {"ETH_P_PUPAT", Const, 0}, ++ {"ETH_P_RARP", Const, 0}, ++ {"ETH_P_SCA", Const, 0}, ++ {"ETH_P_SLOW", Const, 0}, ++ {"ETH_P_SNAP", Const, 0}, ++ {"ETH_P_TEB", Const, 0}, ++ {"ETH_P_TIPC", Const, 0}, ++ {"ETH_P_TRAILER", Const, 0}, ++ {"ETH_P_TR_802_2", Const, 0}, ++ {"ETH_P_WAN_PPP", Const, 0}, ++ {"ETH_P_WCCP", Const, 0}, ++ {"ETH_P_X25", Const, 0}, ++ {"ETIME", Const, 0}, ++ {"ETIMEDOUT", Const, 0}, ++ {"ETOOMANYREFS", Const, 0}, ++ {"ETXTBSY", Const, 0}, ++ {"EUCLEAN", Const, 0}, ++ {"EUNATCH", Const, 0}, ++ {"EUSERS", Const, 0}, ++ {"EVFILT_AIO", Const, 0}, ++ {"EVFILT_FS", Const, 0}, ++ {"EVFILT_LIO", Const, 0}, ++ {"EVFILT_MACHPORT", Const, 0}, ++ {"EVFILT_PROC", Const, 0}, ++ {"EVFILT_READ", Const, 0}, ++ {"EVFILT_SIGNAL", Const, 0}, ++ {"EVFILT_SYSCOUNT", Const, 0}, ++ {"EVFILT_THREADMARKER", Const, 0}, ++ {"EVFILT_TIMER", Const, 0}, ++ {"EVFILT_USER", Const, 0}, ++ {"EVFILT_VM", Const, 0}, ++ {"EVFILT_VNODE", Const, 0}, ++ {"EVFILT_WRITE", Const, 0}, ++ {"EV_ADD", Const, 0}, ++ {"EV_CLEAR", Const, 0}, ++ {"EV_DELETE", Const, 0}, ++ {"EV_DISABLE", Const, 0}, ++ {"EV_DISPATCH", Const, 0}, ++ {"EV_DROP", Const, 3}, ++ {"EV_ENABLE", Const, 0}, ++ {"EV_EOF", Const, 0}, ++ {"EV_ERROR", Const, 0}, ++ {"EV_FLAG0", Const, 0}, ++ {"EV_FLAG1", Const, 0}, ++ {"EV_ONESHOT", Const, 0}, ++ {"EV_OOBAND", Const, 0}, ++ {"EV_POLL", Const, 0}, ++ {"EV_RECEIPT", Const, 0}, ++ {"EV_SYSFLAGS", Const, 0}, ++ {"EWINDOWS", Const, 0}, ++ {"EWOULDBLOCK", Const, 0}, ++ {"EXDEV", Const, 0}, ++ {"EXFULL", Const, 0}, ++ {"EXTA", Const, 0}, ++ {"EXTB", Const, 0}, ++ {"EXTPROC", Const, 0}, ++ {"Environ", Func, 0}, ++ {"EpollCreate", Func, 0}, ++ {"EpollCreate1", Func, 0}, ++ {"EpollCtl", Func, 0}, ++ {"EpollEvent", Type, 0}, ++ {"EpollEvent.Events", Field, 0}, ++ {"EpollEvent.Fd", Field, 0}, ++ {"EpollEvent.Pad", Field, 0}, ++ {"EpollEvent.PadFd", Field, 0}, ++ {"EpollWait", Func, 0}, ++ {"Errno", Type, 0}, ++ {"EscapeArg", Func, 0}, ++ {"Exchangedata", Func, 0}, ++ {"Exec", Func, 0}, ++ {"Exit", Func, 0}, ++ {"ExitProcess", Func, 0}, ++ {"FD_CLOEXEC", Const, 0}, ++ {"FD_SETSIZE", Const, 0}, ++ {"FILE_ACTION_ADDED", Const, 0}, ++ {"FILE_ACTION_MODIFIED", Const, 0}, ++ {"FILE_ACTION_REMOVED", Const, 0}, ++ {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0}, ++ {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0}, ++ {"FILE_APPEND_DATA", Const, 0}, ++ {"FILE_ATTRIBUTE_ARCHIVE", Const, 0}, ++ {"FILE_ATTRIBUTE_DIRECTORY", Const, 0}, ++ {"FILE_ATTRIBUTE_HIDDEN", Const, 0}, ++ {"FILE_ATTRIBUTE_NORMAL", Const, 0}, ++ {"FILE_ATTRIBUTE_READONLY", Const, 0}, ++ {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4}, ++ {"FILE_ATTRIBUTE_SYSTEM", Const, 0}, ++ {"FILE_BEGIN", Const, 0}, ++ {"FILE_CURRENT", Const, 0}, ++ {"FILE_END", Const, 0}, ++ {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0}, ++ {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4}, ++ {"FILE_FLAG_OVERLAPPED", Const, 0}, ++ {"FILE_LIST_DIRECTORY", Const, 0}, ++ {"FILE_MAP_COPY", Const, 0}, ++ {"FILE_MAP_EXECUTE", Const, 0}, ++ {"FILE_MAP_READ", Const, 0}, ++ {"FILE_MAP_WRITE", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_CREATION", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0}, ++ {"FILE_NOTIFY_CHANGE_SIZE", Const, 0}, ++ {"FILE_SHARE_DELETE", Const, 0}, ++ {"FILE_SHARE_READ", Const, 0}, ++ {"FILE_SHARE_WRITE", Const, 0}, ++ {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2}, ++ {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2}, ++ {"FILE_TYPE_CHAR", Const, 0}, ++ {"FILE_TYPE_DISK", Const, 0}, ++ {"FILE_TYPE_PIPE", Const, 0}, ++ {"FILE_TYPE_REMOTE", Const, 0}, ++ {"FILE_TYPE_UNKNOWN", Const, 0}, ++ {"FILE_WRITE_ATTRIBUTES", Const, 0}, ++ {"FLUSHO", Const, 0}, ++ {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0}, ++ {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0}, ++ {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0}, ++ {"FORMAT_MESSAGE_FROM_STRING", Const, 0}, ++ {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0}, ++ {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0}, ++ {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0}, ++ {"FSCTL_GET_REPARSE_POINT", Const, 4}, ++ {"F_ADDFILESIGS", Const, 0}, ++ {"F_ADDSIGS", Const, 0}, ++ {"F_ALLOCATEALL", Const, 0}, ++ {"F_ALLOCATECONTIG", Const, 0}, ++ {"F_CANCEL", Const, 0}, ++ {"F_CHKCLEAN", Const, 0}, ++ {"F_CLOSEM", Const, 1}, ++ {"F_DUP2FD", Const, 0}, ++ {"F_DUP2FD_CLOEXEC", Const, 1}, ++ {"F_DUPFD", Const, 0}, ++ {"F_DUPFD_CLOEXEC", Const, 0}, ++ {"F_EXLCK", Const, 0}, ++ {"F_FINDSIGS", Const, 16}, ++ {"F_FLUSH_DATA", Const, 0}, ++ {"F_FREEZE_FS", Const, 0}, ++ {"F_FSCTL", Const, 1}, ++ {"F_FSDIRMASK", Const, 1}, ++ {"F_FSIN", Const, 1}, ++ {"F_FSINOUT", Const, 1}, ++ {"F_FSOUT", Const, 1}, ++ {"F_FSPRIV", Const, 1}, ++ {"F_FSVOID", Const, 1}, ++ {"F_FULLFSYNC", Const, 0}, ++ {"F_GETCODEDIR", Const, 16}, ++ {"F_GETFD", Const, 0}, ++ {"F_GETFL", Const, 0}, ++ {"F_GETLEASE", Const, 0}, ++ {"F_GETLK", Const, 0}, ++ {"F_GETLK64", Const, 0}, ++ {"F_GETLKPID", Const, 0}, ++ {"F_GETNOSIGPIPE", Const, 0}, ++ {"F_GETOWN", Const, 0}, ++ {"F_GETOWN_EX", Const, 0}, ++ {"F_GETPATH", Const, 0}, ++ {"F_GETPATH_MTMINFO", Const, 0}, ++ {"F_GETPIPE_SZ", Const, 0}, ++ {"F_GETPROTECTIONCLASS", Const, 0}, ++ {"F_GETPROTECTIONLEVEL", Const, 16}, ++ {"F_GETSIG", Const, 0}, ++ {"F_GLOBAL_NOCACHE", Const, 0}, ++ {"F_LOCK", Const, 0}, ++ {"F_LOG2PHYS", Const, 0}, ++ {"F_LOG2PHYS_EXT", Const, 0}, ++ {"F_MARKDEPENDENCY", Const, 0}, ++ {"F_MAXFD", Const, 1}, ++ {"F_NOCACHE", Const, 0}, ++ {"F_NODIRECT", Const, 0}, ++ {"F_NOTIFY", Const, 0}, ++ {"F_OGETLK", Const, 0}, ++ {"F_OK", Const, 0}, ++ {"F_OSETLK", Const, 0}, ++ {"F_OSETLKW", Const, 0}, ++ {"F_PARAM_MASK", Const, 1}, ++ {"F_PARAM_MAX", Const, 1}, ++ {"F_PATHPKG_CHECK", Const, 0}, ++ {"F_PEOFPOSMODE", Const, 0}, ++ {"F_PREALLOCATE", Const, 0}, ++ {"F_RDADVISE", Const, 0}, ++ {"F_RDAHEAD", Const, 0}, ++ {"F_RDLCK", Const, 0}, ++ {"F_READAHEAD", Const, 0}, ++ {"F_READBOOTSTRAP", Const, 0}, ++ {"F_SETBACKINGSTORE", Const, 0}, ++ {"F_SETFD", Const, 0}, ++ {"F_SETFL", Const, 0}, ++ {"F_SETLEASE", Const, 0}, ++ {"F_SETLK", Const, 0}, ++ {"F_SETLK64", Const, 0}, ++ {"F_SETLKW", Const, 0}, ++ {"F_SETLKW64", Const, 0}, ++ {"F_SETLKWTIMEOUT", Const, 16}, ++ {"F_SETLK_REMOTE", Const, 0}, ++ {"F_SETNOSIGPIPE", Const, 0}, ++ {"F_SETOWN", Const, 0}, ++ {"F_SETOWN_EX", Const, 0}, ++ {"F_SETPIPE_SZ", Const, 0}, ++ {"F_SETPROTECTIONCLASS", Const, 0}, ++ {"F_SETSIG", Const, 0}, ++ {"F_SETSIZE", Const, 0}, ++ {"F_SHLCK", Const, 0}, ++ {"F_SINGLE_WRITER", Const, 16}, ++ {"F_TEST", Const, 0}, ++ {"F_THAW_FS", Const, 0}, ++ {"F_TLOCK", Const, 0}, ++ {"F_TRANSCODEKEY", Const, 16}, ++ {"F_ULOCK", Const, 0}, ++ {"F_UNLCK", Const, 0}, ++ {"F_UNLCKSYS", Const, 0}, ++ {"F_VOLPOSMODE", Const, 0}, ++ {"F_WRITEBOOTSTRAP", Const, 0}, ++ {"F_WRLCK", Const, 0}, ++ {"Faccessat", Func, 0}, ++ {"Fallocate", Func, 0}, ++ {"Fbootstraptransfer_t", Type, 0}, ++ {"Fbootstraptransfer_t.Buffer", Field, 0}, ++ {"Fbootstraptransfer_t.Length", Field, 0}, ++ {"Fbootstraptransfer_t.Offset", Field, 0}, ++ {"Fchdir", Func, 0}, ++ {"Fchflags", Func, 0}, ++ {"Fchmod", Func, 0}, ++ {"Fchmodat", Func, 0}, ++ {"Fchown", Func, 0}, ++ {"Fchownat", Func, 0}, ++ {"FcntlFlock", Func, 3}, ++ {"FdSet", Type, 0}, ++ {"FdSet.Bits", Field, 0}, ++ {"FdSet.X__fds_bits", Field, 0}, ++ {"Fdatasync", Func, 0}, ++ {"FileNotifyInformation", Type, 0}, ++ {"FileNotifyInformation.Action", Field, 0}, ++ {"FileNotifyInformation.FileName", Field, 0}, ++ {"FileNotifyInformation.FileNameLength", Field, 0}, ++ {"FileNotifyInformation.NextEntryOffset", Field, 0}, ++ {"Filetime", Type, 0}, ++ {"Filetime.HighDateTime", Field, 0}, ++ {"Filetime.LowDateTime", Field, 0}, ++ {"FindClose", Func, 0}, ++ {"FindFirstFile", Func, 0}, ++ {"FindNextFile", Func, 0}, ++ {"Flock", Func, 0}, ++ {"Flock_t", Type, 0}, ++ {"Flock_t.Len", Field, 0}, ++ {"Flock_t.Pad_cgo_0", Field, 0}, ++ {"Flock_t.Pad_cgo_1", Field, 3}, ++ {"Flock_t.Pid", Field, 0}, ++ {"Flock_t.Start", Field, 0}, ++ {"Flock_t.Sysid", Field, 0}, ++ {"Flock_t.Type", Field, 0}, ++ {"Flock_t.Whence", Field, 0}, ++ {"FlushBpf", Func, 0}, ++ {"FlushFileBuffers", Func, 0}, ++ {"FlushViewOfFile", Func, 0}, ++ {"ForkExec", Func, 0}, ++ {"ForkLock", Var, 0}, ++ {"FormatMessage", Func, 0}, ++ {"Fpathconf", Func, 0}, ++ {"FreeAddrInfoW", Func, 1}, ++ {"FreeEnvironmentStrings", Func, 0}, ++ {"FreeLibrary", Func, 0}, ++ {"Fsid", Type, 0}, ++ {"Fsid.Val", Field, 0}, ++ {"Fsid.X__fsid_val", Field, 2}, ++ {"Fsid.X__val", Field, 0}, ++ {"Fstat", Func, 0}, ++ {"Fstatat", Func, 12}, ++ {"Fstatfs", Func, 0}, ++ {"Fstore_t", Type, 0}, ++ {"Fstore_t.Bytesalloc", Field, 0}, ++ {"Fstore_t.Flags", Field, 0}, ++ {"Fstore_t.Length", Field, 0}, ++ {"Fstore_t.Offset", Field, 0}, ++ {"Fstore_t.Posmode", Field, 0}, ++ {"Fsync", Func, 0}, ++ {"Ftruncate", Func, 0}, ++ {"FullPath", Func, 4}, ++ {"Futimes", Func, 0}, ++ {"Futimesat", Func, 0}, ++ {"GENERIC_ALL", Const, 0}, ++ {"GENERIC_EXECUTE", Const, 0}, ++ {"GENERIC_READ", Const, 0}, ++ {"GENERIC_WRITE", Const, 0}, ++ {"GUID", Type, 1}, ++ {"GUID.Data1", Field, 1}, ++ {"GUID.Data2", Field, 1}, ++ {"GUID.Data3", Field, 1}, ++ {"GUID.Data4", Field, 1}, ++ {"GetAcceptExSockaddrs", Func, 0}, ++ {"GetAdaptersInfo", Func, 0}, ++ {"GetAddrInfoW", Func, 1}, ++ {"GetCommandLine", Func, 0}, ++ {"GetComputerName", Func, 0}, ++ {"GetConsoleMode", Func, 1}, ++ {"GetCurrentDirectory", Func, 0}, ++ {"GetCurrentProcess", Func, 0}, ++ {"GetEnvironmentStrings", Func, 0}, ++ {"GetEnvironmentVariable", Func, 0}, ++ {"GetExitCodeProcess", Func, 0}, ++ {"GetFileAttributes", Func, 0}, ++ {"GetFileAttributesEx", Func, 0}, ++ {"GetFileExInfoStandard", Const, 0}, ++ {"GetFileExMaxInfoLevel", Const, 0}, ++ {"GetFileInformationByHandle", Func, 0}, ++ {"GetFileType", Func, 0}, ++ {"GetFullPathName", Func, 0}, ++ {"GetHostByName", Func, 0}, ++ {"GetIfEntry", Func, 0}, ++ {"GetLastError", Func, 0}, ++ {"GetLengthSid", Func, 0}, ++ {"GetLongPathName", Func, 0}, ++ {"GetProcAddress", Func, 0}, ++ {"GetProcessTimes", Func, 0}, ++ {"GetProtoByName", Func, 0}, ++ {"GetQueuedCompletionStatus", Func, 0}, ++ {"GetServByName", Func, 0}, ++ {"GetShortPathName", Func, 0}, ++ {"GetStartupInfo", Func, 0}, ++ {"GetStdHandle", Func, 0}, ++ {"GetSystemTimeAsFileTime", Func, 0}, ++ {"GetTempPath", Func, 0}, ++ {"GetTimeZoneInformation", Func, 0}, ++ {"GetTokenInformation", Func, 0}, ++ {"GetUserNameEx", Func, 0}, ++ {"GetUserProfileDirectory", Func, 0}, ++ {"GetVersion", Func, 0}, ++ {"Getcwd", Func, 0}, ++ {"Getdents", Func, 0}, ++ {"Getdirentries", Func, 0}, ++ {"Getdtablesize", Func, 0}, ++ {"Getegid", Func, 0}, ++ {"Getenv", Func, 0}, ++ {"Geteuid", Func, 0}, ++ {"Getfsstat", Func, 0}, ++ {"Getgid", Func, 0}, ++ {"Getgroups", Func, 0}, ++ {"Getpagesize", Func, 0}, ++ {"Getpeername", Func, 0}, ++ {"Getpgid", Func, 0}, ++ {"Getpgrp", Func, 0}, ++ {"Getpid", Func, 0}, ++ {"Getppid", Func, 0}, ++ {"Getpriority", Func, 0}, ++ {"Getrlimit", Func, 0}, ++ {"Getrusage", Func, 0}, ++ {"Getsid", Func, 0}, ++ {"Getsockname", Func, 0}, ++ {"Getsockopt", Func, 1}, ++ {"GetsockoptByte", Func, 0}, ++ {"GetsockoptICMPv6Filter", Func, 2}, ++ {"GetsockoptIPMreq", Func, 0}, ++ {"GetsockoptIPMreqn", Func, 0}, ++ {"GetsockoptIPv6MTUInfo", Func, 2}, ++ {"GetsockoptIPv6Mreq", Func, 0}, ++ {"GetsockoptInet4Addr", Func, 0}, ++ {"GetsockoptInt", Func, 0}, ++ {"GetsockoptUcred", Func, 1}, ++ {"Gettid", Func, 0}, ++ {"Gettimeofday", Func, 0}, ++ {"Getuid", Func, 0}, ++ {"Getwd", Func, 0}, ++ {"Getxattr", Func, 1}, ++ {"HANDLE_FLAG_INHERIT", Const, 0}, ++ {"HKEY_CLASSES_ROOT", Const, 0}, ++ {"HKEY_CURRENT_CONFIG", Const, 0}, ++ {"HKEY_CURRENT_USER", Const, 0}, ++ {"HKEY_DYN_DATA", Const, 0}, ++ {"HKEY_LOCAL_MACHINE", Const, 0}, ++ {"HKEY_PERFORMANCE_DATA", Const, 0}, ++ {"HKEY_USERS", Const, 0}, ++ {"HUPCL", Const, 0}, ++ {"Handle", Type, 0}, ++ {"Hostent", Type, 0}, ++ {"Hostent.AddrList", Field, 0}, ++ {"Hostent.AddrType", Field, 0}, ++ {"Hostent.Aliases", Field, 0}, ++ {"Hostent.Length", Field, 0}, ++ {"Hostent.Name", Field, 0}, ++ {"ICANON", Const, 0}, ++ {"ICMP6_FILTER", Const, 2}, ++ {"ICMPV6_FILTER", Const, 2}, ++ {"ICMPv6Filter", Type, 2}, ++ {"ICMPv6Filter.Data", Field, 2}, ++ {"ICMPv6Filter.Filt", Field, 2}, ++ {"ICRNL", Const, 0}, ++ {"IEXTEN", Const, 0}, ++ {"IFAN_ARRIVAL", Const, 1}, ++ {"IFAN_DEPARTURE", Const, 1}, ++ {"IFA_ADDRESS", Const, 0}, ++ {"IFA_ANYCAST", Const, 0}, ++ {"IFA_BROADCAST", Const, 0}, ++ {"IFA_CACHEINFO", Const, 0}, ++ {"IFA_F_DADFAILED", Const, 0}, ++ {"IFA_F_DEPRECATED", Const, 0}, ++ {"IFA_F_HOMEADDRESS", Const, 0}, ++ {"IFA_F_NODAD", Const, 0}, ++ {"IFA_F_OPTIMISTIC", Const, 0}, ++ {"IFA_F_PERMANENT", Const, 0}, ++ {"IFA_F_SECONDARY", Const, 0}, ++ {"IFA_F_TEMPORARY", Const, 0}, ++ {"IFA_F_TENTATIVE", Const, 0}, ++ {"IFA_LABEL", Const, 0}, ++ {"IFA_LOCAL", Const, 0}, ++ {"IFA_MAX", Const, 0}, ++ {"IFA_MULTICAST", Const, 0}, ++ {"IFA_ROUTE", Const, 1}, ++ {"IFA_UNSPEC", Const, 0}, ++ {"IFF_ALLMULTI", Const, 0}, ++ {"IFF_ALTPHYS", Const, 0}, ++ {"IFF_AUTOMEDIA", Const, 0}, ++ {"IFF_BROADCAST", Const, 0}, ++ {"IFF_CANTCHANGE", Const, 0}, ++ {"IFF_CANTCONFIG", Const, 1}, ++ {"IFF_DEBUG", Const, 0}, ++ {"IFF_DRV_OACTIVE", Const, 0}, ++ {"IFF_DRV_RUNNING", Const, 0}, ++ {"IFF_DYING", Const, 0}, ++ {"IFF_DYNAMIC", Const, 0}, ++ {"IFF_LINK0", Const, 0}, ++ {"IFF_LINK1", Const, 0}, ++ {"IFF_LINK2", Const, 0}, ++ {"IFF_LOOPBACK", Const, 0}, ++ {"IFF_MASTER", Const, 0}, ++ {"IFF_MONITOR", Const, 0}, ++ {"IFF_MULTICAST", Const, 0}, ++ {"IFF_NOARP", Const, 0}, ++ {"IFF_NOTRAILERS", Const, 0}, ++ {"IFF_NO_PI", Const, 0}, ++ {"IFF_OACTIVE", Const, 0}, ++ {"IFF_ONE_QUEUE", Const, 0}, ++ {"IFF_POINTOPOINT", Const, 0}, ++ {"IFF_POINTTOPOINT", Const, 0}, ++ {"IFF_PORTSEL", Const, 0}, ++ {"IFF_PPROMISC", Const, 0}, ++ {"IFF_PROMISC", Const, 0}, ++ {"IFF_RENAMING", Const, 0}, ++ {"IFF_RUNNING", Const, 0}, ++ {"IFF_SIMPLEX", Const, 0}, ++ {"IFF_SLAVE", Const, 0}, ++ {"IFF_SMART", Const, 0}, ++ {"IFF_STATICARP", Const, 0}, ++ {"IFF_TAP", Const, 0}, ++ {"IFF_TUN", Const, 0}, ++ {"IFF_TUN_EXCL", Const, 0}, ++ {"IFF_UP", Const, 0}, ++ {"IFF_VNET_HDR", Const, 0}, ++ {"IFLA_ADDRESS", Const, 0}, ++ {"IFLA_BROADCAST", Const, 0}, ++ {"IFLA_COST", Const, 0}, ++ {"IFLA_IFALIAS", Const, 0}, ++ {"IFLA_IFNAME", Const, 0}, ++ {"IFLA_LINK", Const, 0}, ++ {"IFLA_LINKINFO", Const, 0}, ++ {"IFLA_LINKMODE", Const, 0}, ++ {"IFLA_MAP", Const, 0}, ++ {"IFLA_MASTER", Const, 0}, ++ {"IFLA_MAX", Const, 0}, ++ {"IFLA_MTU", Const, 0}, ++ {"IFLA_NET_NS_PID", Const, 0}, ++ {"IFLA_OPERSTATE", Const, 0}, ++ {"IFLA_PRIORITY", Const, 0}, ++ {"IFLA_PROTINFO", Const, 0}, ++ {"IFLA_QDISC", Const, 0}, ++ {"IFLA_STATS", Const, 0}, ++ {"IFLA_TXQLEN", Const, 0}, ++ {"IFLA_UNSPEC", Const, 0}, ++ {"IFLA_WEIGHT", Const, 0}, ++ {"IFLA_WIRELESS", Const, 0}, ++ {"IFNAMSIZ", Const, 0}, ++ {"IFT_1822", Const, 0}, ++ {"IFT_A12MPPSWITCH", Const, 0}, ++ {"IFT_AAL2", Const, 0}, ++ {"IFT_AAL5", Const, 0}, ++ {"IFT_ADSL", Const, 0}, ++ {"IFT_AFLANE8023", Const, 0}, ++ {"IFT_AFLANE8025", Const, 0}, ++ {"IFT_ARAP", Const, 0}, ++ {"IFT_ARCNET", Const, 0}, ++ {"IFT_ARCNETPLUS", Const, 0}, ++ {"IFT_ASYNC", Const, 0}, ++ {"IFT_ATM", Const, 0}, ++ {"IFT_ATMDXI", Const, 0}, ++ {"IFT_ATMFUNI", Const, 0}, ++ {"IFT_ATMIMA", Const, 0}, ++ {"IFT_ATMLOGICAL", Const, 0}, ++ {"IFT_ATMRADIO", Const, 0}, ++ {"IFT_ATMSUBINTERFACE", Const, 0}, ++ {"IFT_ATMVCIENDPT", Const, 0}, ++ {"IFT_ATMVIRTUAL", Const, 0}, ++ {"IFT_BGPPOLICYACCOUNTING", Const, 0}, ++ {"IFT_BLUETOOTH", Const, 1}, ++ {"IFT_BRIDGE", Const, 0}, ++ {"IFT_BSC", Const, 0}, ++ {"IFT_CARP", Const, 0}, ++ {"IFT_CCTEMUL", Const, 0}, ++ {"IFT_CELLULAR", Const, 0}, ++ {"IFT_CEPT", Const, 0}, ++ {"IFT_CES", Const, 0}, ++ {"IFT_CHANNEL", Const, 0}, ++ {"IFT_CNR", Const, 0}, ++ {"IFT_COFFEE", Const, 0}, ++ {"IFT_COMPOSITELINK", Const, 0}, ++ {"IFT_DCN", Const, 0}, ++ {"IFT_DIGITALPOWERLINE", Const, 0}, ++ {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0}, ++ {"IFT_DLSW", Const, 0}, ++ {"IFT_DOCSCABLEDOWNSTREAM", Const, 0}, ++ {"IFT_DOCSCABLEMACLAYER", Const, 0}, ++ {"IFT_DOCSCABLEUPSTREAM", Const, 0}, ++ {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1}, ++ {"IFT_DS0", Const, 0}, ++ {"IFT_DS0BUNDLE", Const, 0}, ++ {"IFT_DS1FDL", Const, 0}, ++ {"IFT_DS3", Const, 0}, ++ {"IFT_DTM", Const, 0}, ++ {"IFT_DUMMY", Const, 1}, ++ {"IFT_DVBASILN", Const, 0}, ++ {"IFT_DVBASIOUT", Const, 0}, ++ {"IFT_DVBRCCDOWNSTREAM", Const, 0}, ++ {"IFT_DVBRCCMACLAYER", Const, 0}, ++ {"IFT_DVBRCCUPSTREAM", Const, 0}, ++ {"IFT_ECONET", Const, 1}, ++ {"IFT_ENC", Const, 0}, ++ {"IFT_EON", Const, 0}, ++ {"IFT_EPLRS", Const, 0}, ++ {"IFT_ESCON", Const, 0}, ++ {"IFT_ETHER", Const, 0}, ++ {"IFT_FAITH", Const, 0}, ++ {"IFT_FAST", Const, 0}, ++ {"IFT_FASTETHER", Const, 0}, ++ {"IFT_FASTETHERFX", Const, 0}, ++ {"IFT_FDDI", Const, 0}, ++ {"IFT_FIBRECHANNEL", Const, 0}, ++ {"IFT_FRAMERELAYINTERCONNECT", Const, 0}, ++ {"IFT_FRAMERELAYMPI", Const, 0}, ++ {"IFT_FRDLCIENDPT", Const, 0}, ++ {"IFT_FRELAY", Const, 0}, ++ {"IFT_FRELAYDCE", Const, 0}, ++ {"IFT_FRF16MFRBUNDLE", Const, 0}, ++ {"IFT_FRFORWARD", Const, 0}, ++ {"IFT_G703AT2MB", Const, 0}, ++ {"IFT_G703AT64K", Const, 0}, ++ {"IFT_GIF", Const, 0}, ++ {"IFT_GIGABITETHERNET", Const, 0}, ++ {"IFT_GR303IDT", Const, 0}, ++ {"IFT_GR303RDT", Const, 0}, ++ {"IFT_H323GATEKEEPER", Const, 0}, ++ {"IFT_H323PROXY", Const, 0}, ++ {"IFT_HDH1822", Const, 0}, ++ {"IFT_HDLC", Const, 0}, ++ {"IFT_HDSL2", Const, 0}, ++ {"IFT_HIPERLAN2", Const, 0}, ++ {"IFT_HIPPI", Const, 0}, ++ {"IFT_HIPPIINTERFACE", Const, 0}, ++ {"IFT_HOSTPAD", Const, 0}, ++ {"IFT_HSSI", Const, 0}, ++ {"IFT_HY", Const, 0}, ++ {"IFT_IBM370PARCHAN", Const, 0}, ++ {"IFT_IDSL", Const, 0}, ++ {"IFT_IEEE1394", Const, 0}, ++ {"IFT_IEEE80211", Const, 0}, ++ {"IFT_IEEE80212", Const, 0}, ++ {"IFT_IEEE8023ADLAG", Const, 0}, ++ {"IFT_IFGSN", Const, 0}, ++ {"IFT_IMT", Const, 0}, ++ {"IFT_INFINIBAND", Const, 1}, ++ {"IFT_INTERLEAVE", Const, 0}, ++ {"IFT_IP", Const, 0}, ++ {"IFT_IPFORWARD", Const, 0}, ++ {"IFT_IPOVERATM", Const, 0}, ++ {"IFT_IPOVERCDLC", Const, 0}, ++ {"IFT_IPOVERCLAW", Const, 0}, ++ {"IFT_IPSWITCH", Const, 0}, ++ {"IFT_IPXIP", Const, 0}, ++ {"IFT_ISDN", Const, 0}, ++ {"IFT_ISDNBASIC", Const, 0}, ++ {"IFT_ISDNPRIMARY", Const, 0}, ++ {"IFT_ISDNS", Const, 0}, ++ {"IFT_ISDNU", Const, 0}, ++ {"IFT_ISO88022LLC", Const, 0}, ++ {"IFT_ISO88023", Const, 0}, ++ {"IFT_ISO88024", Const, 0}, ++ {"IFT_ISO88025", Const, 0}, ++ {"IFT_ISO88025CRFPINT", Const, 0}, ++ {"IFT_ISO88025DTR", Const, 0}, ++ {"IFT_ISO88025FIBER", Const, 0}, ++ {"IFT_ISO88026", Const, 0}, ++ {"IFT_ISUP", Const, 0}, ++ {"IFT_L2VLAN", Const, 0}, ++ {"IFT_L3IPVLAN", Const, 0}, ++ {"IFT_L3IPXVLAN", Const, 0}, ++ {"IFT_LAPB", Const, 0}, ++ {"IFT_LAPD", Const, 0}, ++ {"IFT_LAPF", Const, 0}, ++ {"IFT_LINEGROUP", Const, 1}, ++ {"IFT_LOCALTALK", Const, 0}, ++ {"IFT_LOOP", Const, 0}, ++ {"IFT_MEDIAMAILOVERIP", Const, 0}, ++ {"IFT_MFSIGLINK", Const, 0}, ++ {"IFT_MIOX25", Const, 0}, ++ {"IFT_MODEM", Const, 0}, ++ {"IFT_MPC", Const, 0}, ++ {"IFT_MPLS", Const, 0}, ++ {"IFT_MPLSTUNNEL", Const, 0}, ++ {"IFT_MSDSL", Const, 0}, ++ {"IFT_MVL", Const, 0}, ++ {"IFT_MYRINET", Const, 0}, ++ {"IFT_NFAS", Const, 0}, ++ {"IFT_NSIP", Const, 0}, ++ {"IFT_OPTICALCHANNEL", Const, 0}, ++ {"IFT_OPTICALTRANSPORT", Const, 0}, ++ {"IFT_OTHER", Const, 0}, ++ {"IFT_P10", Const, 0}, ++ {"IFT_P80", Const, 0}, ++ {"IFT_PARA", Const, 0}, ++ {"IFT_PDP", Const, 0}, ++ {"IFT_PFLOG", Const, 0}, ++ {"IFT_PFLOW", Const, 1}, ++ {"IFT_PFSYNC", Const, 0}, ++ {"IFT_PLC", Const, 0}, ++ {"IFT_PON155", Const, 1}, ++ {"IFT_PON622", Const, 1}, ++ {"IFT_POS", Const, 0}, ++ {"IFT_PPP", Const, 0}, ++ {"IFT_PPPMULTILINKBUNDLE", Const, 0}, ++ {"IFT_PROPATM", Const, 1}, ++ {"IFT_PROPBWAP2MP", Const, 0}, ++ {"IFT_PROPCNLS", Const, 0}, ++ {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0}, ++ {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0}, ++ {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0}, ++ {"IFT_PROPMUX", Const, 0}, ++ {"IFT_PROPVIRTUAL", Const, 0}, ++ {"IFT_PROPWIRELESSP2P", Const, 0}, ++ {"IFT_PTPSERIAL", Const, 0}, ++ {"IFT_PVC", Const, 0}, ++ {"IFT_Q2931", Const, 1}, ++ {"IFT_QLLC", Const, 0}, ++ {"IFT_RADIOMAC", Const, 0}, ++ {"IFT_RADSL", Const, 0}, ++ {"IFT_REACHDSL", Const, 0}, ++ {"IFT_RFC1483", Const, 0}, ++ {"IFT_RS232", Const, 0}, ++ {"IFT_RSRB", Const, 0}, ++ {"IFT_SDLC", Const, 0}, ++ {"IFT_SDSL", Const, 0}, ++ {"IFT_SHDSL", Const, 0}, ++ {"IFT_SIP", Const, 0}, ++ {"IFT_SIPSIG", Const, 1}, ++ {"IFT_SIPTG", Const, 1}, ++ {"IFT_SLIP", Const, 0}, ++ {"IFT_SMDSDXI", Const, 0}, ++ {"IFT_SMDSICIP", Const, 0}, ++ {"IFT_SONET", Const, 0}, ++ {"IFT_SONETOVERHEADCHANNEL", Const, 0}, ++ {"IFT_SONETPATH", Const, 0}, ++ {"IFT_SONETVT", Const, 0}, ++ {"IFT_SRP", Const, 0}, ++ {"IFT_SS7SIGLINK", Const, 0}, ++ {"IFT_STACKTOSTACK", Const, 0}, ++ {"IFT_STARLAN", Const, 0}, ++ {"IFT_STF", Const, 0}, ++ {"IFT_T1", Const, 0}, ++ {"IFT_TDLC", Const, 0}, ++ {"IFT_TELINK", Const, 1}, ++ {"IFT_TERMPAD", Const, 0}, ++ {"IFT_TR008", Const, 0}, ++ {"IFT_TRANSPHDLC", Const, 0}, ++ {"IFT_TUNNEL", Const, 0}, ++ {"IFT_ULTRA", Const, 0}, ++ {"IFT_USB", Const, 0}, ++ {"IFT_V11", Const, 0}, ++ {"IFT_V35", Const, 0}, ++ {"IFT_V36", Const, 0}, ++ {"IFT_V37", Const, 0}, ++ {"IFT_VDSL", Const, 0}, ++ {"IFT_VIRTUALIPADDRESS", Const, 0}, ++ {"IFT_VIRTUALTG", Const, 1}, ++ {"IFT_VOICEDID", Const, 1}, ++ {"IFT_VOICEEM", Const, 0}, ++ {"IFT_VOICEEMFGD", Const, 1}, ++ {"IFT_VOICEENCAP", Const, 0}, ++ {"IFT_VOICEFGDEANA", Const, 1}, ++ {"IFT_VOICEFXO", Const, 0}, ++ {"IFT_VOICEFXS", Const, 0}, ++ {"IFT_VOICEOVERATM", Const, 0}, ++ {"IFT_VOICEOVERCABLE", Const, 1}, ++ {"IFT_VOICEOVERFRAMERELAY", Const, 0}, ++ {"IFT_VOICEOVERIP", Const, 0}, ++ {"IFT_X213", Const, 0}, ++ {"IFT_X25", Const, 0}, ++ {"IFT_X25DDN", Const, 0}, ++ {"IFT_X25HUNTGROUP", Const, 0}, ++ {"IFT_X25MLP", Const, 0}, ++ {"IFT_X25PLE", Const, 0}, ++ {"IFT_XETHER", Const, 0}, ++ {"IGNBRK", Const, 0}, ++ {"IGNCR", Const, 0}, ++ {"IGNORE", Const, 0}, ++ {"IGNPAR", Const, 0}, ++ {"IMAXBEL", Const, 0}, ++ {"INFINITE", Const, 0}, ++ {"INLCR", Const, 0}, ++ {"INPCK", Const, 0}, ++ {"INVALID_FILE_ATTRIBUTES", Const, 0}, ++ {"IN_ACCESS", Const, 0}, ++ {"IN_ALL_EVENTS", Const, 0}, ++ {"IN_ATTRIB", Const, 0}, ++ {"IN_CLASSA_HOST", Const, 0}, ++ {"IN_CLASSA_MAX", Const, 0}, ++ {"IN_CLASSA_NET", Const, 0}, ++ {"IN_CLASSA_NSHIFT", Const, 0}, ++ {"IN_CLASSB_HOST", Const, 0}, ++ {"IN_CLASSB_MAX", Const, 0}, ++ {"IN_CLASSB_NET", Const, 0}, ++ {"IN_CLASSB_NSHIFT", Const, 0}, ++ {"IN_CLASSC_HOST", Const, 0}, ++ {"IN_CLASSC_NET", Const, 0}, ++ {"IN_CLASSC_NSHIFT", Const, 0}, ++ {"IN_CLASSD_HOST", Const, 0}, ++ {"IN_CLASSD_NET", Const, 0}, ++ {"IN_CLASSD_NSHIFT", Const, 0}, ++ {"IN_CLOEXEC", Const, 0}, ++ {"IN_CLOSE", Const, 0}, ++ {"IN_CLOSE_NOWRITE", Const, 0}, ++ {"IN_CLOSE_WRITE", Const, 0}, ++ {"IN_CREATE", Const, 0}, ++ {"IN_DELETE", Const, 0}, ++ {"IN_DELETE_SELF", Const, 0}, ++ {"IN_DONT_FOLLOW", Const, 0}, ++ {"IN_EXCL_UNLINK", Const, 0}, ++ {"IN_IGNORED", Const, 0}, ++ {"IN_ISDIR", Const, 0}, ++ {"IN_LINKLOCALNETNUM", Const, 0}, ++ {"IN_LOOPBACKNET", Const, 0}, ++ {"IN_MASK_ADD", Const, 0}, ++ {"IN_MODIFY", Const, 0}, ++ {"IN_MOVE", Const, 0}, ++ {"IN_MOVED_FROM", Const, 0}, ++ {"IN_MOVED_TO", Const, 0}, ++ {"IN_MOVE_SELF", Const, 0}, ++ {"IN_NONBLOCK", Const, 0}, ++ {"IN_ONESHOT", Const, 0}, ++ {"IN_ONLYDIR", Const, 0}, ++ {"IN_OPEN", Const, 0}, ++ {"IN_Q_OVERFLOW", Const, 0}, ++ {"IN_RFC3021_HOST", Const, 1}, ++ {"IN_RFC3021_MASK", Const, 1}, ++ {"IN_RFC3021_NET", Const, 1}, ++ {"IN_RFC3021_NSHIFT", Const, 1}, ++ {"IN_UNMOUNT", Const, 0}, ++ {"IOC_IN", Const, 1}, ++ {"IOC_INOUT", Const, 1}, ++ {"IOC_OUT", Const, 1}, ++ {"IOC_VENDOR", Const, 3}, ++ {"IOC_WS2", Const, 1}, ++ {"IO_REPARSE_TAG_SYMLINK", Const, 4}, ++ {"IPMreq", Type, 0}, ++ {"IPMreq.Interface", Field, 0}, ++ {"IPMreq.Multiaddr", Field, 0}, ++ {"IPMreqn", Type, 0}, ++ {"IPMreqn.Address", Field, 0}, ++ {"IPMreqn.Ifindex", Field, 0}, ++ {"IPMreqn.Multiaddr", Field, 0}, ++ {"IPPROTO_3PC", Const, 0}, ++ {"IPPROTO_ADFS", Const, 0}, ++ {"IPPROTO_AH", Const, 0}, ++ {"IPPROTO_AHIP", Const, 0}, ++ {"IPPROTO_APES", Const, 0}, ++ {"IPPROTO_ARGUS", Const, 0}, ++ {"IPPROTO_AX25", Const, 0}, ++ {"IPPROTO_BHA", Const, 0}, ++ {"IPPROTO_BLT", Const, 0}, ++ {"IPPROTO_BRSATMON", Const, 0}, ++ {"IPPROTO_CARP", Const, 0}, ++ {"IPPROTO_CFTP", Const, 0}, ++ {"IPPROTO_CHAOS", Const, 0}, ++ {"IPPROTO_CMTP", Const, 0}, ++ {"IPPROTO_COMP", Const, 0}, ++ {"IPPROTO_CPHB", Const, 0}, ++ {"IPPROTO_CPNX", Const, 0}, ++ {"IPPROTO_DCCP", Const, 0}, ++ {"IPPROTO_DDP", Const, 0}, ++ {"IPPROTO_DGP", Const, 0}, ++ {"IPPROTO_DIVERT", Const, 0}, ++ {"IPPROTO_DIVERT_INIT", Const, 3}, ++ {"IPPROTO_DIVERT_RESP", Const, 3}, ++ {"IPPROTO_DONE", Const, 0}, ++ {"IPPROTO_DSTOPTS", Const, 0}, ++ {"IPPROTO_EGP", Const, 0}, ++ {"IPPROTO_EMCON", Const, 0}, ++ {"IPPROTO_ENCAP", Const, 0}, ++ {"IPPROTO_EON", Const, 0}, ++ {"IPPROTO_ESP", Const, 0}, ++ {"IPPROTO_ETHERIP", Const, 0}, ++ {"IPPROTO_FRAGMENT", Const, 0}, ++ {"IPPROTO_GGP", Const, 0}, ++ {"IPPROTO_GMTP", Const, 0}, ++ {"IPPROTO_GRE", Const, 0}, ++ {"IPPROTO_HELLO", Const, 0}, ++ {"IPPROTO_HMP", Const, 0}, ++ {"IPPROTO_HOPOPTS", Const, 0}, ++ {"IPPROTO_ICMP", Const, 0}, ++ {"IPPROTO_ICMPV6", Const, 0}, ++ {"IPPROTO_IDP", Const, 0}, ++ {"IPPROTO_IDPR", Const, 0}, ++ {"IPPROTO_IDRP", Const, 0}, ++ {"IPPROTO_IGMP", Const, 0}, ++ {"IPPROTO_IGP", Const, 0}, ++ {"IPPROTO_IGRP", Const, 0}, ++ {"IPPROTO_IL", Const, 0}, ++ {"IPPROTO_INLSP", Const, 0}, ++ {"IPPROTO_INP", Const, 0}, ++ {"IPPROTO_IP", Const, 0}, ++ {"IPPROTO_IPCOMP", Const, 0}, ++ {"IPPROTO_IPCV", Const, 0}, ++ {"IPPROTO_IPEIP", Const, 0}, ++ {"IPPROTO_IPIP", Const, 0}, ++ {"IPPROTO_IPPC", Const, 0}, ++ {"IPPROTO_IPV4", Const, 0}, ++ {"IPPROTO_IPV6", Const, 0}, ++ {"IPPROTO_IPV6_ICMP", Const, 1}, ++ {"IPPROTO_IRTP", Const, 0}, ++ {"IPPROTO_KRYPTOLAN", Const, 0}, ++ {"IPPROTO_LARP", Const, 0}, ++ {"IPPROTO_LEAF1", Const, 0}, ++ {"IPPROTO_LEAF2", Const, 0}, ++ {"IPPROTO_MAX", Const, 0}, ++ {"IPPROTO_MAXID", Const, 0}, ++ {"IPPROTO_MEAS", Const, 0}, ++ {"IPPROTO_MH", Const, 1}, ++ {"IPPROTO_MHRP", Const, 0}, ++ {"IPPROTO_MICP", Const, 0}, ++ {"IPPROTO_MOBILE", Const, 0}, ++ {"IPPROTO_MPLS", Const, 1}, ++ {"IPPROTO_MTP", Const, 0}, ++ {"IPPROTO_MUX", Const, 0}, ++ {"IPPROTO_ND", Const, 0}, ++ {"IPPROTO_NHRP", Const, 0}, ++ {"IPPROTO_NONE", Const, 0}, ++ {"IPPROTO_NSP", Const, 0}, ++ {"IPPROTO_NVPII", Const, 0}, ++ {"IPPROTO_OLD_DIVERT", Const, 0}, ++ {"IPPROTO_OSPFIGP", Const, 0}, ++ {"IPPROTO_PFSYNC", Const, 0}, ++ {"IPPROTO_PGM", Const, 0}, ++ {"IPPROTO_PIGP", Const, 0}, ++ {"IPPROTO_PIM", Const, 0}, ++ {"IPPROTO_PRM", Const, 0}, ++ {"IPPROTO_PUP", Const, 0}, ++ {"IPPROTO_PVP", Const, 0}, ++ {"IPPROTO_RAW", Const, 0}, ++ {"IPPROTO_RCCMON", Const, 0}, ++ {"IPPROTO_RDP", Const, 0}, ++ {"IPPROTO_ROUTING", Const, 0}, ++ {"IPPROTO_RSVP", Const, 0}, ++ {"IPPROTO_RVD", Const, 0}, ++ {"IPPROTO_SATEXPAK", Const, 0}, ++ {"IPPROTO_SATMON", Const, 0}, ++ {"IPPROTO_SCCSP", Const, 0}, ++ {"IPPROTO_SCTP", Const, 0}, ++ {"IPPROTO_SDRP", Const, 0}, ++ {"IPPROTO_SEND", Const, 1}, ++ {"IPPROTO_SEP", Const, 0}, ++ {"IPPROTO_SKIP", Const, 0}, ++ {"IPPROTO_SPACER", Const, 0}, ++ {"IPPROTO_SRPC", Const, 0}, ++ {"IPPROTO_ST", Const, 0}, ++ {"IPPROTO_SVMTP", Const, 0}, ++ {"IPPROTO_SWIPE", Const, 0}, ++ {"IPPROTO_TCF", Const, 0}, ++ {"IPPROTO_TCP", Const, 0}, ++ {"IPPROTO_TLSP", Const, 0}, ++ {"IPPROTO_TP", Const, 0}, ++ {"IPPROTO_TPXX", Const, 0}, ++ {"IPPROTO_TRUNK1", Const, 0}, ++ {"IPPROTO_TRUNK2", Const, 0}, ++ {"IPPROTO_TTP", Const, 0}, ++ {"IPPROTO_UDP", Const, 0}, ++ {"IPPROTO_UDPLITE", Const, 0}, ++ {"IPPROTO_VINES", Const, 0}, ++ {"IPPROTO_VISA", Const, 0}, ++ {"IPPROTO_VMTP", Const, 0}, ++ {"IPPROTO_VRRP", Const, 1}, ++ {"IPPROTO_WBEXPAK", Const, 0}, ++ {"IPPROTO_WBMON", Const, 0}, ++ {"IPPROTO_WSN", Const, 0}, ++ {"IPPROTO_XNET", Const, 0}, ++ {"IPPROTO_XTP", Const, 0}, ++ {"IPV6_2292DSTOPTS", Const, 0}, ++ {"IPV6_2292HOPLIMIT", Const, 0}, ++ {"IPV6_2292HOPOPTS", Const, 0}, ++ {"IPV6_2292NEXTHOP", Const, 0}, ++ {"IPV6_2292PKTINFO", Const, 0}, ++ {"IPV6_2292PKTOPTIONS", Const, 0}, ++ {"IPV6_2292RTHDR", Const, 0}, ++ {"IPV6_ADDRFORM", Const, 0}, ++ {"IPV6_ADD_MEMBERSHIP", Const, 0}, ++ {"IPV6_AUTHHDR", Const, 0}, ++ {"IPV6_AUTH_LEVEL", Const, 1}, ++ {"IPV6_AUTOFLOWLABEL", Const, 0}, ++ {"IPV6_BINDANY", Const, 0}, ++ {"IPV6_BINDV6ONLY", Const, 0}, ++ {"IPV6_BOUND_IF", Const, 0}, ++ {"IPV6_CHECKSUM", Const, 0}, ++ {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0}, ++ {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0}, ++ {"IPV6_DEFHLIM", Const, 0}, ++ {"IPV6_DONTFRAG", Const, 0}, ++ {"IPV6_DROP_MEMBERSHIP", Const, 0}, ++ {"IPV6_DSTOPTS", Const, 0}, ++ {"IPV6_ESP_NETWORK_LEVEL", Const, 1}, ++ {"IPV6_ESP_TRANS_LEVEL", Const, 1}, ++ {"IPV6_FAITH", Const, 0}, ++ {"IPV6_FLOWINFO_MASK", Const, 0}, ++ {"IPV6_FLOWLABEL_MASK", Const, 0}, ++ {"IPV6_FRAGTTL", Const, 0}, ++ {"IPV6_FW_ADD", Const, 0}, ++ {"IPV6_FW_DEL", Const, 0}, ++ {"IPV6_FW_FLUSH", Const, 0}, ++ {"IPV6_FW_GET", Const, 0}, ++ {"IPV6_FW_ZERO", Const, 0}, ++ {"IPV6_HLIMDEC", Const, 0}, ++ {"IPV6_HOPLIMIT", Const, 0}, ++ {"IPV6_HOPOPTS", Const, 0}, ++ {"IPV6_IPCOMP_LEVEL", Const, 1}, ++ {"IPV6_IPSEC_POLICY", Const, 0}, ++ {"IPV6_JOIN_ANYCAST", Const, 0}, ++ {"IPV6_JOIN_GROUP", Const, 0}, ++ {"IPV6_LEAVE_ANYCAST", Const, 0}, ++ {"IPV6_LEAVE_GROUP", Const, 0}, ++ {"IPV6_MAXHLIM", Const, 0}, ++ {"IPV6_MAXOPTHDR", Const, 0}, ++ {"IPV6_MAXPACKET", Const, 0}, ++ {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0}, ++ {"IPV6_MAX_MEMBERSHIPS", Const, 0}, ++ {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0}, ++ {"IPV6_MIN_MEMBERSHIPS", Const, 0}, ++ {"IPV6_MMTU", Const, 0}, ++ {"IPV6_MSFILTER", Const, 0}, ++ {"IPV6_MTU", Const, 0}, ++ {"IPV6_MTU_DISCOVER", Const, 0}, ++ {"IPV6_MULTICAST_HOPS", Const, 0}, ++ {"IPV6_MULTICAST_IF", Const, 0}, ++ {"IPV6_MULTICAST_LOOP", Const, 0}, ++ {"IPV6_NEXTHOP", Const, 0}, ++ {"IPV6_OPTIONS", Const, 1}, ++ {"IPV6_PATHMTU", Const, 0}, ++ {"IPV6_PIPEX", Const, 1}, ++ {"IPV6_PKTINFO", Const, 0}, ++ {"IPV6_PMTUDISC_DO", Const, 0}, ++ {"IPV6_PMTUDISC_DONT", Const, 0}, ++ {"IPV6_PMTUDISC_PROBE", Const, 0}, ++ {"IPV6_PMTUDISC_WANT", Const, 0}, ++ {"IPV6_PORTRANGE", Const, 0}, ++ {"IPV6_PORTRANGE_DEFAULT", Const, 0}, ++ {"IPV6_PORTRANGE_HIGH", Const, 0}, ++ {"IPV6_PORTRANGE_LOW", Const, 0}, ++ {"IPV6_PREFER_TEMPADDR", Const, 0}, ++ {"IPV6_RECVDSTOPTS", Const, 0}, ++ {"IPV6_RECVDSTPORT", Const, 3}, ++ {"IPV6_RECVERR", Const, 0}, ++ {"IPV6_RECVHOPLIMIT", Const, 0}, ++ {"IPV6_RECVHOPOPTS", Const, 0}, ++ {"IPV6_RECVPATHMTU", Const, 0}, ++ {"IPV6_RECVPKTINFO", Const, 0}, ++ {"IPV6_RECVRTHDR", Const, 0}, ++ {"IPV6_RECVTCLASS", Const, 0}, ++ {"IPV6_ROUTER_ALERT", Const, 0}, ++ {"IPV6_RTABLE", Const, 1}, ++ {"IPV6_RTHDR", Const, 0}, ++ {"IPV6_RTHDRDSTOPTS", Const, 0}, ++ {"IPV6_RTHDR_LOOSE", Const, 0}, ++ {"IPV6_RTHDR_STRICT", Const, 0}, ++ {"IPV6_RTHDR_TYPE_0", Const, 0}, ++ {"IPV6_RXDSTOPTS", Const, 0}, ++ {"IPV6_RXHOPOPTS", Const, 0}, ++ {"IPV6_SOCKOPT_RESERVED1", Const, 0}, ++ {"IPV6_TCLASS", Const, 0}, ++ {"IPV6_UNICAST_HOPS", Const, 0}, ++ {"IPV6_USE_MIN_MTU", Const, 0}, ++ {"IPV6_V6ONLY", Const, 0}, ++ {"IPV6_VERSION", Const, 0}, ++ {"IPV6_VERSION_MASK", Const, 0}, ++ {"IPV6_XFRM_POLICY", Const, 0}, ++ {"IP_ADD_MEMBERSHIP", Const, 0}, ++ {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0}, ++ {"IP_AUTH_LEVEL", Const, 1}, ++ {"IP_BINDANY", Const, 0}, ++ {"IP_BLOCK_SOURCE", Const, 0}, ++ {"IP_BOUND_IF", Const, 0}, ++ {"IP_DEFAULT_MULTICAST_LOOP", Const, 0}, ++ {"IP_DEFAULT_MULTICAST_TTL", Const, 0}, ++ {"IP_DF", Const, 0}, ++ {"IP_DIVERTFL", Const, 3}, ++ {"IP_DONTFRAG", Const, 0}, ++ {"IP_DROP_MEMBERSHIP", Const, 0}, ++ {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0}, ++ {"IP_DUMMYNET3", Const, 0}, ++ {"IP_DUMMYNET_CONFIGURE", Const, 0}, ++ {"IP_DUMMYNET_DEL", Const, 0}, ++ {"IP_DUMMYNET_FLUSH", Const, 0}, ++ {"IP_DUMMYNET_GET", Const, 0}, ++ {"IP_EF", Const, 1}, ++ {"IP_ERRORMTU", Const, 1}, ++ {"IP_ESP_NETWORK_LEVEL", Const, 1}, ++ {"IP_ESP_TRANS_LEVEL", Const, 1}, ++ {"IP_FAITH", Const, 0}, ++ {"IP_FREEBIND", Const, 0}, ++ {"IP_FW3", Const, 0}, ++ {"IP_FW_ADD", Const, 0}, ++ {"IP_FW_DEL", Const, 0}, ++ {"IP_FW_FLUSH", Const, 0}, ++ {"IP_FW_GET", Const, 0}, ++ {"IP_FW_NAT_CFG", Const, 0}, ++ {"IP_FW_NAT_DEL", Const, 0}, ++ {"IP_FW_NAT_GET_CONFIG", Const, 0}, ++ {"IP_FW_NAT_GET_LOG", Const, 0}, ++ {"IP_FW_RESETLOG", Const, 0}, ++ {"IP_FW_TABLE_ADD", Const, 0}, ++ {"IP_FW_TABLE_DEL", Const, 0}, ++ {"IP_FW_TABLE_FLUSH", Const, 0}, ++ {"IP_FW_TABLE_GETSIZE", Const, 0}, ++ {"IP_FW_TABLE_LIST", Const, 0}, ++ {"IP_FW_ZERO", Const, 0}, ++ {"IP_HDRINCL", Const, 0}, ++ {"IP_IPCOMP_LEVEL", Const, 1}, ++ {"IP_IPSECFLOWINFO", Const, 1}, ++ {"IP_IPSEC_LOCAL_AUTH", Const, 1}, ++ {"IP_IPSEC_LOCAL_CRED", Const, 1}, ++ {"IP_IPSEC_LOCAL_ID", Const, 1}, ++ {"IP_IPSEC_POLICY", Const, 0}, ++ {"IP_IPSEC_REMOTE_AUTH", Const, 1}, ++ {"IP_IPSEC_REMOTE_CRED", Const, 1}, ++ {"IP_IPSEC_REMOTE_ID", Const, 1}, ++ {"IP_MAXPACKET", Const, 0}, ++ {"IP_MAX_GROUP_SRC_FILTER", Const, 0}, ++ {"IP_MAX_MEMBERSHIPS", Const, 0}, ++ {"IP_MAX_SOCK_MUTE_FILTER", Const, 0}, ++ {"IP_MAX_SOCK_SRC_FILTER", Const, 0}, ++ {"IP_MAX_SOURCE_FILTER", Const, 0}, ++ {"IP_MF", Const, 0}, ++ {"IP_MINFRAGSIZE", Const, 1}, ++ {"IP_MINTTL", Const, 0}, ++ {"IP_MIN_MEMBERSHIPS", Const, 0}, ++ {"IP_MSFILTER", Const, 0}, ++ {"IP_MSS", Const, 0}, ++ {"IP_MTU", Const, 0}, ++ {"IP_MTU_DISCOVER", Const, 0}, ++ {"IP_MULTICAST_IF", Const, 0}, ++ {"IP_MULTICAST_IFINDEX", Const, 0}, ++ {"IP_MULTICAST_LOOP", Const, 0}, ++ {"IP_MULTICAST_TTL", Const, 0}, ++ {"IP_MULTICAST_VIF", Const, 0}, ++ {"IP_NAT__XXX", Const, 0}, ++ {"IP_OFFMASK", Const, 0}, ++ {"IP_OLD_FW_ADD", Const, 0}, ++ {"IP_OLD_FW_DEL", Const, 0}, ++ {"IP_OLD_FW_FLUSH", Const, 0}, ++ {"IP_OLD_FW_GET", Const, 0}, ++ {"IP_OLD_FW_RESETLOG", Const, 0}, ++ {"IP_OLD_FW_ZERO", Const, 0}, ++ {"IP_ONESBCAST", Const, 0}, ++ {"IP_OPTIONS", Const, 0}, ++ {"IP_ORIGDSTADDR", Const, 0}, ++ {"IP_PASSSEC", Const, 0}, ++ {"IP_PIPEX", Const, 1}, ++ {"IP_PKTINFO", Const, 0}, ++ {"IP_PKTOPTIONS", Const, 0}, ++ {"IP_PMTUDISC", Const, 0}, ++ {"IP_PMTUDISC_DO", Const, 0}, ++ {"IP_PMTUDISC_DONT", Const, 0}, ++ {"IP_PMTUDISC_PROBE", Const, 0}, ++ {"IP_PMTUDISC_WANT", Const, 0}, ++ {"IP_PORTRANGE", Const, 0}, ++ {"IP_PORTRANGE_DEFAULT", Const, 0}, ++ {"IP_PORTRANGE_HIGH", Const, 0}, ++ {"IP_PORTRANGE_LOW", Const, 0}, ++ {"IP_RECVDSTADDR", Const, 0}, ++ {"IP_RECVDSTPORT", Const, 1}, ++ {"IP_RECVERR", Const, 0}, ++ {"IP_RECVIF", Const, 0}, ++ {"IP_RECVOPTS", Const, 0}, ++ {"IP_RECVORIGDSTADDR", Const, 0}, ++ {"IP_RECVPKTINFO", Const, 0}, ++ {"IP_RECVRETOPTS", Const, 0}, ++ {"IP_RECVRTABLE", Const, 1}, ++ {"IP_RECVTOS", Const, 0}, ++ {"IP_RECVTTL", Const, 0}, ++ {"IP_RETOPTS", Const, 0}, ++ {"IP_RF", Const, 0}, ++ {"IP_ROUTER_ALERT", Const, 0}, ++ {"IP_RSVP_OFF", Const, 0}, ++ {"IP_RSVP_ON", Const, 0}, ++ {"IP_RSVP_VIF_OFF", Const, 0}, ++ {"IP_RSVP_VIF_ON", Const, 0}, ++ {"IP_RTABLE", Const, 1}, ++ {"IP_SENDSRCADDR", Const, 0}, ++ {"IP_STRIPHDR", Const, 0}, ++ {"IP_TOS", Const, 0}, ++ {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0}, ++ {"IP_TRANSPARENT", Const, 0}, ++ {"IP_TTL", Const, 0}, ++ {"IP_UNBLOCK_SOURCE", Const, 0}, ++ {"IP_XFRM_POLICY", Const, 0}, ++ {"IPv6MTUInfo", Type, 2}, ++ {"IPv6MTUInfo.Addr", Field, 2}, ++ {"IPv6MTUInfo.Mtu", Field, 2}, ++ {"IPv6Mreq", Type, 0}, ++ {"IPv6Mreq.Interface", Field, 0}, ++ {"IPv6Mreq.Multiaddr", Field, 0}, ++ {"ISIG", Const, 0}, ++ {"ISTRIP", Const, 0}, ++ {"IUCLC", Const, 0}, ++ {"IUTF8", Const, 0}, ++ {"IXANY", Const, 0}, ++ {"IXOFF", Const, 0}, ++ {"IXON", Const, 0}, ++ {"IfAddrmsg", Type, 0}, ++ {"IfAddrmsg.Family", Field, 0}, ++ {"IfAddrmsg.Flags", Field, 0}, ++ {"IfAddrmsg.Index", Field, 0}, ++ {"IfAddrmsg.Prefixlen", Field, 0}, ++ {"IfAddrmsg.Scope", Field, 0}, ++ {"IfAnnounceMsghdr", Type, 1}, ++ {"IfAnnounceMsghdr.Hdrlen", Field, 2}, ++ {"IfAnnounceMsghdr.Index", Field, 1}, ++ {"IfAnnounceMsghdr.Msglen", Field, 1}, ++ {"IfAnnounceMsghdr.Name", Field, 1}, ++ {"IfAnnounceMsghdr.Type", Field, 1}, ++ {"IfAnnounceMsghdr.Version", Field, 1}, ++ {"IfAnnounceMsghdr.What", Field, 1}, ++ {"IfData", Type, 0}, ++ {"IfData.Addrlen", Field, 0}, ++ {"IfData.Baudrate", Field, 0}, ++ {"IfData.Capabilities", Field, 2}, ++ {"IfData.Collisions", Field, 0}, ++ {"IfData.Datalen", Field, 0}, ++ {"IfData.Epoch", Field, 0}, ++ {"IfData.Hdrlen", Field, 0}, ++ {"IfData.Hwassist", Field, 0}, ++ {"IfData.Ibytes", Field, 0}, ++ {"IfData.Ierrors", Field, 0}, ++ {"IfData.Imcasts", Field, 0}, ++ {"IfData.Ipackets", Field, 0}, ++ {"IfData.Iqdrops", Field, 0}, ++ {"IfData.Lastchange", Field, 0}, ++ {"IfData.Link_state", Field, 0}, ++ {"IfData.Mclpool", Field, 2}, ++ {"IfData.Metric", Field, 0}, ++ {"IfData.Mtu", Field, 0}, ++ {"IfData.Noproto", Field, 0}, ++ {"IfData.Obytes", Field, 0}, ++ {"IfData.Oerrors", Field, 0}, ++ {"IfData.Omcasts", Field, 0}, ++ {"IfData.Opackets", Field, 0}, ++ {"IfData.Pad", Field, 2}, ++ {"IfData.Pad_cgo_0", Field, 2}, ++ {"IfData.Pad_cgo_1", Field, 2}, ++ {"IfData.Physical", Field, 0}, ++ {"IfData.Recvquota", Field, 0}, ++ {"IfData.Recvtiming", Field, 0}, ++ {"IfData.Reserved1", Field, 0}, ++ {"IfData.Reserved2", Field, 0}, ++ {"IfData.Spare_char1", Field, 0}, ++ {"IfData.Spare_char2", Field, 0}, ++ {"IfData.Type", Field, 0}, ++ {"IfData.Typelen", Field, 0}, ++ {"IfData.Unused1", Field, 0}, ++ {"IfData.Unused2", Field, 0}, ++ {"IfData.Xmitquota", Field, 0}, ++ {"IfData.Xmittiming", Field, 0}, ++ {"IfInfomsg", Type, 0}, ++ {"IfInfomsg.Change", Field, 0}, ++ {"IfInfomsg.Family", Field, 0}, ++ {"IfInfomsg.Flags", Field, 0}, ++ {"IfInfomsg.Index", Field, 0}, ++ {"IfInfomsg.Type", Field, 0}, ++ {"IfInfomsg.X__ifi_pad", Field, 0}, ++ {"IfMsghdr", Type, 0}, ++ {"IfMsghdr.Addrs", Field, 0}, ++ {"IfMsghdr.Data", Field, 0}, ++ {"IfMsghdr.Flags", Field, 0}, ++ {"IfMsghdr.Hdrlen", Field, 2}, ++ {"IfMsghdr.Index", Field, 0}, ++ {"IfMsghdr.Msglen", Field, 0}, ++ {"IfMsghdr.Pad1", Field, 2}, ++ {"IfMsghdr.Pad2", Field, 2}, ++ {"IfMsghdr.Pad_cgo_0", Field, 0}, ++ {"IfMsghdr.Pad_cgo_1", Field, 2}, ++ {"IfMsghdr.Tableid", Field, 2}, ++ {"IfMsghdr.Type", Field, 0}, ++ {"IfMsghdr.Version", Field, 0}, ++ {"IfMsghdr.Xflags", Field, 2}, ++ {"IfaMsghdr", Type, 0}, ++ {"IfaMsghdr.Addrs", Field, 0}, ++ {"IfaMsghdr.Flags", Field, 0}, ++ {"IfaMsghdr.Hdrlen", Field, 2}, ++ {"IfaMsghdr.Index", Field, 0}, ++ {"IfaMsghdr.Metric", Field, 0}, ++ {"IfaMsghdr.Msglen", Field, 0}, ++ {"IfaMsghdr.Pad1", Field, 2}, ++ {"IfaMsghdr.Pad2", Field, 2}, ++ {"IfaMsghdr.Pad_cgo_0", Field, 0}, ++ {"IfaMsghdr.Tableid", Field, 2}, ++ {"IfaMsghdr.Type", Field, 0}, ++ {"IfaMsghdr.Version", Field, 0}, ++ {"IfmaMsghdr", Type, 0}, ++ {"IfmaMsghdr.Addrs", Field, 0}, ++ {"IfmaMsghdr.Flags", Field, 0}, ++ {"IfmaMsghdr.Index", Field, 0}, ++ {"IfmaMsghdr.Msglen", Field, 0}, ++ {"IfmaMsghdr.Pad_cgo_0", Field, 0}, ++ {"IfmaMsghdr.Type", Field, 0}, ++ {"IfmaMsghdr.Version", Field, 0}, ++ {"IfmaMsghdr2", Type, 0}, ++ {"IfmaMsghdr2.Addrs", Field, 0}, ++ {"IfmaMsghdr2.Flags", Field, 0}, ++ {"IfmaMsghdr2.Index", Field, 0}, ++ {"IfmaMsghdr2.Msglen", Field, 0}, ++ {"IfmaMsghdr2.Pad_cgo_0", Field, 0}, ++ {"IfmaMsghdr2.Refcount", Field, 0}, ++ {"IfmaMsghdr2.Type", Field, 0}, ++ {"IfmaMsghdr2.Version", Field, 0}, ++ {"ImplementsGetwd", Const, 0}, ++ {"Inet4Pktinfo", Type, 0}, ++ {"Inet4Pktinfo.Addr", Field, 0}, ++ {"Inet4Pktinfo.Ifindex", Field, 0}, ++ {"Inet4Pktinfo.Spec_dst", Field, 0}, ++ {"Inet6Pktinfo", Type, 0}, ++ {"Inet6Pktinfo.Addr", Field, 0}, ++ {"Inet6Pktinfo.Ifindex", Field, 0}, ++ {"InotifyAddWatch", Func, 0}, ++ {"InotifyEvent", Type, 0}, ++ {"InotifyEvent.Cookie", Field, 0}, ++ {"InotifyEvent.Len", Field, 0}, ++ {"InotifyEvent.Mask", Field, 0}, ++ {"InotifyEvent.Name", Field, 0}, ++ {"InotifyEvent.Wd", Field, 0}, ++ {"InotifyInit", Func, 0}, ++ {"InotifyInit1", Func, 0}, ++ {"InotifyRmWatch", Func, 0}, ++ {"InterfaceAddrMessage", Type, 0}, ++ {"InterfaceAddrMessage.Data", Field, 0}, ++ {"InterfaceAddrMessage.Header", Field, 0}, ++ {"InterfaceAnnounceMessage", Type, 1}, ++ {"InterfaceAnnounceMessage.Header", Field, 1}, ++ {"InterfaceInfo", Type, 0}, ++ {"InterfaceInfo.Address", Field, 0}, ++ {"InterfaceInfo.BroadcastAddress", Field, 0}, ++ {"InterfaceInfo.Flags", Field, 0}, ++ {"InterfaceInfo.Netmask", Field, 0}, ++ {"InterfaceMessage", Type, 0}, ++ {"InterfaceMessage.Data", Field, 0}, ++ {"InterfaceMessage.Header", Field, 0}, ++ {"InterfaceMulticastAddrMessage", Type, 0}, ++ {"InterfaceMulticastAddrMessage.Data", Field, 0}, ++ {"InterfaceMulticastAddrMessage.Header", Field, 0}, ++ {"InvalidHandle", Const, 0}, ++ {"Ioperm", Func, 0}, ++ {"Iopl", Func, 0}, ++ {"Iovec", Type, 0}, ++ {"Iovec.Base", Field, 0}, ++ {"Iovec.Len", Field, 0}, ++ {"IpAdapterInfo", Type, 0}, ++ {"IpAdapterInfo.AdapterName", Field, 0}, ++ {"IpAdapterInfo.Address", Field, 0}, ++ {"IpAdapterInfo.AddressLength", Field, 0}, ++ {"IpAdapterInfo.ComboIndex", Field, 0}, ++ {"IpAdapterInfo.CurrentIpAddress", Field, 0}, ++ {"IpAdapterInfo.Description", Field, 0}, ++ {"IpAdapterInfo.DhcpEnabled", Field, 0}, ++ {"IpAdapterInfo.DhcpServer", Field, 0}, ++ {"IpAdapterInfo.GatewayList", Field, 0}, ++ {"IpAdapterInfo.HaveWins", Field, 0}, ++ {"IpAdapterInfo.Index", Field, 0}, ++ {"IpAdapterInfo.IpAddressList", Field, 0}, ++ {"IpAdapterInfo.LeaseExpires", Field, 0}, ++ {"IpAdapterInfo.LeaseObtained", Field, 0}, ++ {"IpAdapterInfo.Next", Field, 0}, ++ {"IpAdapterInfo.PrimaryWinsServer", Field, 0}, ++ {"IpAdapterInfo.SecondaryWinsServer", Field, 0}, ++ {"IpAdapterInfo.Type", Field, 0}, ++ {"IpAddrString", Type, 0}, ++ {"IpAddrString.Context", Field, 0}, ++ {"IpAddrString.IpAddress", Field, 0}, ++ {"IpAddrString.IpMask", Field, 0}, ++ {"IpAddrString.Next", Field, 0}, ++ {"IpAddressString", Type, 0}, ++ {"IpAddressString.String", Field, 0}, ++ {"IpMaskString", Type, 0}, ++ {"IpMaskString.String", Field, 2}, ++ {"Issetugid", Func, 0}, ++ {"KEY_ALL_ACCESS", Const, 0}, ++ {"KEY_CREATE_LINK", Const, 0}, ++ {"KEY_CREATE_SUB_KEY", Const, 0}, ++ {"KEY_ENUMERATE_SUB_KEYS", Const, 0}, ++ {"KEY_EXECUTE", Const, 0}, ++ {"KEY_NOTIFY", Const, 0}, ++ {"KEY_QUERY_VALUE", Const, 0}, ++ {"KEY_READ", Const, 0}, ++ {"KEY_SET_VALUE", Const, 0}, ++ {"KEY_WOW64_32KEY", Const, 0}, ++ {"KEY_WOW64_64KEY", Const, 0}, ++ {"KEY_WRITE", Const, 0}, ++ {"Kevent", Func, 0}, ++ {"Kevent_t", Type, 0}, ++ {"Kevent_t.Data", Field, 0}, ++ {"Kevent_t.Fflags", Field, 0}, ++ {"Kevent_t.Filter", Field, 0}, ++ {"Kevent_t.Flags", Field, 0}, ++ {"Kevent_t.Ident", Field, 0}, ++ {"Kevent_t.Pad_cgo_0", Field, 2}, ++ {"Kevent_t.Udata", Field, 0}, ++ {"Kill", Func, 0}, ++ {"Klogctl", Func, 0}, ++ {"Kqueue", Func, 0}, ++ {"LANG_ENGLISH", Const, 0}, ++ {"LAYERED_PROTOCOL", Const, 2}, ++ {"LCNT_OVERLOAD_FLUSH", Const, 1}, ++ {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0}, ++ {"LINUX_REBOOT_CMD_CAD_ON", Const, 0}, ++ {"LINUX_REBOOT_CMD_HALT", Const, 0}, ++ {"LINUX_REBOOT_CMD_KEXEC", Const, 0}, ++ {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0}, ++ {"LINUX_REBOOT_CMD_RESTART", Const, 0}, ++ {"LINUX_REBOOT_CMD_RESTART2", Const, 0}, ++ {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0}, ++ {"LINUX_REBOOT_MAGIC1", Const, 0}, ++ {"LINUX_REBOOT_MAGIC2", Const, 0}, ++ {"LOCK_EX", Const, 0}, ++ {"LOCK_NB", Const, 0}, ++ {"LOCK_SH", Const, 0}, ++ {"LOCK_UN", Const, 0}, ++ {"LazyDLL", Type, 0}, ++ {"LazyDLL.Name", Field, 0}, ++ {"LazyProc", Type, 0}, ++ {"LazyProc.Name", Field, 0}, ++ {"Lchown", Func, 0}, ++ {"Linger", Type, 0}, ++ {"Linger.Linger", Field, 0}, ++ {"Linger.Onoff", Field, 0}, ++ {"Link", Func, 0}, ++ {"Listen", Func, 0}, ++ {"Listxattr", Func, 1}, ++ {"LoadCancelIoEx", Func, 1}, ++ {"LoadConnectEx", Func, 1}, ++ {"LoadCreateSymbolicLink", Func, 4}, ++ {"LoadDLL", Func, 0}, ++ {"LoadGetAddrInfo", Func, 1}, ++ {"LoadLibrary", Func, 0}, ++ {"LoadSetFileCompletionNotificationModes", Func, 2}, ++ {"LocalFree", Func, 0}, ++ {"Log2phys_t", Type, 0}, ++ {"Log2phys_t.Contigbytes", Field, 0}, ++ {"Log2phys_t.Devoffset", Field, 0}, ++ {"Log2phys_t.Flags", Field, 0}, ++ {"LookupAccountName", Func, 0}, ++ {"LookupAccountSid", Func, 0}, ++ {"LookupSID", Func, 0}, ++ {"LsfJump", Func, 0}, ++ {"LsfSocket", Func, 0}, ++ {"LsfStmt", Func, 0}, ++ {"Lstat", Func, 0}, ++ {"MADV_AUTOSYNC", Const, 1}, ++ {"MADV_CAN_REUSE", Const, 0}, ++ {"MADV_CORE", Const, 1}, ++ {"MADV_DOFORK", Const, 0}, ++ {"MADV_DONTFORK", Const, 0}, ++ {"MADV_DONTNEED", Const, 0}, ++ {"MADV_FREE", Const, 0}, ++ {"MADV_FREE_REUSABLE", Const, 0}, ++ {"MADV_FREE_REUSE", Const, 0}, ++ {"MADV_HUGEPAGE", Const, 0}, ++ {"MADV_HWPOISON", Const, 0}, ++ {"MADV_MERGEABLE", Const, 0}, ++ {"MADV_NOCORE", Const, 1}, ++ {"MADV_NOHUGEPAGE", Const, 0}, ++ {"MADV_NORMAL", Const, 0}, ++ {"MADV_NOSYNC", Const, 1}, ++ {"MADV_PROTECT", Const, 1}, ++ {"MADV_RANDOM", Const, 0}, ++ {"MADV_REMOVE", Const, 0}, ++ {"MADV_SEQUENTIAL", Const, 0}, ++ {"MADV_SPACEAVAIL", Const, 3}, ++ {"MADV_UNMERGEABLE", Const, 0}, ++ {"MADV_WILLNEED", Const, 0}, ++ {"MADV_ZERO_WIRED_PAGES", Const, 0}, ++ {"MAP_32BIT", Const, 0}, ++ {"MAP_ALIGNED_SUPER", Const, 3}, ++ {"MAP_ALIGNMENT_16MB", Const, 3}, ++ {"MAP_ALIGNMENT_1TB", Const, 3}, ++ {"MAP_ALIGNMENT_256TB", Const, 3}, ++ {"MAP_ALIGNMENT_4GB", Const, 3}, ++ {"MAP_ALIGNMENT_64KB", Const, 3}, ++ {"MAP_ALIGNMENT_64PB", Const, 3}, ++ {"MAP_ALIGNMENT_MASK", Const, 3}, ++ {"MAP_ALIGNMENT_SHIFT", Const, 3}, ++ {"MAP_ANON", Const, 0}, ++ {"MAP_ANONYMOUS", Const, 0}, ++ {"MAP_COPY", Const, 0}, ++ {"MAP_DENYWRITE", Const, 0}, ++ {"MAP_EXECUTABLE", Const, 0}, ++ {"MAP_FILE", Const, 0}, ++ {"MAP_FIXED", Const, 0}, ++ {"MAP_FLAGMASK", Const, 3}, ++ {"MAP_GROWSDOWN", Const, 0}, ++ {"MAP_HASSEMAPHORE", Const, 0}, ++ {"MAP_HUGETLB", Const, 0}, ++ {"MAP_INHERIT", Const, 3}, ++ {"MAP_INHERIT_COPY", Const, 3}, ++ {"MAP_INHERIT_DEFAULT", Const, 3}, ++ {"MAP_INHERIT_DONATE_COPY", Const, 3}, ++ {"MAP_INHERIT_NONE", Const, 3}, ++ {"MAP_INHERIT_SHARE", Const, 3}, ++ {"MAP_JIT", Const, 0}, ++ {"MAP_LOCKED", Const, 0}, ++ {"MAP_NOCACHE", Const, 0}, ++ {"MAP_NOCORE", Const, 1}, ++ {"MAP_NOEXTEND", Const, 0}, ++ {"MAP_NONBLOCK", Const, 0}, ++ {"MAP_NORESERVE", Const, 0}, ++ {"MAP_NOSYNC", Const, 1}, ++ {"MAP_POPULATE", Const, 0}, ++ {"MAP_PREFAULT_READ", Const, 1}, ++ {"MAP_PRIVATE", Const, 0}, ++ {"MAP_RENAME", Const, 0}, ++ {"MAP_RESERVED0080", Const, 0}, ++ {"MAP_RESERVED0100", Const, 1}, ++ {"MAP_SHARED", Const, 0}, ++ {"MAP_STACK", Const, 0}, ++ {"MAP_TRYFIXED", Const, 3}, ++ {"MAP_TYPE", Const, 0}, ++ {"MAP_WIRED", Const, 3}, ++ {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4}, ++ {"MAXLEN_IFDESCR", Const, 0}, ++ {"MAXLEN_PHYSADDR", Const, 0}, ++ {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0}, ++ {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0}, ++ {"MAX_ADAPTER_NAME_LENGTH", Const, 0}, ++ {"MAX_COMPUTERNAME_LENGTH", Const, 0}, ++ {"MAX_INTERFACE_NAME_LEN", Const, 0}, ++ {"MAX_LONG_PATH", Const, 0}, ++ {"MAX_PATH", Const, 0}, ++ {"MAX_PROTOCOL_CHAIN", Const, 2}, ++ {"MCL_CURRENT", Const, 0}, ++ {"MCL_FUTURE", Const, 0}, ++ {"MNT_DETACH", Const, 0}, ++ {"MNT_EXPIRE", Const, 0}, ++ {"MNT_FORCE", Const, 0}, ++ {"MSG_BCAST", Const, 1}, ++ {"MSG_CMSG_CLOEXEC", Const, 0}, ++ {"MSG_COMPAT", Const, 0}, ++ {"MSG_CONFIRM", Const, 0}, ++ {"MSG_CONTROLMBUF", Const, 1}, ++ {"MSG_CTRUNC", Const, 0}, ++ {"MSG_DONTROUTE", Const, 0}, ++ {"MSG_DONTWAIT", Const, 0}, ++ {"MSG_EOF", Const, 0}, ++ {"MSG_EOR", Const, 0}, ++ {"MSG_ERRQUEUE", Const, 0}, ++ {"MSG_FASTOPEN", Const, 1}, ++ {"MSG_FIN", Const, 0}, ++ {"MSG_FLUSH", Const, 0}, ++ {"MSG_HAVEMORE", Const, 0}, ++ {"MSG_HOLD", Const, 0}, ++ {"MSG_IOVUSRSPACE", Const, 1}, ++ {"MSG_LENUSRSPACE", Const, 1}, ++ {"MSG_MCAST", Const, 1}, ++ {"MSG_MORE", Const, 0}, ++ {"MSG_NAMEMBUF", Const, 1}, ++ {"MSG_NBIO", Const, 0}, ++ {"MSG_NEEDSA", Const, 0}, ++ {"MSG_NOSIGNAL", Const, 0}, ++ {"MSG_NOTIFICATION", Const, 0}, ++ {"MSG_OOB", Const, 0}, ++ {"MSG_PEEK", Const, 0}, ++ {"MSG_PROXY", Const, 0}, ++ {"MSG_RCVMORE", Const, 0}, ++ {"MSG_RST", Const, 0}, ++ {"MSG_SEND", Const, 0}, ++ {"MSG_SYN", Const, 0}, ++ {"MSG_TRUNC", Const, 0}, ++ {"MSG_TRYHARD", Const, 0}, ++ {"MSG_USERFLAGS", Const, 1}, ++ {"MSG_WAITALL", Const, 0}, ++ {"MSG_WAITFORONE", Const, 0}, ++ {"MSG_WAITSTREAM", Const, 0}, ++ {"MS_ACTIVE", Const, 0}, ++ {"MS_ASYNC", Const, 0}, ++ {"MS_BIND", Const, 0}, ++ {"MS_DEACTIVATE", Const, 0}, ++ {"MS_DIRSYNC", Const, 0}, ++ {"MS_INVALIDATE", Const, 0}, ++ {"MS_I_VERSION", Const, 0}, ++ {"MS_KERNMOUNT", Const, 0}, ++ {"MS_KILLPAGES", Const, 0}, ++ {"MS_MANDLOCK", Const, 0}, ++ {"MS_MGC_MSK", Const, 0}, ++ {"MS_MGC_VAL", Const, 0}, ++ {"MS_MOVE", Const, 0}, ++ {"MS_NOATIME", Const, 0}, ++ {"MS_NODEV", Const, 0}, ++ {"MS_NODIRATIME", Const, 0}, ++ {"MS_NOEXEC", Const, 0}, ++ {"MS_NOSUID", Const, 0}, ++ {"MS_NOUSER", Const, 0}, ++ {"MS_POSIXACL", Const, 0}, ++ {"MS_PRIVATE", Const, 0}, ++ {"MS_RDONLY", Const, 0}, ++ {"MS_REC", Const, 0}, ++ {"MS_RELATIME", Const, 0}, ++ {"MS_REMOUNT", Const, 0}, ++ {"MS_RMT_MASK", Const, 0}, ++ {"MS_SHARED", Const, 0}, ++ {"MS_SILENT", Const, 0}, ++ {"MS_SLAVE", Const, 0}, ++ {"MS_STRICTATIME", Const, 0}, ++ {"MS_SYNC", Const, 0}, ++ {"MS_SYNCHRONOUS", Const, 0}, ++ {"MS_UNBINDABLE", Const, 0}, ++ {"Madvise", Func, 0}, ++ {"MapViewOfFile", Func, 0}, ++ {"MaxTokenInfoClass", Const, 0}, ++ {"Mclpool", Type, 2}, ++ {"Mclpool.Alive", Field, 2}, ++ {"Mclpool.Cwm", Field, 2}, ++ {"Mclpool.Grown", Field, 2}, ++ {"Mclpool.Hwm", Field, 2}, ++ {"Mclpool.Lwm", Field, 2}, ++ {"MibIfRow", Type, 0}, ++ {"MibIfRow.AdminStatus", Field, 0}, ++ {"MibIfRow.Descr", Field, 0}, ++ {"MibIfRow.DescrLen", Field, 0}, ++ {"MibIfRow.InDiscards", Field, 0}, ++ {"MibIfRow.InErrors", Field, 0}, ++ {"MibIfRow.InNUcastPkts", Field, 0}, ++ {"MibIfRow.InOctets", Field, 0}, ++ {"MibIfRow.InUcastPkts", Field, 0}, ++ {"MibIfRow.InUnknownProtos", Field, 0}, ++ {"MibIfRow.Index", Field, 0}, ++ {"MibIfRow.LastChange", Field, 0}, ++ {"MibIfRow.Mtu", Field, 0}, ++ {"MibIfRow.Name", Field, 0}, ++ {"MibIfRow.OperStatus", Field, 0}, ++ {"MibIfRow.OutDiscards", Field, 0}, ++ {"MibIfRow.OutErrors", Field, 0}, ++ {"MibIfRow.OutNUcastPkts", Field, 0}, ++ {"MibIfRow.OutOctets", Field, 0}, ++ {"MibIfRow.OutQLen", Field, 0}, ++ {"MibIfRow.OutUcastPkts", Field, 0}, ++ {"MibIfRow.PhysAddr", Field, 0}, ++ {"MibIfRow.PhysAddrLen", Field, 0}, ++ {"MibIfRow.Speed", Field, 0}, ++ {"MibIfRow.Type", Field, 0}, ++ {"Mkdir", Func, 0}, ++ {"Mkdirat", Func, 0}, ++ {"Mkfifo", Func, 0}, ++ {"Mknod", Func, 0}, ++ {"Mknodat", Func, 0}, ++ {"Mlock", Func, 0}, ++ {"Mlockall", Func, 0}, ++ {"Mmap", Func, 0}, ++ {"Mount", Func, 0}, ++ {"MoveFile", Func, 0}, ++ {"Mprotect", Func, 0}, ++ {"Msghdr", Type, 0}, ++ {"Msghdr.Control", Field, 0}, ++ {"Msghdr.Controllen", Field, 0}, ++ {"Msghdr.Flags", Field, 0}, ++ {"Msghdr.Iov", Field, 0}, ++ {"Msghdr.Iovlen", Field, 0}, ++ {"Msghdr.Name", Field, 0}, ++ {"Msghdr.Namelen", Field, 0}, ++ {"Msghdr.Pad_cgo_0", Field, 0}, ++ {"Msghdr.Pad_cgo_1", Field, 0}, ++ {"Munlock", Func, 0}, ++ {"Munlockall", Func, 0}, ++ {"Munmap", Func, 0}, ++ {"MustLoadDLL", Func, 0}, ++ {"NAME_MAX", Const, 0}, ++ {"NETLINK_ADD_MEMBERSHIP", Const, 0}, ++ {"NETLINK_AUDIT", Const, 0}, ++ {"NETLINK_BROADCAST_ERROR", Const, 0}, ++ {"NETLINK_CONNECTOR", Const, 0}, ++ {"NETLINK_DNRTMSG", Const, 0}, ++ {"NETLINK_DROP_MEMBERSHIP", Const, 0}, ++ {"NETLINK_ECRYPTFS", Const, 0}, ++ {"NETLINK_FIB_LOOKUP", Const, 0}, ++ {"NETLINK_FIREWALL", Const, 0}, ++ {"NETLINK_GENERIC", Const, 0}, ++ {"NETLINK_INET_DIAG", Const, 0}, ++ {"NETLINK_IP6_FW", Const, 0}, ++ {"NETLINK_ISCSI", Const, 0}, ++ {"NETLINK_KOBJECT_UEVENT", Const, 0}, ++ {"NETLINK_NETFILTER", Const, 0}, ++ {"NETLINK_NFLOG", Const, 0}, ++ {"NETLINK_NO_ENOBUFS", Const, 0}, ++ {"NETLINK_PKTINFO", Const, 0}, ++ {"NETLINK_RDMA", Const, 0}, ++ {"NETLINK_ROUTE", Const, 0}, ++ {"NETLINK_SCSITRANSPORT", Const, 0}, ++ {"NETLINK_SELINUX", Const, 0}, ++ {"NETLINK_UNUSED", Const, 0}, ++ {"NETLINK_USERSOCK", Const, 0}, ++ {"NETLINK_XFRM", Const, 0}, ++ {"NET_RT_DUMP", Const, 0}, ++ {"NET_RT_DUMP2", Const, 0}, ++ {"NET_RT_FLAGS", Const, 0}, ++ {"NET_RT_IFLIST", Const, 0}, ++ {"NET_RT_IFLIST2", Const, 0}, ++ {"NET_RT_IFLISTL", Const, 1}, ++ {"NET_RT_IFMALIST", Const, 0}, ++ {"NET_RT_MAXID", Const, 0}, ++ {"NET_RT_OIFLIST", Const, 1}, ++ {"NET_RT_OOIFLIST", Const, 1}, ++ {"NET_RT_STAT", Const, 0}, ++ {"NET_RT_STATS", Const, 1}, ++ {"NET_RT_TABLE", Const, 1}, ++ {"NET_RT_TRASH", Const, 0}, ++ {"NLA_ALIGNTO", Const, 0}, ++ {"NLA_F_NESTED", Const, 0}, ++ {"NLA_F_NET_BYTEORDER", Const, 0}, ++ {"NLA_HDRLEN", Const, 0}, ++ {"NLMSG_ALIGNTO", Const, 0}, ++ {"NLMSG_DONE", Const, 0}, ++ {"NLMSG_ERROR", Const, 0}, ++ {"NLMSG_HDRLEN", Const, 0}, ++ {"NLMSG_MIN_TYPE", Const, 0}, ++ {"NLMSG_NOOP", Const, 0}, ++ {"NLMSG_OVERRUN", Const, 0}, ++ {"NLM_F_ACK", Const, 0}, ++ {"NLM_F_APPEND", Const, 0}, ++ {"NLM_F_ATOMIC", Const, 0}, ++ {"NLM_F_CREATE", Const, 0}, ++ {"NLM_F_DUMP", Const, 0}, ++ {"NLM_F_ECHO", Const, 0}, ++ {"NLM_F_EXCL", Const, 0}, ++ {"NLM_F_MATCH", Const, 0}, ++ {"NLM_F_MULTI", Const, 0}, ++ {"NLM_F_REPLACE", Const, 0}, ++ {"NLM_F_REQUEST", Const, 0}, ++ {"NLM_F_ROOT", Const, 0}, ++ {"NOFLSH", Const, 0}, ++ {"NOTE_ABSOLUTE", Const, 0}, ++ {"NOTE_ATTRIB", Const, 0}, ++ {"NOTE_BACKGROUND", Const, 16}, ++ {"NOTE_CHILD", Const, 0}, ++ {"NOTE_CRITICAL", Const, 16}, ++ {"NOTE_DELETE", Const, 0}, ++ {"NOTE_EOF", Const, 1}, ++ {"NOTE_EXEC", Const, 0}, ++ {"NOTE_EXIT", Const, 0}, ++ {"NOTE_EXITSTATUS", Const, 0}, ++ {"NOTE_EXIT_CSERROR", Const, 16}, ++ {"NOTE_EXIT_DECRYPTFAIL", Const, 16}, ++ {"NOTE_EXIT_DETAIL", Const, 16}, ++ {"NOTE_EXIT_DETAIL_MASK", Const, 16}, ++ {"NOTE_EXIT_MEMORY", Const, 16}, ++ {"NOTE_EXIT_REPARENTED", Const, 16}, ++ {"NOTE_EXTEND", Const, 0}, ++ {"NOTE_FFAND", Const, 0}, ++ {"NOTE_FFCOPY", Const, 0}, ++ {"NOTE_FFCTRLMASK", Const, 0}, ++ {"NOTE_FFLAGSMASK", Const, 0}, ++ {"NOTE_FFNOP", Const, 0}, ++ {"NOTE_FFOR", Const, 0}, ++ {"NOTE_FORK", Const, 0}, ++ {"NOTE_LEEWAY", Const, 16}, ++ {"NOTE_LINK", Const, 0}, ++ {"NOTE_LOWAT", Const, 0}, ++ {"NOTE_NONE", Const, 0}, ++ {"NOTE_NSECONDS", Const, 0}, ++ {"NOTE_PCTRLMASK", Const, 0}, ++ {"NOTE_PDATAMASK", Const, 0}, ++ {"NOTE_REAP", Const, 0}, ++ {"NOTE_RENAME", Const, 0}, ++ {"NOTE_RESOURCEEND", Const, 0}, ++ {"NOTE_REVOKE", Const, 0}, ++ {"NOTE_SECONDS", Const, 0}, ++ {"NOTE_SIGNAL", Const, 0}, ++ {"NOTE_TRACK", Const, 0}, ++ {"NOTE_TRACKERR", Const, 0}, ++ {"NOTE_TRIGGER", Const, 0}, ++ {"NOTE_TRUNCATE", Const, 1}, ++ {"NOTE_USECONDS", Const, 0}, ++ {"NOTE_VM_ERROR", Const, 0}, ++ {"NOTE_VM_PRESSURE", Const, 0}, ++ {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0}, ++ {"NOTE_VM_PRESSURE_TERMINATE", Const, 0}, ++ {"NOTE_WRITE", Const, 0}, ++ {"NameCanonical", Const, 0}, ++ {"NameCanonicalEx", Const, 0}, ++ {"NameDisplay", Const, 0}, ++ {"NameDnsDomain", Const, 0}, ++ {"NameFullyQualifiedDN", Const, 0}, ++ {"NameSamCompatible", Const, 0}, ++ {"NameServicePrincipal", Const, 0}, ++ {"NameUniqueId", Const, 0}, ++ {"NameUnknown", Const, 0}, ++ {"NameUserPrincipal", Const, 0}, ++ {"Nanosleep", Func, 0}, ++ {"NetApiBufferFree", Func, 0}, ++ {"NetGetJoinInformation", Func, 2}, ++ {"NetSetupDomainName", Const, 2}, ++ {"NetSetupUnjoined", Const, 2}, ++ {"NetSetupUnknownStatus", Const, 2}, ++ {"NetSetupWorkgroupName", Const, 2}, ++ {"NetUserGetInfo", Func, 0}, ++ {"NetlinkMessage", Type, 0}, ++ {"NetlinkMessage.Data", Field, 0}, ++ {"NetlinkMessage.Header", Field, 0}, ++ {"NetlinkRIB", Func, 0}, ++ {"NetlinkRouteAttr", Type, 0}, ++ {"NetlinkRouteAttr.Attr", Field, 0}, ++ {"NetlinkRouteAttr.Value", Field, 0}, ++ {"NetlinkRouteRequest", Type, 0}, ++ {"NetlinkRouteRequest.Data", Field, 0}, ++ {"NetlinkRouteRequest.Header", Field, 0}, ++ {"NewCallback", Func, 0}, ++ {"NewCallbackCDecl", Func, 3}, ++ {"NewLazyDLL", Func, 0}, ++ {"NlAttr", Type, 0}, ++ {"NlAttr.Len", Field, 0}, ++ {"NlAttr.Type", Field, 0}, ++ {"NlMsgerr", Type, 0}, ++ {"NlMsgerr.Error", Field, 0}, ++ {"NlMsgerr.Msg", Field, 0}, ++ {"NlMsghdr", Type, 0}, ++ {"NlMsghdr.Flags", Field, 0}, ++ {"NlMsghdr.Len", Field, 0}, ++ {"NlMsghdr.Pid", Field, 0}, ++ {"NlMsghdr.Seq", Field, 0}, ++ {"NlMsghdr.Type", Field, 0}, ++ {"NsecToFiletime", Func, 0}, ++ {"NsecToTimespec", Func, 0}, ++ {"NsecToTimeval", Func, 0}, ++ {"Ntohs", Func, 0}, ++ {"OCRNL", Const, 0}, ++ {"OFDEL", Const, 0}, ++ {"OFILL", Const, 0}, ++ {"OFIOGETBMAP", Const, 1}, ++ {"OID_PKIX_KP_SERVER_AUTH", Var, 0}, ++ {"OID_SERVER_GATED_CRYPTO", Var, 0}, ++ {"OID_SGC_NETSCAPE", Var, 0}, ++ {"OLCUC", Const, 0}, ++ {"ONLCR", Const, 0}, ++ {"ONLRET", Const, 0}, ++ {"ONOCR", Const, 0}, ++ {"ONOEOT", Const, 1}, ++ {"OPEN_ALWAYS", Const, 0}, ++ {"OPEN_EXISTING", Const, 0}, ++ {"OPOST", Const, 0}, ++ {"O_ACCMODE", Const, 0}, ++ {"O_ALERT", Const, 0}, ++ {"O_ALT_IO", Const, 1}, ++ {"O_APPEND", Const, 0}, ++ {"O_ASYNC", Const, 0}, ++ {"O_CLOEXEC", Const, 0}, ++ {"O_CREAT", Const, 0}, ++ {"O_DIRECT", Const, 0}, ++ {"O_DIRECTORY", Const, 0}, ++ {"O_DP_GETRAWENCRYPTED", Const, 16}, ++ {"O_DSYNC", Const, 0}, ++ {"O_EVTONLY", Const, 0}, ++ {"O_EXCL", Const, 0}, ++ {"O_EXEC", Const, 0}, ++ {"O_EXLOCK", Const, 0}, ++ {"O_FSYNC", Const, 0}, ++ {"O_LARGEFILE", Const, 0}, ++ {"O_NDELAY", Const, 0}, ++ {"O_NOATIME", Const, 0}, ++ {"O_NOCTTY", Const, 0}, ++ {"O_NOFOLLOW", Const, 0}, ++ {"O_NONBLOCK", Const, 0}, ++ {"O_NOSIGPIPE", Const, 1}, ++ {"O_POPUP", Const, 0}, ++ {"O_RDONLY", Const, 0}, ++ {"O_RDWR", Const, 0}, ++ {"O_RSYNC", Const, 0}, ++ {"O_SHLOCK", Const, 0}, ++ {"O_SYMLINK", Const, 0}, ++ {"O_SYNC", Const, 0}, ++ {"O_TRUNC", Const, 0}, ++ {"O_TTY_INIT", Const, 0}, ++ {"O_WRONLY", Const, 0}, ++ {"Open", Func, 0}, ++ {"OpenCurrentProcessToken", Func, 0}, ++ {"OpenProcess", Func, 0}, ++ {"OpenProcessToken", Func, 0}, ++ {"Openat", Func, 0}, ++ {"Overlapped", Type, 0}, ++ {"Overlapped.HEvent", Field, 0}, ++ {"Overlapped.Internal", Field, 0}, ++ {"Overlapped.InternalHigh", Field, 0}, ++ {"Overlapped.Offset", Field, 0}, ++ {"Overlapped.OffsetHigh", Field, 0}, ++ {"PACKET_ADD_MEMBERSHIP", Const, 0}, ++ {"PACKET_BROADCAST", Const, 0}, ++ {"PACKET_DROP_MEMBERSHIP", Const, 0}, ++ {"PACKET_FASTROUTE", Const, 0}, ++ {"PACKET_HOST", Const, 0}, ++ {"PACKET_LOOPBACK", Const, 0}, ++ {"PACKET_MR_ALLMULTI", Const, 0}, ++ {"PACKET_MR_MULTICAST", Const, 0}, ++ {"PACKET_MR_PROMISC", Const, 0}, ++ {"PACKET_MULTICAST", Const, 0}, ++ {"PACKET_OTHERHOST", Const, 0}, ++ {"PACKET_OUTGOING", Const, 0}, ++ {"PACKET_RECV_OUTPUT", Const, 0}, ++ {"PACKET_RX_RING", Const, 0}, ++ {"PACKET_STATISTICS", Const, 0}, ++ {"PAGE_EXECUTE_READ", Const, 0}, ++ {"PAGE_EXECUTE_READWRITE", Const, 0}, ++ {"PAGE_EXECUTE_WRITECOPY", Const, 0}, ++ {"PAGE_READONLY", Const, 0}, ++ {"PAGE_READWRITE", Const, 0}, ++ {"PAGE_WRITECOPY", Const, 0}, ++ {"PARENB", Const, 0}, ++ {"PARMRK", Const, 0}, ++ {"PARODD", Const, 0}, ++ {"PENDIN", Const, 0}, ++ {"PFL_HIDDEN", Const, 2}, ++ {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2}, ++ {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2}, ++ {"PFL_NETWORKDIRECT_PROVIDER", Const, 2}, ++ {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2}, ++ {"PF_FLUSH", Const, 1}, ++ {"PKCS_7_ASN_ENCODING", Const, 0}, ++ {"PMC5_PIPELINE_FLUSH", Const, 1}, ++ {"PRIO_PGRP", Const, 2}, ++ {"PRIO_PROCESS", Const, 2}, ++ {"PRIO_USER", Const, 2}, ++ {"PRI_IOFLUSH", Const, 1}, ++ {"PROCESS_QUERY_INFORMATION", Const, 0}, ++ {"PROCESS_TERMINATE", Const, 2}, ++ {"PROT_EXEC", Const, 0}, ++ {"PROT_GROWSDOWN", Const, 0}, ++ {"PROT_GROWSUP", Const, 0}, ++ {"PROT_NONE", Const, 0}, ++ {"PROT_READ", Const, 0}, ++ {"PROT_WRITE", Const, 0}, ++ {"PROV_DH_SCHANNEL", Const, 0}, ++ {"PROV_DSS", Const, 0}, ++ {"PROV_DSS_DH", Const, 0}, ++ {"PROV_EC_ECDSA_FULL", Const, 0}, ++ {"PROV_EC_ECDSA_SIG", Const, 0}, ++ {"PROV_EC_ECNRA_FULL", Const, 0}, ++ {"PROV_EC_ECNRA_SIG", Const, 0}, ++ {"PROV_FORTEZZA", Const, 0}, ++ {"PROV_INTEL_SEC", Const, 0}, ++ {"PROV_MS_EXCHANGE", Const, 0}, ++ {"PROV_REPLACE_OWF", Const, 0}, ++ {"PROV_RNG", Const, 0}, ++ {"PROV_RSA_AES", Const, 0}, ++ {"PROV_RSA_FULL", Const, 0}, ++ {"PROV_RSA_SCHANNEL", Const, 0}, ++ {"PROV_RSA_SIG", Const, 0}, ++ {"PROV_SPYRUS_LYNKS", Const, 0}, ++ {"PROV_SSL", Const, 0}, ++ {"PR_CAPBSET_DROP", Const, 0}, ++ {"PR_CAPBSET_READ", Const, 0}, ++ {"PR_CLEAR_SECCOMP_FILTER", Const, 0}, ++ {"PR_ENDIAN_BIG", Const, 0}, ++ {"PR_ENDIAN_LITTLE", Const, 0}, ++ {"PR_ENDIAN_PPC_LITTLE", Const, 0}, ++ {"PR_FPEMU_NOPRINT", Const, 0}, ++ {"PR_FPEMU_SIGFPE", Const, 0}, ++ {"PR_FP_EXC_ASYNC", Const, 0}, ++ {"PR_FP_EXC_DISABLED", Const, 0}, ++ {"PR_FP_EXC_DIV", Const, 0}, ++ {"PR_FP_EXC_INV", Const, 0}, ++ {"PR_FP_EXC_NONRECOV", Const, 0}, ++ {"PR_FP_EXC_OVF", Const, 0}, ++ {"PR_FP_EXC_PRECISE", Const, 0}, ++ {"PR_FP_EXC_RES", Const, 0}, ++ {"PR_FP_EXC_SW_ENABLE", Const, 0}, ++ {"PR_FP_EXC_UND", Const, 0}, ++ {"PR_GET_DUMPABLE", Const, 0}, ++ {"PR_GET_ENDIAN", Const, 0}, ++ {"PR_GET_FPEMU", Const, 0}, ++ {"PR_GET_FPEXC", Const, 0}, ++ {"PR_GET_KEEPCAPS", Const, 0}, ++ {"PR_GET_NAME", Const, 0}, ++ {"PR_GET_PDEATHSIG", Const, 0}, ++ {"PR_GET_SECCOMP", Const, 0}, ++ {"PR_GET_SECCOMP_FILTER", Const, 0}, ++ {"PR_GET_SECUREBITS", Const, 0}, ++ {"PR_GET_TIMERSLACK", Const, 0}, ++ {"PR_GET_TIMING", Const, 0}, ++ {"PR_GET_TSC", Const, 0}, ++ {"PR_GET_UNALIGN", Const, 0}, ++ {"PR_MCE_KILL", Const, 0}, ++ {"PR_MCE_KILL_CLEAR", Const, 0}, ++ {"PR_MCE_KILL_DEFAULT", Const, 0}, ++ {"PR_MCE_KILL_EARLY", Const, 0}, ++ {"PR_MCE_KILL_GET", Const, 0}, ++ {"PR_MCE_KILL_LATE", Const, 0}, ++ {"PR_MCE_KILL_SET", Const, 0}, ++ {"PR_SECCOMP_FILTER_EVENT", Const, 0}, ++ {"PR_SECCOMP_FILTER_SYSCALL", Const, 0}, ++ {"PR_SET_DUMPABLE", Const, 0}, ++ {"PR_SET_ENDIAN", Const, 0}, ++ {"PR_SET_FPEMU", Const, 0}, ++ {"PR_SET_FPEXC", Const, 0}, ++ {"PR_SET_KEEPCAPS", Const, 0}, ++ {"PR_SET_NAME", Const, 0}, ++ {"PR_SET_PDEATHSIG", Const, 0}, ++ {"PR_SET_PTRACER", Const, 0}, ++ {"PR_SET_SECCOMP", Const, 0}, ++ {"PR_SET_SECCOMP_FILTER", Const, 0}, ++ {"PR_SET_SECUREBITS", Const, 0}, ++ {"PR_SET_TIMERSLACK", Const, 0}, ++ {"PR_SET_TIMING", Const, 0}, ++ {"PR_SET_TSC", Const, 0}, ++ {"PR_SET_UNALIGN", Const, 0}, ++ {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0}, ++ {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0}, ++ {"PR_TIMING_STATISTICAL", Const, 0}, ++ {"PR_TIMING_TIMESTAMP", Const, 0}, ++ {"PR_TSC_ENABLE", Const, 0}, ++ {"PR_TSC_SIGSEGV", Const, 0}, ++ {"PR_UNALIGN_NOPRINT", Const, 0}, ++ {"PR_UNALIGN_SIGBUS", Const, 0}, ++ {"PTRACE_ARCH_PRCTL", Const, 0}, ++ {"PTRACE_ATTACH", Const, 0}, ++ {"PTRACE_CONT", Const, 0}, ++ {"PTRACE_DETACH", Const, 0}, ++ {"PTRACE_EVENT_CLONE", Const, 0}, ++ {"PTRACE_EVENT_EXEC", Const, 0}, ++ {"PTRACE_EVENT_EXIT", Const, 0}, ++ {"PTRACE_EVENT_FORK", Const, 0}, ++ {"PTRACE_EVENT_VFORK", Const, 0}, ++ {"PTRACE_EVENT_VFORK_DONE", Const, 0}, ++ {"PTRACE_GETCRUNCHREGS", Const, 0}, ++ {"PTRACE_GETEVENTMSG", Const, 0}, ++ {"PTRACE_GETFPREGS", Const, 0}, ++ {"PTRACE_GETFPXREGS", Const, 0}, ++ {"PTRACE_GETHBPREGS", Const, 0}, ++ {"PTRACE_GETREGS", Const, 0}, ++ {"PTRACE_GETREGSET", Const, 0}, ++ {"PTRACE_GETSIGINFO", Const, 0}, ++ {"PTRACE_GETVFPREGS", Const, 0}, ++ {"PTRACE_GETWMMXREGS", Const, 0}, ++ {"PTRACE_GET_THREAD_AREA", Const, 0}, ++ {"PTRACE_KILL", Const, 0}, ++ {"PTRACE_OLDSETOPTIONS", Const, 0}, ++ {"PTRACE_O_MASK", Const, 0}, ++ {"PTRACE_O_TRACECLONE", Const, 0}, ++ {"PTRACE_O_TRACEEXEC", Const, 0}, ++ {"PTRACE_O_TRACEEXIT", Const, 0}, ++ {"PTRACE_O_TRACEFORK", Const, 0}, ++ {"PTRACE_O_TRACESYSGOOD", Const, 0}, ++ {"PTRACE_O_TRACEVFORK", Const, 0}, ++ {"PTRACE_O_TRACEVFORKDONE", Const, 0}, ++ {"PTRACE_PEEKDATA", Const, 0}, ++ {"PTRACE_PEEKTEXT", Const, 0}, ++ {"PTRACE_PEEKUSR", Const, 0}, ++ {"PTRACE_POKEDATA", Const, 0}, ++ {"PTRACE_POKETEXT", Const, 0}, ++ {"PTRACE_POKEUSR", Const, 0}, ++ {"PTRACE_SETCRUNCHREGS", Const, 0}, ++ {"PTRACE_SETFPREGS", Const, 0}, ++ {"PTRACE_SETFPXREGS", Const, 0}, ++ {"PTRACE_SETHBPREGS", Const, 0}, ++ {"PTRACE_SETOPTIONS", Const, 0}, ++ {"PTRACE_SETREGS", Const, 0}, ++ {"PTRACE_SETREGSET", Const, 0}, ++ {"PTRACE_SETSIGINFO", Const, 0}, ++ {"PTRACE_SETVFPREGS", Const, 0}, ++ {"PTRACE_SETWMMXREGS", Const, 0}, ++ {"PTRACE_SET_SYSCALL", Const, 0}, ++ {"PTRACE_SET_THREAD_AREA", Const, 0}, ++ {"PTRACE_SINGLEBLOCK", Const, 0}, ++ {"PTRACE_SINGLESTEP", Const, 0}, ++ {"PTRACE_SYSCALL", Const, 0}, ++ {"PTRACE_SYSEMU", Const, 0}, ++ {"PTRACE_SYSEMU_SINGLESTEP", Const, 0}, ++ {"PTRACE_TRACEME", Const, 0}, ++ {"PT_ATTACH", Const, 0}, ++ {"PT_ATTACHEXC", Const, 0}, ++ {"PT_CONTINUE", Const, 0}, ++ {"PT_DATA_ADDR", Const, 0}, ++ {"PT_DENY_ATTACH", Const, 0}, ++ {"PT_DETACH", Const, 0}, ++ {"PT_FIRSTMACH", Const, 0}, ++ {"PT_FORCEQUOTA", Const, 0}, ++ {"PT_KILL", Const, 0}, ++ {"PT_MASK", Const, 1}, ++ {"PT_READ_D", Const, 0}, ++ {"PT_READ_I", Const, 0}, ++ {"PT_READ_U", Const, 0}, ++ {"PT_SIGEXC", Const, 0}, ++ {"PT_STEP", Const, 0}, ++ {"PT_TEXT_ADDR", Const, 0}, ++ {"PT_TEXT_END_ADDR", Const, 0}, ++ {"PT_THUPDATE", Const, 0}, ++ {"PT_TRACE_ME", Const, 0}, ++ {"PT_WRITE_D", Const, 0}, ++ {"PT_WRITE_I", Const, 0}, ++ {"PT_WRITE_U", Const, 0}, ++ {"ParseDirent", Func, 0}, ++ {"ParseNetlinkMessage", Func, 0}, ++ {"ParseNetlinkRouteAttr", Func, 0}, ++ {"ParseRoutingMessage", Func, 0}, ++ {"ParseRoutingSockaddr", Func, 0}, ++ {"ParseSocketControlMessage", Func, 0}, ++ {"ParseUnixCredentials", Func, 0}, ++ {"ParseUnixRights", Func, 0}, ++ {"PathMax", Const, 0}, ++ {"Pathconf", Func, 0}, ++ {"Pause", Func, 0}, ++ {"Pipe", Func, 0}, ++ {"Pipe2", Func, 1}, ++ {"PivotRoot", Func, 0}, ++ {"Pointer", Type, 11}, ++ {"PostQueuedCompletionStatus", Func, 0}, ++ {"Pread", Func, 0}, ++ {"Proc", Type, 0}, ++ {"Proc.Dll", Field, 0}, ++ {"Proc.Name", Field, 0}, ++ {"ProcAttr", Type, 0}, ++ {"ProcAttr.Dir", Field, 0}, ++ {"ProcAttr.Env", Field, 0}, ++ {"ProcAttr.Files", Field, 0}, ++ {"ProcAttr.Sys", Field, 0}, ++ {"Process32First", Func, 4}, ++ {"Process32Next", Func, 4}, ++ {"ProcessEntry32", Type, 4}, ++ {"ProcessEntry32.DefaultHeapID", Field, 4}, ++ {"ProcessEntry32.ExeFile", Field, 4}, ++ {"ProcessEntry32.Flags", Field, 4}, ++ {"ProcessEntry32.ModuleID", Field, 4}, ++ {"ProcessEntry32.ParentProcessID", Field, 4}, ++ {"ProcessEntry32.PriClassBase", Field, 4}, ++ {"ProcessEntry32.ProcessID", Field, 4}, ++ {"ProcessEntry32.Size", Field, 4}, ++ {"ProcessEntry32.Threads", Field, 4}, ++ {"ProcessEntry32.Usage", Field, 4}, ++ {"ProcessInformation", Type, 0}, ++ {"ProcessInformation.Process", Field, 0}, ++ {"ProcessInformation.ProcessId", Field, 0}, ++ {"ProcessInformation.Thread", Field, 0}, ++ {"ProcessInformation.ThreadId", Field, 0}, ++ {"Protoent", Type, 0}, ++ {"Protoent.Aliases", Field, 0}, ++ {"Protoent.Name", Field, 0}, ++ {"Protoent.Proto", Field, 0}, ++ {"PtraceAttach", Func, 0}, ++ {"PtraceCont", Func, 0}, ++ {"PtraceDetach", Func, 0}, ++ {"PtraceGetEventMsg", Func, 0}, ++ {"PtraceGetRegs", Func, 0}, ++ {"PtracePeekData", Func, 0}, ++ {"PtracePeekText", Func, 0}, ++ {"PtracePokeData", Func, 0}, ++ {"PtracePokeText", Func, 0}, ++ {"PtraceRegs", Type, 0}, ++ {"PtraceRegs.Cs", Field, 0}, ++ {"PtraceRegs.Ds", Field, 0}, ++ {"PtraceRegs.Eax", Field, 0}, ++ {"PtraceRegs.Ebp", Field, 0}, ++ {"PtraceRegs.Ebx", Field, 0}, ++ {"PtraceRegs.Ecx", Field, 0}, ++ {"PtraceRegs.Edi", Field, 0}, ++ {"PtraceRegs.Edx", Field, 0}, ++ {"PtraceRegs.Eflags", Field, 0}, ++ {"PtraceRegs.Eip", Field, 0}, ++ {"PtraceRegs.Es", Field, 0}, ++ {"PtraceRegs.Esi", Field, 0}, ++ {"PtraceRegs.Esp", Field, 0}, ++ {"PtraceRegs.Fs", Field, 0}, ++ {"PtraceRegs.Fs_base", Field, 0}, ++ {"PtraceRegs.Gs", Field, 0}, ++ {"PtraceRegs.Gs_base", Field, 0}, ++ {"PtraceRegs.Orig_eax", Field, 0}, ++ {"PtraceRegs.Orig_rax", Field, 0}, ++ {"PtraceRegs.R10", Field, 0}, ++ {"PtraceRegs.R11", Field, 0}, ++ {"PtraceRegs.R12", Field, 0}, ++ {"PtraceRegs.R13", Field, 0}, ++ {"PtraceRegs.R14", Field, 0}, ++ {"PtraceRegs.R15", Field, 0}, ++ {"PtraceRegs.R8", Field, 0}, ++ {"PtraceRegs.R9", Field, 0}, ++ {"PtraceRegs.Rax", Field, 0}, ++ {"PtraceRegs.Rbp", Field, 0}, ++ {"PtraceRegs.Rbx", Field, 0}, ++ {"PtraceRegs.Rcx", Field, 0}, ++ {"PtraceRegs.Rdi", Field, 0}, ++ {"PtraceRegs.Rdx", Field, 0}, ++ {"PtraceRegs.Rip", Field, 0}, ++ {"PtraceRegs.Rsi", Field, 0}, ++ {"PtraceRegs.Rsp", Field, 0}, ++ {"PtraceRegs.Ss", Field, 0}, ++ {"PtraceRegs.Uregs", Field, 0}, ++ {"PtraceRegs.Xcs", Field, 0}, ++ {"PtraceRegs.Xds", Field, 0}, ++ {"PtraceRegs.Xes", Field, 0}, ++ {"PtraceRegs.Xfs", Field, 0}, ++ {"PtraceRegs.Xgs", Field, 0}, ++ {"PtraceRegs.Xss", Field, 0}, ++ {"PtraceSetOptions", Func, 0}, ++ {"PtraceSetRegs", Func, 0}, ++ {"PtraceSingleStep", Func, 0}, ++ {"PtraceSyscall", Func, 1}, ++ {"Pwrite", Func, 0}, ++ {"REG_BINARY", Const, 0}, ++ {"REG_DWORD", Const, 0}, ++ {"REG_DWORD_BIG_ENDIAN", Const, 0}, ++ {"REG_DWORD_LITTLE_ENDIAN", Const, 0}, ++ {"REG_EXPAND_SZ", Const, 0}, ++ {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0}, ++ {"REG_LINK", Const, 0}, ++ {"REG_MULTI_SZ", Const, 0}, ++ {"REG_NONE", Const, 0}, ++ {"REG_QWORD", Const, 0}, ++ {"REG_QWORD_LITTLE_ENDIAN", Const, 0}, ++ {"REG_RESOURCE_LIST", Const, 0}, ++ {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0}, ++ {"REG_SZ", Const, 0}, ++ {"RLIMIT_AS", Const, 0}, ++ {"RLIMIT_CORE", Const, 0}, ++ {"RLIMIT_CPU", Const, 0}, ++ {"RLIMIT_CPU_USAGE_MONITOR", Const, 16}, ++ {"RLIMIT_DATA", Const, 0}, ++ {"RLIMIT_FSIZE", Const, 0}, ++ {"RLIMIT_NOFILE", Const, 0}, ++ {"RLIMIT_STACK", Const, 0}, ++ {"RLIM_INFINITY", Const, 0}, ++ {"RTAX_ADVMSS", Const, 0}, ++ {"RTAX_AUTHOR", Const, 0}, ++ {"RTAX_BRD", Const, 0}, ++ {"RTAX_CWND", Const, 0}, ++ {"RTAX_DST", Const, 0}, ++ {"RTAX_FEATURES", Const, 0}, ++ {"RTAX_FEATURE_ALLFRAG", Const, 0}, ++ {"RTAX_FEATURE_ECN", Const, 0}, ++ {"RTAX_FEATURE_SACK", Const, 0}, ++ {"RTAX_FEATURE_TIMESTAMP", Const, 0}, ++ {"RTAX_GATEWAY", Const, 0}, ++ {"RTAX_GENMASK", Const, 0}, ++ {"RTAX_HOPLIMIT", Const, 0}, ++ {"RTAX_IFA", Const, 0}, ++ {"RTAX_IFP", Const, 0}, ++ {"RTAX_INITCWND", Const, 0}, ++ {"RTAX_INITRWND", Const, 0}, ++ {"RTAX_LABEL", Const, 1}, ++ {"RTAX_LOCK", Const, 0}, ++ {"RTAX_MAX", Const, 0}, ++ {"RTAX_MTU", Const, 0}, ++ {"RTAX_NETMASK", Const, 0}, ++ {"RTAX_REORDERING", Const, 0}, ++ {"RTAX_RTO_MIN", Const, 0}, ++ {"RTAX_RTT", Const, 0}, ++ {"RTAX_RTTVAR", Const, 0}, ++ {"RTAX_SRC", Const, 1}, ++ {"RTAX_SRCMASK", Const, 1}, ++ {"RTAX_SSTHRESH", Const, 0}, ++ {"RTAX_TAG", Const, 1}, ++ {"RTAX_UNSPEC", Const, 0}, ++ {"RTAX_WINDOW", Const, 0}, ++ {"RTA_ALIGNTO", Const, 0}, ++ {"RTA_AUTHOR", Const, 0}, ++ {"RTA_BRD", Const, 0}, ++ {"RTA_CACHEINFO", Const, 0}, ++ {"RTA_DST", Const, 0}, ++ {"RTA_FLOW", Const, 0}, ++ {"RTA_GATEWAY", Const, 0}, ++ {"RTA_GENMASK", Const, 0}, ++ {"RTA_IFA", Const, 0}, ++ {"RTA_IFP", Const, 0}, ++ {"RTA_IIF", Const, 0}, ++ {"RTA_LABEL", Const, 1}, ++ {"RTA_MAX", Const, 0}, ++ {"RTA_METRICS", Const, 0}, ++ {"RTA_MULTIPATH", Const, 0}, ++ {"RTA_NETMASK", Const, 0}, ++ {"RTA_OIF", Const, 0}, ++ {"RTA_PREFSRC", Const, 0}, ++ {"RTA_PRIORITY", Const, 0}, ++ {"RTA_SRC", Const, 0}, ++ {"RTA_SRCMASK", Const, 1}, ++ {"RTA_TABLE", Const, 0}, ++ {"RTA_TAG", Const, 1}, ++ {"RTA_UNSPEC", Const, 0}, ++ {"RTCF_DIRECTSRC", Const, 0}, ++ {"RTCF_DOREDIRECT", Const, 0}, ++ {"RTCF_LOG", Const, 0}, ++ {"RTCF_MASQ", Const, 0}, ++ {"RTCF_NAT", Const, 0}, ++ {"RTCF_VALVE", Const, 0}, ++ {"RTF_ADDRCLASSMASK", Const, 0}, ++ {"RTF_ADDRCONF", Const, 0}, ++ {"RTF_ALLONLINK", Const, 0}, ++ {"RTF_ANNOUNCE", Const, 1}, ++ {"RTF_BLACKHOLE", Const, 0}, ++ {"RTF_BROADCAST", Const, 0}, ++ {"RTF_CACHE", Const, 0}, ++ {"RTF_CLONED", Const, 1}, ++ {"RTF_CLONING", Const, 0}, ++ {"RTF_CONDEMNED", Const, 0}, ++ {"RTF_DEFAULT", Const, 0}, ++ {"RTF_DELCLONE", Const, 0}, ++ {"RTF_DONE", Const, 0}, ++ {"RTF_DYNAMIC", Const, 0}, ++ {"RTF_FLOW", Const, 0}, ++ {"RTF_FMASK", Const, 0}, ++ {"RTF_GATEWAY", Const, 0}, ++ {"RTF_GWFLAG_COMPAT", Const, 3}, ++ {"RTF_HOST", Const, 0}, ++ {"RTF_IFREF", Const, 0}, ++ {"RTF_IFSCOPE", Const, 0}, ++ {"RTF_INTERFACE", Const, 0}, ++ {"RTF_IRTT", Const, 0}, ++ {"RTF_LINKRT", Const, 0}, ++ {"RTF_LLDATA", Const, 0}, ++ {"RTF_LLINFO", Const, 0}, ++ {"RTF_LOCAL", Const, 0}, ++ {"RTF_MASK", Const, 1}, ++ {"RTF_MODIFIED", Const, 0}, ++ {"RTF_MPATH", Const, 1}, ++ {"RTF_MPLS", Const, 1}, ++ {"RTF_MSS", Const, 0}, ++ {"RTF_MTU", Const, 0}, ++ {"RTF_MULTICAST", Const, 0}, ++ {"RTF_NAT", Const, 0}, ++ {"RTF_NOFORWARD", Const, 0}, ++ {"RTF_NONEXTHOP", Const, 0}, ++ {"RTF_NOPMTUDISC", Const, 0}, ++ {"RTF_PERMANENT_ARP", Const, 1}, ++ {"RTF_PINNED", Const, 0}, ++ {"RTF_POLICY", Const, 0}, ++ {"RTF_PRCLONING", Const, 0}, ++ {"RTF_PROTO1", Const, 0}, ++ {"RTF_PROTO2", Const, 0}, ++ {"RTF_PROTO3", Const, 0}, ++ {"RTF_PROXY", Const, 16}, ++ {"RTF_REINSTATE", Const, 0}, ++ {"RTF_REJECT", Const, 0}, ++ {"RTF_RNH_LOCKED", Const, 0}, ++ {"RTF_ROUTER", Const, 16}, ++ {"RTF_SOURCE", Const, 1}, ++ {"RTF_SRC", Const, 1}, ++ {"RTF_STATIC", Const, 0}, ++ {"RTF_STICKY", Const, 0}, ++ {"RTF_THROW", Const, 0}, ++ {"RTF_TUNNEL", Const, 1}, ++ {"RTF_UP", Const, 0}, ++ {"RTF_USETRAILERS", Const, 1}, ++ {"RTF_WASCLONED", Const, 0}, ++ {"RTF_WINDOW", Const, 0}, ++ {"RTF_XRESOLVE", Const, 0}, ++ {"RTM_ADD", Const, 0}, ++ {"RTM_BASE", Const, 0}, ++ {"RTM_CHANGE", Const, 0}, ++ {"RTM_CHGADDR", Const, 1}, ++ {"RTM_DELACTION", Const, 0}, ++ {"RTM_DELADDR", Const, 0}, ++ {"RTM_DELADDRLABEL", Const, 0}, ++ {"RTM_DELETE", Const, 0}, ++ {"RTM_DELLINK", Const, 0}, ++ {"RTM_DELMADDR", Const, 0}, ++ {"RTM_DELNEIGH", Const, 0}, ++ {"RTM_DELQDISC", Const, 0}, ++ {"RTM_DELROUTE", Const, 0}, ++ {"RTM_DELRULE", Const, 0}, ++ {"RTM_DELTCLASS", Const, 0}, ++ {"RTM_DELTFILTER", Const, 0}, ++ {"RTM_DESYNC", Const, 1}, ++ {"RTM_F_CLONED", Const, 0}, ++ {"RTM_F_EQUALIZE", Const, 0}, ++ {"RTM_F_NOTIFY", Const, 0}, ++ {"RTM_F_PREFIX", Const, 0}, ++ {"RTM_GET", Const, 0}, ++ {"RTM_GET2", Const, 0}, ++ {"RTM_GETACTION", Const, 0}, ++ {"RTM_GETADDR", Const, 0}, ++ {"RTM_GETADDRLABEL", Const, 0}, ++ {"RTM_GETANYCAST", Const, 0}, ++ {"RTM_GETDCB", Const, 0}, ++ {"RTM_GETLINK", Const, 0}, ++ {"RTM_GETMULTICAST", Const, 0}, ++ {"RTM_GETNEIGH", Const, 0}, ++ {"RTM_GETNEIGHTBL", Const, 0}, ++ {"RTM_GETQDISC", Const, 0}, ++ {"RTM_GETROUTE", Const, 0}, ++ {"RTM_GETRULE", Const, 0}, ++ {"RTM_GETTCLASS", Const, 0}, ++ {"RTM_GETTFILTER", Const, 0}, ++ {"RTM_IEEE80211", Const, 0}, ++ {"RTM_IFANNOUNCE", Const, 0}, ++ {"RTM_IFINFO", Const, 0}, ++ {"RTM_IFINFO2", Const, 0}, ++ {"RTM_LLINFO_UPD", Const, 1}, ++ {"RTM_LOCK", Const, 0}, ++ {"RTM_LOSING", Const, 0}, ++ {"RTM_MAX", Const, 0}, ++ {"RTM_MAXSIZE", Const, 1}, ++ {"RTM_MISS", Const, 0}, ++ {"RTM_NEWACTION", Const, 0}, ++ {"RTM_NEWADDR", Const, 0}, ++ {"RTM_NEWADDRLABEL", Const, 0}, ++ {"RTM_NEWLINK", Const, 0}, ++ {"RTM_NEWMADDR", Const, 0}, ++ {"RTM_NEWMADDR2", Const, 0}, ++ {"RTM_NEWNDUSEROPT", Const, 0}, ++ {"RTM_NEWNEIGH", Const, 0}, ++ {"RTM_NEWNEIGHTBL", Const, 0}, ++ {"RTM_NEWPREFIX", Const, 0}, ++ {"RTM_NEWQDISC", Const, 0}, ++ {"RTM_NEWROUTE", Const, 0}, ++ {"RTM_NEWRULE", Const, 0}, ++ {"RTM_NEWTCLASS", Const, 0}, ++ {"RTM_NEWTFILTER", Const, 0}, ++ {"RTM_NR_FAMILIES", Const, 0}, ++ {"RTM_NR_MSGTYPES", Const, 0}, ++ {"RTM_OIFINFO", Const, 1}, ++ {"RTM_OLDADD", Const, 0}, ++ {"RTM_OLDDEL", Const, 0}, ++ {"RTM_OOIFINFO", Const, 1}, ++ {"RTM_REDIRECT", Const, 0}, ++ {"RTM_RESOLVE", Const, 0}, ++ {"RTM_RTTUNIT", Const, 0}, ++ {"RTM_SETDCB", Const, 0}, ++ {"RTM_SETGATE", Const, 1}, ++ {"RTM_SETLINK", Const, 0}, ++ {"RTM_SETNEIGHTBL", Const, 0}, ++ {"RTM_VERSION", Const, 0}, ++ {"RTNH_ALIGNTO", Const, 0}, ++ {"RTNH_F_DEAD", Const, 0}, ++ {"RTNH_F_ONLINK", Const, 0}, ++ {"RTNH_F_PERVASIVE", Const, 0}, ++ {"RTNLGRP_IPV4_IFADDR", Const, 1}, ++ {"RTNLGRP_IPV4_MROUTE", Const, 1}, ++ {"RTNLGRP_IPV4_ROUTE", Const, 1}, ++ {"RTNLGRP_IPV4_RULE", Const, 1}, ++ {"RTNLGRP_IPV6_IFADDR", Const, 1}, ++ {"RTNLGRP_IPV6_IFINFO", Const, 1}, ++ {"RTNLGRP_IPV6_MROUTE", Const, 1}, ++ {"RTNLGRP_IPV6_PREFIX", Const, 1}, ++ {"RTNLGRP_IPV6_ROUTE", Const, 1}, ++ {"RTNLGRP_IPV6_RULE", Const, 1}, ++ {"RTNLGRP_LINK", Const, 1}, ++ {"RTNLGRP_ND_USEROPT", Const, 1}, ++ {"RTNLGRP_NEIGH", Const, 1}, ++ {"RTNLGRP_NONE", Const, 1}, ++ {"RTNLGRP_NOTIFY", Const, 1}, ++ {"RTNLGRP_TC", Const, 1}, ++ {"RTN_ANYCAST", Const, 0}, ++ {"RTN_BLACKHOLE", Const, 0}, ++ {"RTN_BROADCAST", Const, 0}, ++ {"RTN_LOCAL", Const, 0}, ++ {"RTN_MAX", Const, 0}, ++ {"RTN_MULTICAST", Const, 0}, ++ {"RTN_NAT", Const, 0}, ++ {"RTN_PROHIBIT", Const, 0}, ++ {"RTN_THROW", Const, 0}, ++ {"RTN_UNICAST", Const, 0}, ++ {"RTN_UNREACHABLE", Const, 0}, ++ {"RTN_UNSPEC", Const, 0}, ++ {"RTN_XRESOLVE", Const, 0}, ++ {"RTPROT_BIRD", Const, 0}, ++ {"RTPROT_BOOT", Const, 0}, ++ {"RTPROT_DHCP", Const, 0}, ++ {"RTPROT_DNROUTED", Const, 0}, ++ {"RTPROT_GATED", Const, 0}, ++ {"RTPROT_KERNEL", Const, 0}, ++ {"RTPROT_MRT", Const, 0}, ++ {"RTPROT_NTK", Const, 0}, ++ {"RTPROT_RA", Const, 0}, ++ {"RTPROT_REDIRECT", Const, 0}, ++ {"RTPROT_STATIC", Const, 0}, ++ {"RTPROT_UNSPEC", Const, 0}, ++ {"RTPROT_XORP", Const, 0}, ++ {"RTPROT_ZEBRA", Const, 0}, ++ {"RTV_EXPIRE", Const, 0}, ++ {"RTV_HOPCOUNT", Const, 0}, ++ {"RTV_MTU", Const, 0}, ++ {"RTV_RPIPE", Const, 0}, ++ {"RTV_RTT", Const, 0}, ++ {"RTV_RTTVAR", Const, 0}, ++ {"RTV_SPIPE", Const, 0}, ++ {"RTV_SSTHRESH", Const, 0}, ++ {"RTV_WEIGHT", Const, 0}, ++ {"RT_CACHING_CONTEXT", Const, 1}, ++ {"RT_CLASS_DEFAULT", Const, 0}, ++ {"RT_CLASS_LOCAL", Const, 0}, ++ {"RT_CLASS_MAIN", Const, 0}, ++ {"RT_CLASS_MAX", Const, 0}, ++ {"RT_CLASS_UNSPEC", Const, 0}, ++ {"RT_DEFAULT_FIB", Const, 1}, ++ {"RT_NORTREF", Const, 1}, ++ {"RT_SCOPE_HOST", Const, 0}, ++ {"RT_SCOPE_LINK", Const, 0}, ++ {"RT_SCOPE_NOWHERE", Const, 0}, ++ {"RT_SCOPE_SITE", Const, 0}, ++ {"RT_SCOPE_UNIVERSE", Const, 0}, ++ {"RT_TABLEID_MAX", Const, 1}, ++ {"RT_TABLE_COMPAT", Const, 0}, ++ {"RT_TABLE_DEFAULT", Const, 0}, ++ {"RT_TABLE_LOCAL", Const, 0}, ++ {"RT_TABLE_MAIN", Const, 0}, ++ {"RT_TABLE_MAX", Const, 0}, ++ {"RT_TABLE_UNSPEC", Const, 0}, ++ {"RUSAGE_CHILDREN", Const, 0}, ++ {"RUSAGE_SELF", Const, 0}, ++ {"RUSAGE_THREAD", Const, 0}, ++ {"Radvisory_t", Type, 0}, ++ {"Radvisory_t.Count", Field, 0}, ++ {"Radvisory_t.Offset", Field, 0}, ++ {"Radvisory_t.Pad_cgo_0", Field, 0}, ++ {"RawConn", Type, 9}, ++ {"RawSockaddr", Type, 0}, ++ {"RawSockaddr.Data", Field, 0}, ++ {"RawSockaddr.Family", Field, 0}, ++ {"RawSockaddr.Len", Field, 0}, ++ {"RawSockaddrAny", Type, 0}, ++ {"RawSockaddrAny.Addr", Field, 0}, ++ {"RawSockaddrAny.Pad", Field, 0}, ++ {"RawSockaddrDatalink", Type, 0}, ++ {"RawSockaddrDatalink.Alen", Field, 0}, ++ {"RawSockaddrDatalink.Data", Field, 0}, ++ {"RawSockaddrDatalink.Family", Field, 0}, ++ {"RawSockaddrDatalink.Index", Field, 0}, ++ {"RawSockaddrDatalink.Len", Field, 0}, ++ {"RawSockaddrDatalink.Nlen", Field, 0}, ++ {"RawSockaddrDatalink.Pad_cgo_0", Field, 2}, ++ {"RawSockaddrDatalink.Slen", Field, 0}, ++ {"RawSockaddrDatalink.Type", Field, 0}, ++ {"RawSockaddrInet4", Type, 0}, ++ {"RawSockaddrInet4.Addr", Field, 0}, ++ {"RawSockaddrInet4.Family", Field, 0}, ++ {"RawSockaddrInet4.Len", Field, 0}, ++ {"RawSockaddrInet4.Port", Field, 0}, ++ {"RawSockaddrInet4.Zero", Field, 0}, ++ {"RawSockaddrInet6", Type, 0}, ++ {"RawSockaddrInet6.Addr", Field, 0}, ++ {"RawSockaddrInet6.Family", Field, 0}, ++ {"RawSockaddrInet6.Flowinfo", Field, 0}, ++ {"RawSockaddrInet6.Len", Field, 0}, ++ {"RawSockaddrInet6.Port", Field, 0}, ++ {"RawSockaddrInet6.Scope_id", Field, 0}, ++ {"RawSockaddrLinklayer", Type, 0}, ++ {"RawSockaddrLinklayer.Addr", Field, 0}, ++ {"RawSockaddrLinklayer.Family", Field, 0}, ++ {"RawSockaddrLinklayer.Halen", Field, 0}, ++ {"RawSockaddrLinklayer.Hatype", Field, 0}, ++ {"RawSockaddrLinklayer.Ifindex", Field, 0}, ++ {"RawSockaddrLinklayer.Pkttype", Field, 0}, ++ {"RawSockaddrLinklayer.Protocol", Field, 0}, ++ {"RawSockaddrNetlink", Type, 0}, ++ {"RawSockaddrNetlink.Family", Field, 0}, ++ {"RawSockaddrNetlink.Groups", Field, 0}, ++ {"RawSockaddrNetlink.Pad", Field, 0}, ++ {"RawSockaddrNetlink.Pid", Field, 0}, ++ {"RawSockaddrUnix", Type, 0}, ++ {"RawSockaddrUnix.Family", Field, 0}, ++ {"RawSockaddrUnix.Len", Field, 0}, ++ {"RawSockaddrUnix.Pad_cgo_0", Field, 2}, ++ {"RawSockaddrUnix.Path", Field, 0}, ++ {"RawSyscall", Func, 0}, ++ {"RawSyscall6", Func, 0}, ++ {"Read", Func, 0}, ++ {"ReadConsole", Func, 1}, ++ {"ReadDirectoryChanges", Func, 0}, ++ {"ReadDirent", Func, 0}, ++ {"ReadFile", Func, 0}, ++ {"Readlink", Func, 0}, ++ {"Reboot", Func, 0}, ++ {"Recvfrom", Func, 0}, ++ {"Recvmsg", Func, 0}, ++ {"RegCloseKey", Func, 0}, ++ {"RegEnumKeyEx", Func, 0}, ++ {"RegOpenKeyEx", Func, 0}, ++ {"RegQueryInfoKey", Func, 0}, ++ {"RegQueryValueEx", Func, 0}, ++ {"RemoveDirectory", Func, 0}, ++ {"Removexattr", Func, 1}, ++ {"Rename", Func, 0}, ++ {"Renameat", Func, 0}, ++ {"Revoke", Func, 0}, ++ {"Rlimit", Type, 0}, ++ {"Rlimit.Cur", Field, 0}, ++ {"Rlimit.Max", Field, 0}, ++ {"Rmdir", Func, 0}, ++ {"RouteMessage", Type, 0}, ++ {"RouteMessage.Data", Field, 0}, ++ {"RouteMessage.Header", Field, 0}, ++ {"RouteRIB", Func, 0}, ++ {"RoutingMessage", Type, 0}, ++ {"RtAttr", Type, 0}, ++ {"RtAttr.Len", Field, 0}, ++ {"RtAttr.Type", Field, 0}, ++ {"RtGenmsg", Type, 0}, ++ {"RtGenmsg.Family", Field, 0}, ++ {"RtMetrics", Type, 0}, ++ {"RtMetrics.Expire", Field, 0}, ++ {"RtMetrics.Filler", Field, 0}, ++ {"RtMetrics.Hopcount", Field, 0}, ++ {"RtMetrics.Locks", Field, 0}, ++ {"RtMetrics.Mtu", Field, 0}, ++ {"RtMetrics.Pad", Field, 3}, ++ {"RtMetrics.Pksent", Field, 0}, ++ {"RtMetrics.Recvpipe", Field, 0}, ++ {"RtMetrics.Refcnt", Field, 2}, ++ {"RtMetrics.Rtt", Field, 0}, ++ {"RtMetrics.Rttvar", Field, 0}, ++ {"RtMetrics.Sendpipe", Field, 0}, ++ {"RtMetrics.Ssthresh", Field, 0}, ++ {"RtMetrics.Weight", Field, 0}, ++ {"RtMsg", Type, 0}, ++ {"RtMsg.Dst_len", Field, 0}, ++ {"RtMsg.Family", Field, 0}, ++ {"RtMsg.Flags", Field, 0}, ++ {"RtMsg.Protocol", Field, 0}, ++ {"RtMsg.Scope", Field, 0}, ++ {"RtMsg.Src_len", Field, 0}, ++ {"RtMsg.Table", Field, 0}, ++ {"RtMsg.Tos", Field, 0}, ++ {"RtMsg.Type", Field, 0}, ++ {"RtMsghdr", Type, 0}, ++ {"RtMsghdr.Addrs", Field, 0}, ++ {"RtMsghdr.Errno", Field, 0}, ++ {"RtMsghdr.Flags", Field, 0}, ++ {"RtMsghdr.Fmask", Field, 0}, ++ {"RtMsghdr.Hdrlen", Field, 2}, ++ {"RtMsghdr.Index", Field, 0}, ++ {"RtMsghdr.Inits", Field, 0}, ++ {"RtMsghdr.Mpls", Field, 2}, ++ {"RtMsghdr.Msglen", Field, 0}, ++ {"RtMsghdr.Pad_cgo_0", Field, 0}, ++ {"RtMsghdr.Pad_cgo_1", Field, 2}, ++ {"RtMsghdr.Pid", Field, 0}, ++ {"RtMsghdr.Priority", Field, 2}, ++ {"RtMsghdr.Rmx", Field, 0}, ++ {"RtMsghdr.Seq", Field, 0}, ++ {"RtMsghdr.Tableid", Field, 2}, ++ {"RtMsghdr.Type", Field, 0}, ++ {"RtMsghdr.Use", Field, 0}, ++ {"RtMsghdr.Version", Field, 0}, ++ {"RtNexthop", Type, 0}, ++ {"RtNexthop.Flags", Field, 0}, ++ {"RtNexthop.Hops", Field, 0}, ++ {"RtNexthop.Ifindex", Field, 0}, ++ {"RtNexthop.Len", Field, 0}, ++ {"Rusage", Type, 0}, ++ {"Rusage.CreationTime", Field, 0}, ++ {"Rusage.ExitTime", Field, 0}, ++ {"Rusage.Idrss", Field, 0}, ++ {"Rusage.Inblock", Field, 0}, ++ {"Rusage.Isrss", Field, 0}, ++ {"Rusage.Ixrss", Field, 0}, ++ {"Rusage.KernelTime", Field, 0}, ++ {"Rusage.Majflt", Field, 0}, ++ {"Rusage.Maxrss", Field, 0}, ++ {"Rusage.Minflt", Field, 0}, ++ {"Rusage.Msgrcv", Field, 0}, ++ {"Rusage.Msgsnd", Field, 0}, ++ {"Rusage.Nivcsw", Field, 0}, ++ {"Rusage.Nsignals", Field, 0}, ++ {"Rusage.Nswap", Field, 0}, ++ {"Rusage.Nvcsw", Field, 0}, ++ {"Rusage.Oublock", Field, 0}, ++ {"Rusage.Stime", Field, 0}, ++ {"Rusage.UserTime", Field, 0}, ++ {"Rusage.Utime", Field, 0}, ++ {"SCM_BINTIME", Const, 0}, ++ {"SCM_CREDENTIALS", Const, 0}, ++ {"SCM_CREDS", Const, 0}, ++ {"SCM_RIGHTS", Const, 0}, ++ {"SCM_TIMESTAMP", Const, 0}, ++ {"SCM_TIMESTAMPING", Const, 0}, ++ {"SCM_TIMESTAMPNS", Const, 0}, ++ {"SCM_TIMESTAMP_MONOTONIC", Const, 0}, ++ {"SHUT_RD", Const, 0}, ++ {"SHUT_RDWR", Const, 0}, ++ {"SHUT_WR", Const, 0}, ++ {"SID", Type, 0}, ++ {"SIDAndAttributes", Type, 0}, ++ {"SIDAndAttributes.Attributes", Field, 0}, ++ {"SIDAndAttributes.Sid", Field, 0}, ++ {"SIGABRT", Const, 0}, ++ {"SIGALRM", Const, 0}, ++ {"SIGBUS", Const, 0}, ++ {"SIGCHLD", Const, 0}, ++ {"SIGCLD", Const, 0}, ++ {"SIGCONT", Const, 0}, ++ {"SIGEMT", Const, 0}, ++ {"SIGFPE", Const, 0}, ++ {"SIGHUP", Const, 0}, ++ {"SIGILL", Const, 0}, ++ {"SIGINFO", Const, 0}, ++ {"SIGINT", Const, 0}, ++ {"SIGIO", Const, 0}, ++ {"SIGIOT", Const, 0}, ++ {"SIGKILL", Const, 0}, ++ {"SIGLIBRT", Const, 1}, ++ {"SIGLWP", Const, 0}, ++ {"SIGPIPE", Const, 0}, ++ {"SIGPOLL", Const, 0}, ++ {"SIGPROF", Const, 0}, ++ {"SIGPWR", Const, 0}, ++ {"SIGQUIT", Const, 0}, ++ {"SIGSEGV", Const, 0}, ++ {"SIGSTKFLT", Const, 0}, ++ {"SIGSTOP", Const, 0}, ++ {"SIGSYS", Const, 0}, ++ {"SIGTERM", Const, 0}, ++ {"SIGTHR", Const, 0}, ++ {"SIGTRAP", Const, 0}, ++ {"SIGTSTP", Const, 0}, ++ {"SIGTTIN", Const, 0}, ++ {"SIGTTOU", Const, 0}, ++ {"SIGUNUSED", Const, 0}, ++ {"SIGURG", Const, 0}, ++ {"SIGUSR1", Const, 0}, ++ {"SIGUSR2", Const, 0}, ++ {"SIGVTALRM", Const, 0}, ++ {"SIGWINCH", Const, 0}, ++ {"SIGXCPU", Const, 0}, ++ {"SIGXFSZ", Const, 0}, ++ {"SIOCADDDLCI", Const, 0}, ++ {"SIOCADDMULTI", Const, 0}, ++ {"SIOCADDRT", Const, 0}, ++ {"SIOCAIFADDR", Const, 0}, ++ {"SIOCAIFGROUP", Const, 0}, ++ {"SIOCALIFADDR", Const, 0}, ++ {"SIOCARPIPLL", Const, 0}, ++ {"SIOCATMARK", Const, 0}, ++ {"SIOCAUTOADDR", Const, 0}, ++ {"SIOCAUTONETMASK", Const, 0}, ++ {"SIOCBRDGADD", Const, 1}, ++ {"SIOCBRDGADDS", Const, 1}, ++ {"SIOCBRDGARL", Const, 1}, ++ {"SIOCBRDGDADDR", Const, 1}, ++ {"SIOCBRDGDEL", Const, 1}, ++ {"SIOCBRDGDELS", Const, 1}, ++ {"SIOCBRDGFLUSH", Const, 1}, ++ {"SIOCBRDGFRL", Const, 1}, ++ {"SIOCBRDGGCACHE", Const, 1}, ++ {"SIOCBRDGGFD", Const, 1}, ++ {"SIOCBRDGGHT", Const, 1}, ++ {"SIOCBRDGGIFFLGS", Const, 1}, ++ {"SIOCBRDGGMA", Const, 1}, ++ {"SIOCBRDGGPARAM", Const, 1}, ++ {"SIOCBRDGGPRI", Const, 1}, ++ {"SIOCBRDGGRL", Const, 1}, ++ {"SIOCBRDGGSIFS", Const, 1}, ++ {"SIOCBRDGGTO", Const, 1}, ++ {"SIOCBRDGIFS", Const, 1}, ++ {"SIOCBRDGRTS", Const, 1}, ++ {"SIOCBRDGSADDR", Const, 1}, ++ {"SIOCBRDGSCACHE", Const, 1}, ++ {"SIOCBRDGSFD", Const, 1}, ++ {"SIOCBRDGSHT", Const, 1}, ++ {"SIOCBRDGSIFCOST", Const, 1}, ++ {"SIOCBRDGSIFFLGS", Const, 1}, ++ {"SIOCBRDGSIFPRIO", Const, 1}, ++ {"SIOCBRDGSMA", Const, 1}, ++ {"SIOCBRDGSPRI", Const, 1}, ++ {"SIOCBRDGSPROTO", Const, 1}, ++ {"SIOCBRDGSTO", Const, 1}, ++ {"SIOCBRDGSTXHC", Const, 1}, ++ {"SIOCDARP", Const, 0}, ++ {"SIOCDELDLCI", Const, 0}, ++ {"SIOCDELMULTI", Const, 0}, ++ {"SIOCDELRT", Const, 0}, ++ {"SIOCDEVPRIVATE", Const, 0}, ++ {"SIOCDIFADDR", Const, 0}, ++ {"SIOCDIFGROUP", Const, 0}, ++ {"SIOCDIFPHYADDR", Const, 0}, ++ {"SIOCDLIFADDR", Const, 0}, ++ {"SIOCDRARP", Const, 0}, ++ {"SIOCGARP", Const, 0}, ++ {"SIOCGDRVSPEC", Const, 0}, ++ {"SIOCGETKALIVE", Const, 1}, ++ {"SIOCGETLABEL", Const, 1}, ++ {"SIOCGETPFLOW", Const, 1}, ++ {"SIOCGETPFSYNC", Const, 1}, ++ {"SIOCGETSGCNT", Const, 0}, ++ {"SIOCGETVIFCNT", Const, 0}, ++ {"SIOCGETVLAN", Const, 0}, ++ {"SIOCGHIWAT", Const, 0}, ++ {"SIOCGIFADDR", Const, 0}, ++ {"SIOCGIFADDRPREF", Const, 1}, ++ {"SIOCGIFALIAS", Const, 1}, ++ {"SIOCGIFALTMTU", Const, 0}, ++ {"SIOCGIFASYNCMAP", Const, 0}, ++ {"SIOCGIFBOND", Const, 0}, ++ {"SIOCGIFBR", Const, 0}, ++ {"SIOCGIFBRDADDR", Const, 0}, ++ {"SIOCGIFCAP", Const, 0}, ++ {"SIOCGIFCONF", Const, 0}, ++ {"SIOCGIFCOUNT", Const, 0}, ++ {"SIOCGIFDATA", Const, 1}, ++ {"SIOCGIFDESCR", Const, 0}, ++ {"SIOCGIFDEVMTU", Const, 0}, ++ {"SIOCGIFDLT", Const, 1}, ++ {"SIOCGIFDSTADDR", Const, 0}, ++ {"SIOCGIFENCAP", Const, 0}, ++ {"SIOCGIFFIB", Const, 1}, ++ {"SIOCGIFFLAGS", Const, 0}, ++ {"SIOCGIFGATTR", Const, 1}, ++ {"SIOCGIFGENERIC", Const, 0}, ++ {"SIOCGIFGMEMB", Const, 0}, ++ {"SIOCGIFGROUP", Const, 0}, ++ {"SIOCGIFHARDMTU", Const, 3}, ++ {"SIOCGIFHWADDR", Const, 0}, ++ {"SIOCGIFINDEX", Const, 0}, ++ {"SIOCGIFKPI", Const, 0}, ++ {"SIOCGIFMAC", Const, 0}, ++ {"SIOCGIFMAP", Const, 0}, ++ {"SIOCGIFMEDIA", Const, 0}, ++ {"SIOCGIFMEM", Const, 0}, ++ {"SIOCGIFMETRIC", Const, 0}, ++ {"SIOCGIFMTU", Const, 0}, ++ {"SIOCGIFNAME", Const, 0}, ++ {"SIOCGIFNETMASK", Const, 0}, ++ {"SIOCGIFPDSTADDR", Const, 0}, ++ {"SIOCGIFPFLAGS", Const, 0}, ++ {"SIOCGIFPHYS", Const, 0}, ++ {"SIOCGIFPRIORITY", Const, 1}, ++ {"SIOCGIFPSRCADDR", Const, 0}, ++ {"SIOCGIFRDOMAIN", Const, 1}, ++ {"SIOCGIFRTLABEL", Const, 1}, ++ {"SIOCGIFSLAVE", Const, 0}, ++ {"SIOCGIFSTATUS", Const, 0}, ++ {"SIOCGIFTIMESLOT", Const, 1}, ++ {"SIOCGIFTXQLEN", Const, 0}, ++ {"SIOCGIFVLAN", Const, 0}, ++ {"SIOCGIFWAKEFLAGS", Const, 0}, ++ {"SIOCGIFXFLAGS", Const, 1}, ++ {"SIOCGLIFADDR", Const, 0}, ++ {"SIOCGLIFPHYADDR", Const, 0}, ++ {"SIOCGLIFPHYRTABLE", Const, 1}, ++ {"SIOCGLIFPHYTTL", Const, 3}, ++ {"SIOCGLINKSTR", Const, 1}, ++ {"SIOCGLOWAT", Const, 0}, ++ {"SIOCGPGRP", Const, 0}, ++ {"SIOCGPRIVATE_0", Const, 0}, ++ {"SIOCGPRIVATE_1", Const, 0}, ++ {"SIOCGRARP", Const, 0}, ++ {"SIOCGSPPPPARAMS", Const, 3}, ++ {"SIOCGSTAMP", Const, 0}, ++ {"SIOCGSTAMPNS", Const, 0}, ++ {"SIOCGVH", Const, 1}, ++ {"SIOCGVNETID", Const, 3}, ++ {"SIOCIFCREATE", Const, 0}, ++ {"SIOCIFCREATE2", Const, 0}, ++ {"SIOCIFDESTROY", Const, 0}, ++ {"SIOCIFGCLONERS", Const, 0}, ++ {"SIOCINITIFADDR", Const, 1}, ++ {"SIOCPROTOPRIVATE", Const, 0}, ++ {"SIOCRSLVMULTI", Const, 0}, ++ {"SIOCRTMSG", Const, 0}, ++ {"SIOCSARP", Const, 0}, ++ {"SIOCSDRVSPEC", Const, 0}, ++ {"SIOCSETKALIVE", Const, 1}, ++ {"SIOCSETLABEL", Const, 1}, ++ {"SIOCSETPFLOW", Const, 1}, ++ {"SIOCSETPFSYNC", Const, 1}, ++ {"SIOCSETVLAN", Const, 0}, ++ {"SIOCSHIWAT", Const, 0}, ++ {"SIOCSIFADDR", Const, 0}, ++ {"SIOCSIFADDRPREF", Const, 1}, ++ {"SIOCSIFALTMTU", Const, 0}, ++ {"SIOCSIFASYNCMAP", Const, 0}, ++ {"SIOCSIFBOND", Const, 0}, ++ {"SIOCSIFBR", Const, 0}, ++ {"SIOCSIFBRDADDR", Const, 0}, ++ {"SIOCSIFCAP", Const, 0}, ++ {"SIOCSIFDESCR", Const, 0}, ++ {"SIOCSIFDSTADDR", Const, 0}, ++ {"SIOCSIFENCAP", Const, 0}, ++ {"SIOCSIFFIB", Const, 1}, ++ {"SIOCSIFFLAGS", Const, 0}, ++ {"SIOCSIFGATTR", Const, 1}, ++ {"SIOCSIFGENERIC", Const, 0}, ++ {"SIOCSIFHWADDR", Const, 0}, ++ {"SIOCSIFHWBROADCAST", Const, 0}, ++ {"SIOCSIFKPI", Const, 0}, ++ {"SIOCSIFLINK", Const, 0}, ++ {"SIOCSIFLLADDR", Const, 0}, ++ {"SIOCSIFMAC", Const, 0}, ++ {"SIOCSIFMAP", Const, 0}, ++ {"SIOCSIFMEDIA", Const, 0}, ++ {"SIOCSIFMEM", Const, 0}, ++ {"SIOCSIFMETRIC", Const, 0}, ++ {"SIOCSIFMTU", Const, 0}, ++ {"SIOCSIFNAME", Const, 0}, ++ {"SIOCSIFNETMASK", Const, 0}, ++ {"SIOCSIFPFLAGS", Const, 0}, ++ {"SIOCSIFPHYADDR", Const, 0}, ++ {"SIOCSIFPHYS", Const, 0}, ++ {"SIOCSIFPRIORITY", Const, 1}, ++ {"SIOCSIFRDOMAIN", Const, 1}, ++ {"SIOCSIFRTLABEL", Const, 1}, ++ {"SIOCSIFRVNET", Const, 0}, ++ {"SIOCSIFSLAVE", Const, 0}, ++ {"SIOCSIFTIMESLOT", Const, 1}, ++ {"SIOCSIFTXQLEN", Const, 0}, ++ {"SIOCSIFVLAN", Const, 0}, ++ {"SIOCSIFVNET", Const, 0}, ++ {"SIOCSIFXFLAGS", Const, 1}, ++ {"SIOCSLIFPHYADDR", Const, 0}, ++ {"SIOCSLIFPHYRTABLE", Const, 1}, ++ {"SIOCSLIFPHYTTL", Const, 3}, ++ {"SIOCSLINKSTR", Const, 1}, ++ {"SIOCSLOWAT", Const, 0}, ++ {"SIOCSPGRP", Const, 0}, ++ {"SIOCSRARP", Const, 0}, ++ {"SIOCSSPPPPARAMS", Const, 3}, ++ {"SIOCSVH", Const, 1}, ++ {"SIOCSVNETID", Const, 3}, ++ {"SIOCZIFDATA", Const, 1}, ++ {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1}, ++ {"SIO_GET_INTERFACE_LIST", Const, 0}, ++ {"SIO_KEEPALIVE_VALS", Const, 3}, ++ {"SIO_UDP_CONNRESET", Const, 4}, ++ {"SOCK_CLOEXEC", Const, 0}, ++ {"SOCK_DCCP", Const, 0}, ++ {"SOCK_DGRAM", Const, 0}, ++ {"SOCK_FLAGS_MASK", Const, 1}, ++ {"SOCK_MAXADDRLEN", Const, 0}, ++ {"SOCK_NONBLOCK", Const, 0}, ++ {"SOCK_NOSIGPIPE", Const, 1}, ++ {"SOCK_PACKET", Const, 0}, ++ {"SOCK_RAW", Const, 0}, ++ {"SOCK_RDM", Const, 0}, ++ {"SOCK_SEQPACKET", Const, 0}, ++ {"SOCK_STREAM", Const, 0}, ++ {"SOL_AAL", Const, 0}, ++ {"SOL_ATM", Const, 0}, ++ {"SOL_DECNET", Const, 0}, ++ {"SOL_ICMPV6", Const, 0}, ++ {"SOL_IP", Const, 0}, ++ {"SOL_IPV6", Const, 0}, ++ {"SOL_IRDA", Const, 0}, ++ {"SOL_PACKET", Const, 0}, ++ {"SOL_RAW", Const, 0}, ++ {"SOL_SOCKET", Const, 0}, ++ {"SOL_TCP", Const, 0}, ++ {"SOL_X25", Const, 0}, ++ {"SOMAXCONN", Const, 0}, ++ {"SO_ACCEPTCONN", Const, 0}, ++ {"SO_ACCEPTFILTER", Const, 0}, ++ {"SO_ATTACH_FILTER", Const, 0}, ++ {"SO_BINDANY", Const, 1}, ++ {"SO_BINDTODEVICE", Const, 0}, ++ {"SO_BINTIME", Const, 0}, ++ {"SO_BROADCAST", Const, 0}, ++ {"SO_BSDCOMPAT", Const, 0}, ++ {"SO_DEBUG", Const, 0}, ++ {"SO_DETACH_FILTER", Const, 0}, ++ {"SO_DOMAIN", Const, 0}, ++ {"SO_DONTROUTE", Const, 0}, ++ {"SO_DONTTRUNC", Const, 0}, ++ {"SO_ERROR", Const, 0}, ++ {"SO_KEEPALIVE", Const, 0}, ++ {"SO_LABEL", Const, 0}, ++ {"SO_LINGER", Const, 0}, ++ {"SO_LINGER_SEC", Const, 0}, ++ {"SO_LISTENINCQLEN", Const, 0}, ++ {"SO_LISTENQLEN", Const, 0}, ++ {"SO_LISTENQLIMIT", Const, 0}, ++ {"SO_MARK", Const, 0}, ++ {"SO_NETPROC", Const, 1}, ++ {"SO_NKE", Const, 0}, ++ {"SO_NOADDRERR", Const, 0}, ++ {"SO_NOHEADER", Const, 1}, ++ {"SO_NOSIGPIPE", Const, 0}, ++ {"SO_NOTIFYCONFLICT", Const, 0}, ++ {"SO_NO_CHECK", Const, 0}, ++ {"SO_NO_DDP", Const, 0}, ++ {"SO_NO_OFFLOAD", Const, 0}, ++ {"SO_NP_EXTENSIONS", Const, 0}, ++ {"SO_NREAD", Const, 0}, ++ {"SO_NUMRCVPKT", Const, 16}, ++ {"SO_NWRITE", Const, 0}, ++ {"SO_OOBINLINE", Const, 0}, ++ {"SO_OVERFLOWED", Const, 1}, ++ {"SO_PASSCRED", Const, 0}, ++ {"SO_PASSSEC", Const, 0}, ++ {"SO_PEERCRED", Const, 0}, ++ {"SO_PEERLABEL", Const, 0}, ++ {"SO_PEERNAME", Const, 0}, ++ {"SO_PEERSEC", Const, 0}, ++ {"SO_PRIORITY", Const, 0}, ++ {"SO_PROTOCOL", Const, 0}, ++ {"SO_PROTOTYPE", Const, 1}, ++ {"SO_RANDOMPORT", Const, 0}, ++ {"SO_RCVBUF", Const, 0}, ++ {"SO_RCVBUFFORCE", Const, 0}, ++ {"SO_RCVLOWAT", Const, 0}, ++ {"SO_RCVTIMEO", Const, 0}, ++ {"SO_RESTRICTIONS", Const, 0}, ++ {"SO_RESTRICT_DENYIN", Const, 0}, ++ {"SO_RESTRICT_DENYOUT", Const, 0}, ++ {"SO_RESTRICT_DENYSET", Const, 0}, ++ {"SO_REUSEADDR", Const, 0}, ++ {"SO_REUSEPORT", Const, 0}, ++ {"SO_REUSESHAREUID", Const, 0}, ++ {"SO_RTABLE", Const, 1}, ++ {"SO_RXQ_OVFL", Const, 0}, ++ {"SO_SECURITY_AUTHENTICATION", Const, 0}, ++ {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0}, ++ {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0}, ++ {"SO_SETFIB", Const, 0}, ++ {"SO_SNDBUF", Const, 0}, ++ {"SO_SNDBUFFORCE", Const, 0}, ++ {"SO_SNDLOWAT", Const, 0}, ++ {"SO_SNDTIMEO", Const, 0}, ++ {"SO_SPLICE", Const, 1}, ++ {"SO_TIMESTAMP", Const, 0}, ++ {"SO_TIMESTAMPING", Const, 0}, ++ {"SO_TIMESTAMPNS", Const, 0}, ++ {"SO_TIMESTAMP_MONOTONIC", Const, 0}, ++ {"SO_TYPE", Const, 0}, ++ {"SO_UPCALLCLOSEWAIT", Const, 0}, ++ {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0}, ++ {"SO_UPDATE_CONNECT_CONTEXT", Const, 1}, ++ {"SO_USELOOPBACK", Const, 0}, ++ {"SO_USER_COOKIE", Const, 1}, ++ {"SO_VENDOR", Const, 3}, ++ {"SO_WANTMORE", Const, 0}, ++ {"SO_WANTOOBFLAG", Const, 0}, ++ {"SSLExtraCertChainPolicyPara", Type, 0}, ++ {"SSLExtraCertChainPolicyPara.AuthType", Field, 0}, ++ {"SSLExtraCertChainPolicyPara.Checks", Field, 0}, ++ {"SSLExtraCertChainPolicyPara.ServerName", Field, 0}, ++ {"SSLExtraCertChainPolicyPara.Size", Field, 0}, ++ {"STANDARD_RIGHTS_ALL", Const, 0}, ++ {"STANDARD_RIGHTS_EXECUTE", Const, 0}, ++ {"STANDARD_RIGHTS_READ", Const, 0}, ++ {"STANDARD_RIGHTS_REQUIRED", Const, 0}, ++ {"STANDARD_RIGHTS_WRITE", Const, 0}, ++ {"STARTF_USESHOWWINDOW", Const, 0}, ++ {"STARTF_USESTDHANDLES", Const, 0}, ++ {"STD_ERROR_HANDLE", Const, 0}, ++ {"STD_INPUT_HANDLE", Const, 0}, ++ {"STD_OUTPUT_HANDLE", Const, 0}, ++ {"SUBLANG_ENGLISH_US", Const, 0}, ++ {"SW_FORCEMINIMIZE", Const, 0}, ++ {"SW_HIDE", Const, 0}, ++ {"SW_MAXIMIZE", Const, 0}, ++ {"SW_MINIMIZE", Const, 0}, ++ {"SW_NORMAL", Const, 0}, ++ {"SW_RESTORE", Const, 0}, ++ {"SW_SHOW", Const, 0}, ++ {"SW_SHOWDEFAULT", Const, 0}, ++ {"SW_SHOWMAXIMIZED", Const, 0}, ++ {"SW_SHOWMINIMIZED", Const, 0}, ++ {"SW_SHOWMINNOACTIVE", Const, 0}, ++ {"SW_SHOWNA", Const, 0}, ++ {"SW_SHOWNOACTIVATE", Const, 0}, ++ {"SW_SHOWNORMAL", Const, 0}, ++ {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4}, ++ {"SYNCHRONIZE", Const, 0}, ++ {"SYSCTL_VERSION", Const, 1}, ++ {"SYSCTL_VERS_0", Const, 1}, ++ {"SYSCTL_VERS_1", Const, 1}, ++ {"SYSCTL_VERS_MASK", Const, 1}, ++ {"SYS_ABORT2", Const, 0}, ++ {"SYS_ACCEPT", Const, 0}, ++ {"SYS_ACCEPT4", Const, 0}, ++ {"SYS_ACCEPT_NOCANCEL", Const, 0}, ++ {"SYS_ACCESS", Const, 0}, ++ {"SYS_ACCESS_EXTENDED", Const, 0}, ++ {"SYS_ACCT", Const, 0}, ++ {"SYS_ADD_KEY", Const, 0}, ++ {"SYS_ADD_PROFIL", Const, 0}, ++ {"SYS_ADJFREQ", Const, 1}, ++ {"SYS_ADJTIME", Const, 0}, ++ {"SYS_ADJTIMEX", Const, 0}, ++ {"SYS_AFS_SYSCALL", Const, 0}, ++ {"SYS_AIO_CANCEL", Const, 0}, ++ {"SYS_AIO_ERROR", Const, 0}, ++ {"SYS_AIO_FSYNC", Const, 0}, ++ {"SYS_AIO_MLOCK", Const, 14}, ++ {"SYS_AIO_READ", Const, 0}, ++ {"SYS_AIO_RETURN", Const, 0}, ++ {"SYS_AIO_SUSPEND", Const, 0}, ++ {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0}, ++ {"SYS_AIO_WAITCOMPLETE", Const, 14}, ++ {"SYS_AIO_WRITE", Const, 0}, ++ {"SYS_ALARM", Const, 0}, ++ {"SYS_ARCH_PRCTL", Const, 0}, ++ {"SYS_ARM_FADVISE64_64", Const, 0}, ++ {"SYS_ARM_SYNC_FILE_RANGE", Const, 0}, ++ {"SYS_ATGETMSG", Const, 0}, ++ {"SYS_ATPGETREQ", Const, 0}, ++ {"SYS_ATPGETRSP", Const, 0}, ++ {"SYS_ATPSNDREQ", Const, 0}, ++ {"SYS_ATPSNDRSP", Const, 0}, ++ {"SYS_ATPUTMSG", Const, 0}, ++ {"SYS_ATSOCKET", Const, 0}, ++ {"SYS_AUDIT", Const, 0}, ++ {"SYS_AUDITCTL", Const, 0}, ++ {"SYS_AUDITON", Const, 0}, ++ {"SYS_AUDIT_SESSION_JOIN", Const, 0}, ++ {"SYS_AUDIT_SESSION_PORT", Const, 0}, ++ {"SYS_AUDIT_SESSION_SELF", Const, 0}, ++ {"SYS_BDFLUSH", Const, 0}, ++ {"SYS_BIND", Const, 0}, ++ {"SYS_BINDAT", Const, 3}, ++ {"SYS_BREAK", Const, 0}, ++ {"SYS_BRK", Const, 0}, ++ {"SYS_BSDTHREAD_CREATE", Const, 0}, ++ {"SYS_BSDTHREAD_REGISTER", Const, 0}, ++ {"SYS_BSDTHREAD_TERMINATE", Const, 0}, ++ {"SYS_CAPGET", Const, 0}, ++ {"SYS_CAPSET", Const, 0}, ++ {"SYS_CAP_ENTER", Const, 0}, ++ {"SYS_CAP_FCNTLS_GET", Const, 1}, ++ {"SYS_CAP_FCNTLS_LIMIT", Const, 1}, ++ {"SYS_CAP_GETMODE", Const, 0}, ++ {"SYS_CAP_GETRIGHTS", Const, 0}, ++ {"SYS_CAP_IOCTLS_GET", Const, 1}, ++ {"SYS_CAP_IOCTLS_LIMIT", Const, 1}, ++ {"SYS_CAP_NEW", Const, 0}, ++ {"SYS_CAP_RIGHTS_GET", Const, 1}, ++ {"SYS_CAP_RIGHTS_LIMIT", Const, 1}, ++ {"SYS_CHDIR", Const, 0}, ++ {"SYS_CHFLAGS", Const, 0}, ++ {"SYS_CHFLAGSAT", Const, 3}, ++ {"SYS_CHMOD", Const, 0}, ++ {"SYS_CHMOD_EXTENDED", Const, 0}, ++ {"SYS_CHOWN", Const, 0}, ++ {"SYS_CHOWN32", Const, 0}, ++ {"SYS_CHROOT", Const, 0}, ++ {"SYS_CHUD", Const, 0}, ++ {"SYS_CLOCK_ADJTIME", Const, 0}, ++ {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1}, ++ {"SYS_CLOCK_GETRES", Const, 0}, ++ {"SYS_CLOCK_GETTIME", Const, 0}, ++ {"SYS_CLOCK_NANOSLEEP", Const, 0}, ++ {"SYS_CLOCK_SETTIME", Const, 0}, ++ {"SYS_CLONE", Const, 0}, ++ {"SYS_CLOSE", Const, 0}, ++ {"SYS_CLOSEFROM", Const, 0}, ++ {"SYS_CLOSE_NOCANCEL", Const, 0}, ++ {"SYS_CONNECT", Const, 0}, ++ {"SYS_CONNECTAT", Const, 3}, ++ {"SYS_CONNECT_NOCANCEL", Const, 0}, ++ {"SYS_COPYFILE", Const, 0}, ++ {"SYS_CPUSET", Const, 0}, ++ {"SYS_CPUSET_GETAFFINITY", Const, 0}, ++ {"SYS_CPUSET_GETID", Const, 0}, ++ {"SYS_CPUSET_SETAFFINITY", Const, 0}, ++ {"SYS_CPUSET_SETID", Const, 0}, ++ {"SYS_CREAT", Const, 0}, ++ {"SYS_CREATE_MODULE", Const, 0}, ++ {"SYS_CSOPS", Const, 0}, ++ {"SYS_CSOPS_AUDITTOKEN", Const, 16}, ++ {"SYS_DELETE", Const, 0}, ++ {"SYS_DELETE_MODULE", Const, 0}, ++ {"SYS_DUP", Const, 0}, ++ {"SYS_DUP2", Const, 0}, ++ {"SYS_DUP3", Const, 0}, ++ {"SYS_EACCESS", Const, 0}, ++ {"SYS_EPOLL_CREATE", Const, 0}, ++ {"SYS_EPOLL_CREATE1", Const, 0}, ++ {"SYS_EPOLL_CTL", Const, 0}, ++ {"SYS_EPOLL_CTL_OLD", Const, 0}, ++ {"SYS_EPOLL_PWAIT", Const, 0}, ++ {"SYS_EPOLL_WAIT", Const, 0}, ++ {"SYS_EPOLL_WAIT_OLD", Const, 0}, ++ {"SYS_EVENTFD", Const, 0}, ++ {"SYS_EVENTFD2", Const, 0}, ++ {"SYS_EXCHANGEDATA", Const, 0}, ++ {"SYS_EXECVE", Const, 0}, ++ {"SYS_EXIT", Const, 0}, ++ {"SYS_EXIT_GROUP", Const, 0}, ++ {"SYS_EXTATTRCTL", Const, 0}, ++ {"SYS_EXTATTR_DELETE_FD", Const, 0}, ++ {"SYS_EXTATTR_DELETE_FILE", Const, 0}, ++ {"SYS_EXTATTR_DELETE_LINK", Const, 0}, ++ {"SYS_EXTATTR_GET_FD", Const, 0}, ++ {"SYS_EXTATTR_GET_FILE", Const, 0}, ++ {"SYS_EXTATTR_GET_LINK", Const, 0}, ++ {"SYS_EXTATTR_LIST_FD", Const, 0}, ++ {"SYS_EXTATTR_LIST_FILE", Const, 0}, ++ {"SYS_EXTATTR_LIST_LINK", Const, 0}, ++ {"SYS_EXTATTR_SET_FD", Const, 0}, ++ {"SYS_EXTATTR_SET_FILE", Const, 0}, ++ {"SYS_EXTATTR_SET_LINK", Const, 0}, ++ {"SYS_FACCESSAT", Const, 0}, ++ {"SYS_FADVISE64", Const, 0}, ++ {"SYS_FADVISE64_64", Const, 0}, ++ {"SYS_FALLOCATE", Const, 0}, ++ {"SYS_FANOTIFY_INIT", Const, 0}, ++ {"SYS_FANOTIFY_MARK", Const, 0}, ++ {"SYS_FCHDIR", Const, 0}, ++ {"SYS_FCHFLAGS", Const, 0}, ++ {"SYS_FCHMOD", Const, 0}, ++ {"SYS_FCHMODAT", Const, 0}, ++ {"SYS_FCHMOD_EXTENDED", Const, 0}, ++ {"SYS_FCHOWN", Const, 0}, ++ {"SYS_FCHOWN32", Const, 0}, ++ {"SYS_FCHOWNAT", Const, 0}, ++ {"SYS_FCHROOT", Const, 1}, ++ {"SYS_FCNTL", Const, 0}, ++ {"SYS_FCNTL64", Const, 0}, ++ {"SYS_FCNTL_NOCANCEL", Const, 0}, ++ {"SYS_FDATASYNC", Const, 0}, ++ {"SYS_FEXECVE", Const, 0}, ++ {"SYS_FFCLOCK_GETCOUNTER", Const, 0}, ++ {"SYS_FFCLOCK_GETESTIMATE", Const, 0}, ++ {"SYS_FFCLOCK_SETESTIMATE", Const, 0}, ++ {"SYS_FFSCTL", Const, 0}, ++ {"SYS_FGETATTRLIST", Const, 0}, ++ {"SYS_FGETXATTR", Const, 0}, ++ {"SYS_FHOPEN", Const, 0}, ++ {"SYS_FHSTAT", Const, 0}, ++ {"SYS_FHSTATFS", Const, 0}, ++ {"SYS_FILEPORT_MAKEFD", Const, 0}, ++ {"SYS_FILEPORT_MAKEPORT", Const, 0}, ++ {"SYS_FKTRACE", Const, 1}, ++ {"SYS_FLISTXATTR", Const, 0}, ++ {"SYS_FLOCK", Const, 0}, ++ {"SYS_FORK", Const, 0}, ++ {"SYS_FPATHCONF", Const, 0}, ++ {"SYS_FREEBSD6_FTRUNCATE", Const, 0}, ++ {"SYS_FREEBSD6_LSEEK", Const, 0}, ++ {"SYS_FREEBSD6_MMAP", Const, 0}, ++ {"SYS_FREEBSD6_PREAD", Const, 0}, ++ {"SYS_FREEBSD6_PWRITE", Const, 0}, ++ {"SYS_FREEBSD6_TRUNCATE", Const, 0}, ++ {"SYS_FREMOVEXATTR", Const, 0}, ++ {"SYS_FSCTL", Const, 0}, ++ {"SYS_FSETATTRLIST", Const, 0}, ++ {"SYS_FSETXATTR", Const, 0}, ++ {"SYS_FSGETPATH", Const, 0}, ++ {"SYS_FSTAT", Const, 0}, ++ {"SYS_FSTAT64", Const, 0}, ++ {"SYS_FSTAT64_EXTENDED", Const, 0}, ++ {"SYS_FSTATAT", Const, 0}, ++ {"SYS_FSTATAT64", Const, 0}, ++ {"SYS_FSTATFS", Const, 0}, ++ {"SYS_FSTATFS64", Const, 0}, ++ {"SYS_FSTATV", Const, 0}, ++ {"SYS_FSTATVFS1", Const, 1}, ++ {"SYS_FSTAT_EXTENDED", Const, 0}, ++ {"SYS_FSYNC", Const, 0}, ++ {"SYS_FSYNC_NOCANCEL", Const, 0}, ++ {"SYS_FSYNC_RANGE", Const, 1}, ++ {"SYS_FTIME", Const, 0}, ++ {"SYS_FTRUNCATE", Const, 0}, ++ {"SYS_FTRUNCATE64", Const, 0}, ++ {"SYS_FUTEX", Const, 0}, ++ {"SYS_FUTIMENS", Const, 1}, ++ {"SYS_FUTIMES", Const, 0}, ++ {"SYS_FUTIMESAT", Const, 0}, ++ {"SYS_GETATTRLIST", Const, 0}, ++ {"SYS_GETAUDIT", Const, 0}, ++ {"SYS_GETAUDIT_ADDR", Const, 0}, ++ {"SYS_GETAUID", Const, 0}, ++ {"SYS_GETCONTEXT", Const, 0}, ++ {"SYS_GETCPU", Const, 0}, ++ {"SYS_GETCWD", Const, 0}, ++ {"SYS_GETDENTS", Const, 0}, ++ {"SYS_GETDENTS64", Const, 0}, ++ {"SYS_GETDIRENTRIES", Const, 0}, ++ {"SYS_GETDIRENTRIES64", Const, 0}, ++ {"SYS_GETDIRENTRIESATTR", Const, 0}, ++ {"SYS_GETDTABLECOUNT", Const, 1}, ++ {"SYS_GETDTABLESIZE", Const, 0}, ++ {"SYS_GETEGID", Const, 0}, ++ {"SYS_GETEGID32", Const, 0}, ++ {"SYS_GETEUID", Const, 0}, ++ {"SYS_GETEUID32", Const, 0}, ++ {"SYS_GETFH", Const, 0}, ++ {"SYS_GETFSSTAT", Const, 0}, ++ {"SYS_GETFSSTAT64", Const, 0}, ++ {"SYS_GETGID", Const, 0}, ++ {"SYS_GETGID32", Const, 0}, ++ {"SYS_GETGROUPS", Const, 0}, ++ {"SYS_GETGROUPS32", Const, 0}, ++ {"SYS_GETHOSTUUID", Const, 0}, ++ {"SYS_GETITIMER", Const, 0}, ++ {"SYS_GETLCID", Const, 0}, ++ {"SYS_GETLOGIN", Const, 0}, ++ {"SYS_GETLOGINCLASS", Const, 0}, ++ {"SYS_GETPEERNAME", Const, 0}, ++ {"SYS_GETPGID", Const, 0}, ++ {"SYS_GETPGRP", Const, 0}, ++ {"SYS_GETPID", Const, 0}, ++ {"SYS_GETPMSG", Const, 0}, ++ {"SYS_GETPPID", Const, 0}, ++ {"SYS_GETPRIORITY", Const, 0}, ++ {"SYS_GETRESGID", Const, 0}, ++ {"SYS_GETRESGID32", Const, 0}, ++ {"SYS_GETRESUID", Const, 0}, ++ {"SYS_GETRESUID32", Const, 0}, ++ {"SYS_GETRLIMIT", Const, 0}, ++ {"SYS_GETRTABLE", Const, 1}, ++ {"SYS_GETRUSAGE", Const, 0}, ++ {"SYS_GETSGROUPS", Const, 0}, ++ {"SYS_GETSID", Const, 0}, ++ {"SYS_GETSOCKNAME", Const, 0}, ++ {"SYS_GETSOCKOPT", Const, 0}, ++ {"SYS_GETTHRID", Const, 1}, ++ {"SYS_GETTID", Const, 0}, ++ {"SYS_GETTIMEOFDAY", Const, 0}, ++ {"SYS_GETUID", Const, 0}, ++ {"SYS_GETUID32", Const, 0}, ++ {"SYS_GETVFSSTAT", Const, 1}, ++ {"SYS_GETWGROUPS", Const, 0}, ++ {"SYS_GETXATTR", Const, 0}, ++ {"SYS_GET_KERNEL_SYMS", Const, 0}, ++ {"SYS_GET_MEMPOLICY", Const, 0}, ++ {"SYS_GET_ROBUST_LIST", Const, 0}, ++ {"SYS_GET_THREAD_AREA", Const, 0}, ++ {"SYS_GSSD_SYSCALL", Const, 14}, ++ {"SYS_GTTY", Const, 0}, ++ {"SYS_IDENTITYSVC", Const, 0}, ++ {"SYS_IDLE", Const, 0}, ++ {"SYS_INITGROUPS", Const, 0}, ++ {"SYS_INIT_MODULE", Const, 0}, ++ {"SYS_INOTIFY_ADD_WATCH", Const, 0}, ++ {"SYS_INOTIFY_INIT", Const, 0}, ++ {"SYS_INOTIFY_INIT1", Const, 0}, ++ {"SYS_INOTIFY_RM_WATCH", Const, 0}, ++ {"SYS_IOCTL", Const, 0}, ++ {"SYS_IOPERM", Const, 0}, ++ {"SYS_IOPL", Const, 0}, ++ {"SYS_IOPOLICYSYS", Const, 0}, ++ {"SYS_IOPRIO_GET", Const, 0}, ++ {"SYS_IOPRIO_SET", Const, 0}, ++ {"SYS_IO_CANCEL", Const, 0}, ++ {"SYS_IO_DESTROY", Const, 0}, ++ {"SYS_IO_GETEVENTS", Const, 0}, ++ {"SYS_IO_SETUP", Const, 0}, ++ {"SYS_IO_SUBMIT", Const, 0}, ++ {"SYS_IPC", Const, 0}, ++ {"SYS_ISSETUGID", Const, 0}, ++ {"SYS_JAIL", Const, 0}, ++ {"SYS_JAIL_ATTACH", Const, 0}, ++ {"SYS_JAIL_GET", Const, 0}, ++ {"SYS_JAIL_REMOVE", Const, 0}, ++ {"SYS_JAIL_SET", Const, 0}, ++ {"SYS_KAS_INFO", Const, 16}, ++ {"SYS_KDEBUG_TRACE", Const, 0}, ++ {"SYS_KENV", Const, 0}, ++ {"SYS_KEVENT", Const, 0}, ++ {"SYS_KEVENT64", Const, 0}, ++ {"SYS_KEXEC_LOAD", Const, 0}, ++ {"SYS_KEYCTL", Const, 0}, ++ {"SYS_KILL", Const, 0}, ++ {"SYS_KLDFIND", Const, 0}, ++ {"SYS_KLDFIRSTMOD", Const, 0}, ++ {"SYS_KLDLOAD", Const, 0}, ++ {"SYS_KLDNEXT", Const, 0}, ++ {"SYS_KLDSTAT", Const, 0}, ++ {"SYS_KLDSYM", Const, 0}, ++ {"SYS_KLDUNLOAD", Const, 0}, ++ {"SYS_KLDUNLOADF", Const, 0}, ++ {"SYS_KMQ_NOTIFY", Const, 14}, ++ {"SYS_KMQ_OPEN", Const, 14}, ++ {"SYS_KMQ_SETATTR", Const, 14}, ++ {"SYS_KMQ_TIMEDRECEIVE", Const, 14}, ++ {"SYS_KMQ_TIMEDSEND", Const, 14}, ++ {"SYS_KMQ_UNLINK", Const, 14}, ++ {"SYS_KQUEUE", Const, 0}, ++ {"SYS_KQUEUE1", Const, 1}, ++ {"SYS_KSEM_CLOSE", Const, 14}, ++ {"SYS_KSEM_DESTROY", Const, 14}, ++ {"SYS_KSEM_GETVALUE", Const, 14}, ++ {"SYS_KSEM_INIT", Const, 14}, ++ {"SYS_KSEM_OPEN", Const, 14}, ++ {"SYS_KSEM_POST", Const, 14}, ++ {"SYS_KSEM_TIMEDWAIT", Const, 14}, ++ {"SYS_KSEM_TRYWAIT", Const, 14}, ++ {"SYS_KSEM_UNLINK", Const, 14}, ++ {"SYS_KSEM_WAIT", Const, 14}, ++ {"SYS_KTIMER_CREATE", Const, 0}, ++ {"SYS_KTIMER_DELETE", Const, 0}, ++ {"SYS_KTIMER_GETOVERRUN", Const, 0}, ++ {"SYS_KTIMER_GETTIME", Const, 0}, ++ {"SYS_KTIMER_SETTIME", Const, 0}, ++ {"SYS_KTRACE", Const, 0}, ++ {"SYS_LCHFLAGS", Const, 0}, ++ {"SYS_LCHMOD", Const, 0}, ++ {"SYS_LCHOWN", Const, 0}, ++ {"SYS_LCHOWN32", Const, 0}, ++ {"SYS_LEDGER", Const, 16}, ++ {"SYS_LGETFH", Const, 0}, ++ {"SYS_LGETXATTR", Const, 0}, ++ {"SYS_LINK", Const, 0}, ++ {"SYS_LINKAT", Const, 0}, ++ {"SYS_LIO_LISTIO", Const, 0}, ++ {"SYS_LISTEN", Const, 0}, ++ {"SYS_LISTXATTR", Const, 0}, ++ {"SYS_LLISTXATTR", Const, 0}, ++ {"SYS_LOCK", Const, 0}, ++ {"SYS_LOOKUP_DCOOKIE", Const, 0}, ++ {"SYS_LPATHCONF", Const, 0}, ++ {"SYS_LREMOVEXATTR", Const, 0}, ++ {"SYS_LSEEK", Const, 0}, ++ {"SYS_LSETXATTR", Const, 0}, ++ {"SYS_LSTAT", Const, 0}, ++ {"SYS_LSTAT64", Const, 0}, ++ {"SYS_LSTAT64_EXTENDED", Const, 0}, ++ {"SYS_LSTATV", Const, 0}, ++ {"SYS_LSTAT_EXTENDED", Const, 0}, ++ {"SYS_LUTIMES", Const, 0}, ++ {"SYS_MAC_SYSCALL", Const, 0}, ++ {"SYS_MADVISE", Const, 0}, ++ {"SYS_MADVISE1", Const, 0}, ++ {"SYS_MAXSYSCALL", Const, 0}, ++ {"SYS_MBIND", Const, 0}, ++ {"SYS_MIGRATE_PAGES", Const, 0}, ++ {"SYS_MINCORE", Const, 0}, ++ {"SYS_MINHERIT", Const, 0}, ++ {"SYS_MKCOMPLEX", Const, 0}, ++ {"SYS_MKDIR", Const, 0}, ++ {"SYS_MKDIRAT", Const, 0}, ++ {"SYS_MKDIR_EXTENDED", Const, 0}, ++ {"SYS_MKFIFO", Const, 0}, ++ {"SYS_MKFIFOAT", Const, 0}, ++ {"SYS_MKFIFO_EXTENDED", Const, 0}, ++ {"SYS_MKNOD", Const, 0}, ++ {"SYS_MKNODAT", Const, 0}, ++ {"SYS_MLOCK", Const, 0}, ++ {"SYS_MLOCKALL", Const, 0}, ++ {"SYS_MMAP", Const, 0}, ++ {"SYS_MMAP2", Const, 0}, ++ {"SYS_MODCTL", Const, 1}, ++ {"SYS_MODFIND", Const, 0}, ++ {"SYS_MODFNEXT", Const, 0}, ++ {"SYS_MODIFY_LDT", Const, 0}, ++ {"SYS_MODNEXT", Const, 0}, ++ {"SYS_MODSTAT", Const, 0}, ++ {"SYS_MODWATCH", Const, 0}, ++ {"SYS_MOUNT", Const, 0}, ++ {"SYS_MOVE_PAGES", Const, 0}, ++ {"SYS_MPROTECT", Const, 0}, ++ {"SYS_MPX", Const, 0}, ++ {"SYS_MQUERY", Const, 1}, ++ {"SYS_MQ_GETSETATTR", Const, 0}, ++ {"SYS_MQ_NOTIFY", Const, 0}, ++ {"SYS_MQ_OPEN", Const, 0}, ++ {"SYS_MQ_TIMEDRECEIVE", Const, 0}, ++ {"SYS_MQ_TIMEDSEND", Const, 0}, ++ {"SYS_MQ_UNLINK", Const, 0}, ++ {"SYS_MREMAP", Const, 0}, ++ {"SYS_MSGCTL", Const, 0}, ++ {"SYS_MSGGET", Const, 0}, ++ {"SYS_MSGRCV", Const, 0}, ++ {"SYS_MSGRCV_NOCANCEL", Const, 0}, ++ {"SYS_MSGSND", Const, 0}, ++ {"SYS_MSGSND_NOCANCEL", Const, 0}, ++ {"SYS_MSGSYS", Const, 0}, ++ {"SYS_MSYNC", Const, 0}, ++ {"SYS_MSYNC_NOCANCEL", Const, 0}, ++ {"SYS_MUNLOCK", Const, 0}, ++ {"SYS_MUNLOCKALL", Const, 0}, ++ {"SYS_MUNMAP", Const, 0}, ++ {"SYS_NAME_TO_HANDLE_AT", Const, 0}, ++ {"SYS_NANOSLEEP", Const, 0}, ++ {"SYS_NEWFSTATAT", Const, 0}, ++ {"SYS_NFSCLNT", Const, 0}, ++ {"SYS_NFSSERVCTL", Const, 0}, ++ {"SYS_NFSSVC", Const, 0}, ++ {"SYS_NFSTAT", Const, 0}, ++ {"SYS_NICE", Const, 0}, ++ {"SYS_NLM_SYSCALL", Const, 14}, ++ {"SYS_NLSTAT", Const, 0}, ++ {"SYS_NMOUNT", Const, 0}, ++ {"SYS_NSTAT", Const, 0}, ++ {"SYS_NTP_ADJTIME", Const, 0}, ++ {"SYS_NTP_GETTIME", Const, 0}, ++ {"SYS_NUMA_GETAFFINITY", Const, 14}, ++ {"SYS_NUMA_SETAFFINITY", Const, 14}, ++ {"SYS_OABI_SYSCALL_BASE", Const, 0}, ++ {"SYS_OBREAK", Const, 0}, ++ {"SYS_OLDFSTAT", Const, 0}, ++ {"SYS_OLDLSTAT", Const, 0}, ++ {"SYS_OLDOLDUNAME", Const, 0}, ++ {"SYS_OLDSTAT", Const, 0}, ++ {"SYS_OLDUNAME", Const, 0}, ++ {"SYS_OPEN", Const, 0}, ++ {"SYS_OPENAT", Const, 0}, ++ {"SYS_OPENBSD_POLL", Const, 0}, ++ {"SYS_OPEN_BY_HANDLE_AT", Const, 0}, ++ {"SYS_OPEN_DPROTECTED_NP", Const, 16}, ++ {"SYS_OPEN_EXTENDED", Const, 0}, ++ {"SYS_OPEN_NOCANCEL", Const, 0}, ++ {"SYS_OVADVISE", Const, 0}, ++ {"SYS_PACCEPT", Const, 1}, ++ {"SYS_PATHCONF", Const, 0}, ++ {"SYS_PAUSE", Const, 0}, ++ {"SYS_PCICONFIG_IOBASE", Const, 0}, ++ {"SYS_PCICONFIG_READ", Const, 0}, ++ {"SYS_PCICONFIG_WRITE", Const, 0}, ++ {"SYS_PDFORK", Const, 0}, ++ {"SYS_PDGETPID", Const, 0}, ++ {"SYS_PDKILL", Const, 0}, ++ {"SYS_PERF_EVENT_OPEN", Const, 0}, ++ {"SYS_PERSONALITY", Const, 0}, ++ {"SYS_PID_HIBERNATE", Const, 0}, ++ {"SYS_PID_RESUME", Const, 0}, ++ {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0}, ++ {"SYS_PID_SUSPEND", Const, 0}, ++ {"SYS_PIPE", Const, 0}, ++ {"SYS_PIPE2", Const, 0}, ++ {"SYS_PIVOT_ROOT", Const, 0}, ++ {"SYS_PMC_CONTROL", Const, 1}, ++ {"SYS_PMC_GET_INFO", Const, 1}, ++ {"SYS_POLL", Const, 0}, ++ {"SYS_POLLTS", Const, 1}, ++ {"SYS_POLL_NOCANCEL", Const, 0}, ++ {"SYS_POSIX_FADVISE", Const, 0}, ++ {"SYS_POSIX_FALLOCATE", Const, 0}, ++ {"SYS_POSIX_OPENPT", Const, 0}, ++ {"SYS_POSIX_SPAWN", Const, 0}, ++ {"SYS_PPOLL", Const, 0}, ++ {"SYS_PRCTL", Const, 0}, ++ {"SYS_PREAD", Const, 0}, ++ {"SYS_PREAD64", Const, 0}, ++ {"SYS_PREADV", Const, 0}, ++ {"SYS_PREAD_NOCANCEL", Const, 0}, ++ {"SYS_PRLIMIT64", Const, 0}, ++ {"SYS_PROCCTL", Const, 3}, ++ {"SYS_PROCESS_POLICY", Const, 0}, ++ {"SYS_PROCESS_VM_READV", Const, 0}, ++ {"SYS_PROCESS_VM_WRITEV", Const, 0}, ++ {"SYS_PROC_INFO", Const, 0}, ++ {"SYS_PROF", Const, 0}, ++ {"SYS_PROFIL", Const, 0}, ++ {"SYS_PSELECT", Const, 0}, ++ {"SYS_PSELECT6", Const, 0}, ++ {"SYS_PSET_ASSIGN", Const, 1}, ++ {"SYS_PSET_CREATE", Const, 1}, ++ {"SYS_PSET_DESTROY", Const, 1}, ++ {"SYS_PSYNCH_CVBROAD", Const, 0}, ++ {"SYS_PSYNCH_CVCLRPREPOST", Const, 0}, ++ {"SYS_PSYNCH_CVSIGNAL", Const, 0}, ++ {"SYS_PSYNCH_CVWAIT", Const, 0}, ++ {"SYS_PSYNCH_MUTEXDROP", Const, 0}, ++ {"SYS_PSYNCH_MUTEXWAIT", Const, 0}, ++ {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0}, ++ {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0}, ++ {"SYS_PSYNCH_RW_RDLOCK", Const, 0}, ++ {"SYS_PSYNCH_RW_UNLOCK", Const, 0}, ++ {"SYS_PSYNCH_RW_UNLOCK2", Const, 0}, ++ {"SYS_PSYNCH_RW_UPGRADE", Const, 0}, ++ {"SYS_PSYNCH_RW_WRLOCK", Const, 0}, ++ {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0}, ++ {"SYS_PTRACE", Const, 0}, ++ {"SYS_PUTPMSG", Const, 0}, ++ {"SYS_PWRITE", Const, 0}, ++ {"SYS_PWRITE64", Const, 0}, ++ {"SYS_PWRITEV", Const, 0}, ++ {"SYS_PWRITE_NOCANCEL", Const, 0}, ++ {"SYS_QUERY_MODULE", Const, 0}, ++ {"SYS_QUOTACTL", Const, 0}, ++ {"SYS_RASCTL", Const, 1}, ++ {"SYS_RCTL_ADD_RULE", Const, 0}, ++ {"SYS_RCTL_GET_LIMITS", Const, 0}, ++ {"SYS_RCTL_GET_RACCT", Const, 0}, ++ {"SYS_RCTL_GET_RULES", Const, 0}, ++ {"SYS_RCTL_REMOVE_RULE", Const, 0}, ++ {"SYS_READ", Const, 0}, ++ {"SYS_READAHEAD", Const, 0}, ++ {"SYS_READDIR", Const, 0}, ++ {"SYS_READLINK", Const, 0}, ++ {"SYS_READLINKAT", Const, 0}, ++ {"SYS_READV", Const, 0}, ++ {"SYS_READV_NOCANCEL", Const, 0}, ++ {"SYS_READ_NOCANCEL", Const, 0}, ++ {"SYS_REBOOT", Const, 0}, ++ {"SYS_RECV", Const, 0}, ++ {"SYS_RECVFROM", Const, 0}, ++ {"SYS_RECVFROM_NOCANCEL", Const, 0}, ++ {"SYS_RECVMMSG", Const, 0}, ++ {"SYS_RECVMSG", Const, 0}, ++ {"SYS_RECVMSG_NOCANCEL", Const, 0}, ++ {"SYS_REMAP_FILE_PAGES", Const, 0}, ++ {"SYS_REMOVEXATTR", Const, 0}, ++ {"SYS_RENAME", Const, 0}, ++ {"SYS_RENAMEAT", Const, 0}, ++ {"SYS_REQUEST_KEY", Const, 0}, ++ {"SYS_RESTART_SYSCALL", Const, 0}, ++ {"SYS_REVOKE", Const, 0}, ++ {"SYS_RFORK", Const, 0}, ++ {"SYS_RMDIR", Const, 0}, ++ {"SYS_RTPRIO", Const, 0}, ++ {"SYS_RTPRIO_THREAD", Const, 0}, ++ {"SYS_RT_SIGACTION", Const, 0}, ++ {"SYS_RT_SIGPENDING", Const, 0}, ++ {"SYS_RT_SIGPROCMASK", Const, 0}, ++ {"SYS_RT_SIGQUEUEINFO", Const, 0}, ++ {"SYS_RT_SIGRETURN", Const, 0}, ++ {"SYS_RT_SIGSUSPEND", Const, 0}, ++ {"SYS_RT_SIGTIMEDWAIT", Const, 0}, ++ {"SYS_RT_TGSIGQUEUEINFO", Const, 0}, ++ {"SYS_SBRK", Const, 0}, ++ {"SYS_SCHED_GETAFFINITY", Const, 0}, ++ {"SYS_SCHED_GETPARAM", Const, 0}, ++ {"SYS_SCHED_GETSCHEDULER", Const, 0}, ++ {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0}, ++ {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0}, ++ {"SYS_SCHED_RR_GET_INTERVAL", Const, 0}, ++ {"SYS_SCHED_SETAFFINITY", Const, 0}, ++ {"SYS_SCHED_SETPARAM", Const, 0}, ++ {"SYS_SCHED_SETSCHEDULER", Const, 0}, ++ {"SYS_SCHED_YIELD", Const, 0}, ++ {"SYS_SCTP_GENERIC_RECVMSG", Const, 0}, ++ {"SYS_SCTP_GENERIC_SENDMSG", Const, 0}, ++ {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0}, ++ {"SYS_SCTP_PEELOFF", Const, 0}, ++ {"SYS_SEARCHFS", Const, 0}, ++ {"SYS_SECURITY", Const, 0}, ++ {"SYS_SELECT", Const, 0}, ++ {"SYS_SELECT_NOCANCEL", Const, 0}, ++ {"SYS_SEMCONFIG", Const, 1}, ++ {"SYS_SEMCTL", Const, 0}, ++ {"SYS_SEMGET", Const, 0}, ++ {"SYS_SEMOP", Const, 0}, ++ {"SYS_SEMSYS", Const, 0}, ++ {"SYS_SEMTIMEDOP", Const, 0}, ++ {"SYS_SEM_CLOSE", Const, 0}, ++ {"SYS_SEM_DESTROY", Const, 0}, ++ {"SYS_SEM_GETVALUE", Const, 0}, ++ {"SYS_SEM_INIT", Const, 0}, ++ {"SYS_SEM_OPEN", Const, 0}, ++ {"SYS_SEM_POST", Const, 0}, ++ {"SYS_SEM_TRYWAIT", Const, 0}, ++ {"SYS_SEM_UNLINK", Const, 0}, ++ {"SYS_SEM_WAIT", Const, 0}, ++ {"SYS_SEM_WAIT_NOCANCEL", Const, 0}, ++ {"SYS_SEND", Const, 0}, ++ {"SYS_SENDFILE", Const, 0}, ++ {"SYS_SENDFILE64", Const, 0}, ++ {"SYS_SENDMMSG", Const, 0}, ++ {"SYS_SENDMSG", Const, 0}, ++ {"SYS_SENDMSG_NOCANCEL", Const, 0}, ++ {"SYS_SENDTO", Const, 0}, ++ {"SYS_SENDTO_NOCANCEL", Const, 0}, ++ {"SYS_SETATTRLIST", Const, 0}, ++ {"SYS_SETAUDIT", Const, 0}, ++ {"SYS_SETAUDIT_ADDR", Const, 0}, ++ {"SYS_SETAUID", Const, 0}, ++ {"SYS_SETCONTEXT", Const, 0}, ++ {"SYS_SETDOMAINNAME", Const, 0}, ++ {"SYS_SETEGID", Const, 0}, ++ {"SYS_SETEUID", Const, 0}, ++ {"SYS_SETFIB", Const, 0}, ++ {"SYS_SETFSGID", Const, 0}, ++ {"SYS_SETFSGID32", Const, 0}, ++ {"SYS_SETFSUID", Const, 0}, ++ {"SYS_SETFSUID32", Const, 0}, ++ {"SYS_SETGID", Const, 0}, ++ {"SYS_SETGID32", Const, 0}, ++ {"SYS_SETGROUPS", Const, 0}, ++ {"SYS_SETGROUPS32", Const, 0}, ++ {"SYS_SETHOSTNAME", Const, 0}, ++ {"SYS_SETITIMER", Const, 0}, ++ {"SYS_SETLCID", Const, 0}, ++ {"SYS_SETLOGIN", Const, 0}, ++ {"SYS_SETLOGINCLASS", Const, 0}, ++ {"SYS_SETNS", Const, 0}, ++ {"SYS_SETPGID", Const, 0}, ++ {"SYS_SETPRIORITY", Const, 0}, ++ {"SYS_SETPRIVEXEC", Const, 0}, ++ {"SYS_SETREGID", Const, 0}, ++ {"SYS_SETREGID32", Const, 0}, ++ {"SYS_SETRESGID", Const, 0}, ++ {"SYS_SETRESGID32", Const, 0}, ++ {"SYS_SETRESUID", Const, 0}, ++ {"SYS_SETRESUID32", Const, 0}, ++ {"SYS_SETREUID", Const, 0}, ++ {"SYS_SETREUID32", Const, 0}, ++ {"SYS_SETRLIMIT", Const, 0}, ++ {"SYS_SETRTABLE", Const, 1}, ++ {"SYS_SETSGROUPS", Const, 0}, ++ {"SYS_SETSID", Const, 0}, ++ {"SYS_SETSOCKOPT", Const, 0}, ++ {"SYS_SETTID", Const, 0}, ++ {"SYS_SETTID_WITH_PID", Const, 0}, ++ {"SYS_SETTIMEOFDAY", Const, 0}, ++ {"SYS_SETUID", Const, 0}, ++ {"SYS_SETUID32", Const, 0}, ++ {"SYS_SETWGROUPS", Const, 0}, ++ {"SYS_SETXATTR", Const, 0}, ++ {"SYS_SET_MEMPOLICY", Const, 0}, ++ {"SYS_SET_ROBUST_LIST", Const, 0}, ++ {"SYS_SET_THREAD_AREA", Const, 0}, ++ {"SYS_SET_TID_ADDRESS", Const, 0}, ++ {"SYS_SGETMASK", Const, 0}, ++ {"SYS_SHARED_REGION_CHECK_NP", Const, 0}, ++ {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0}, ++ {"SYS_SHMAT", Const, 0}, ++ {"SYS_SHMCTL", Const, 0}, ++ {"SYS_SHMDT", Const, 0}, ++ {"SYS_SHMGET", Const, 0}, ++ {"SYS_SHMSYS", Const, 0}, ++ {"SYS_SHM_OPEN", Const, 0}, ++ {"SYS_SHM_UNLINK", Const, 0}, ++ {"SYS_SHUTDOWN", Const, 0}, ++ {"SYS_SIGACTION", Const, 0}, ++ {"SYS_SIGALTSTACK", Const, 0}, ++ {"SYS_SIGNAL", Const, 0}, ++ {"SYS_SIGNALFD", Const, 0}, ++ {"SYS_SIGNALFD4", Const, 0}, ++ {"SYS_SIGPENDING", Const, 0}, ++ {"SYS_SIGPROCMASK", Const, 0}, ++ {"SYS_SIGQUEUE", Const, 0}, ++ {"SYS_SIGQUEUEINFO", Const, 1}, ++ {"SYS_SIGRETURN", Const, 0}, ++ {"SYS_SIGSUSPEND", Const, 0}, ++ {"SYS_SIGSUSPEND_NOCANCEL", Const, 0}, ++ {"SYS_SIGTIMEDWAIT", Const, 0}, ++ {"SYS_SIGWAIT", Const, 0}, ++ {"SYS_SIGWAITINFO", Const, 0}, ++ {"SYS_SOCKET", Const, 0}, ++ {"SYS_SOCKETCALL", Const, 0}, ++ {"SYS_SOCKETPAIR", Const, 0}, ++ {"SYS_SPLICE", Const, 0}, ++ {"SYS_SSETMASK", Const, 0}, ++ {"SYS_SSTK", Const, 0}, ++ {"SYS_STACK_SNAPSHOT", Const, 0}, ++ {"SYS_STAT", Const, 0}, ++ {"SYS_STAT64", Const, 0}, ++ {"SYS_STAT64_EXTENDED", Const, 0}, ++ {"SYS_STATFS", Const, 0}, ++ {"SYS_STATFS64", Const, 0}, ++ {"SYS_STATV", Const, 0}, ++ {"SYS_STATVFS1", Const, 1}, ++ {"SYS_STAT_EXTENDED", Const, 0}, ++ {"SYS_STIME", Const, 0}, ++ {"SYS_STTY", Const, 0}, ++ {"SYS_SWAPCONTEXT", Const, 0}, ++ {"SYS_SWAPCTL", Const, 1}, ++ {"SYS_SWAPOFF", Const, 0}, ++ {"SYS_SWAPON", Const, 0}, ++ {"SYS_SYMLINK", Const, 0}, ++ {"SYS_SYMLINKAT", Const, 0}, ++ {"SYS_SYNC", Const, 0}, ++ {"SYS_SYNCFS", Const, 0}, ++ {"SYS_SYNC_FILE_RANGE", Const, 0}, ++ {"SYS_SYSARCH", Const, 0}, ++ {"SYS_SYSCALL", Const, 0}, ++ {"SYS_SYSCALL_BASE", Const, 0}, ++ {"SYS_SYSFS", Const, 0}, ++ {"SYS_SYSINFO", Const, 0}, ++ {"SYS_SYSLOG", Const, 0}, ++ {"SYS_TEE", Const, 0}, ++ {"SYS_TGKILL", Const, 0}, ++ {"SYS_THREAD_SELFID", Const, 0}, ++ {"SYS_THR_CREATE", Const, 0}, ++ {"SYS_THR_EXIT", Const, 0}, ++ {"SYS_THR_KILL", Const, 0}, ++ {"SYS_THR_KILL2", Const, 0}, ++ {"SYS_THR_NEW", Const, 0}, ++ {"SYS_THR_SELF", Const, 0}, ++ {"SYS_THR_SET_NAME", Const, 0}, ++ {"SYS_THR_SUSPEND", Const, 0}, ++ {"SYS_THR_WAKE", Const, 0}, ++ {"SYS_TIME", Const, 0}, ++ {"SYS_TIMERFD_CREATE", Const, 0}, ++ {"SYS_TIMERFD_GETTIME", Const, 0}, ++ {"SYS_TIMERFD_SETTIME", Const, 0}, ++ {"SYS_TIMER_CREATE", Const, 0}, ++ {"SYS_TIMER_DELETE", Const, 0}, ++ {"SYS_TIMER_GETOVERRUN", Const, 0}, ++ {"SYS_TIMER_GETTIME", Const, 0}, ++ {"SYS_TIMER_SETTIME", Const, 0}, ++ {"SYS_TIMES", Const, 0}, ++ {"SYS_TKILL", Const, 0}, ++ {"SYS_TRUNCATE", Const, 0}, ++ {"SYS_TRUNCATE64", Const, 0}, ++ {"SYS_TUXCALL", Const, 0}, ++ {"SYS_UGETRLIMIT", Const, 0}, ++ {"SYS_ULIMIT", Const, 0}, ++ {"SYS_UMASK", Const, 0}, ++ {"SYS_UMASK_EXTENDED", Const, 0}, ++ {"SYS_UMOUNT", Const, 0}, ++ {"SYS_UMOUNT2", Const, 0}, ++ {"SYS_UNAME", Const, 0}, ++ {"SYS_UNDELETE", Const, 0}, ++ {"SYS_UNLINK", Const, 0}, ++ {"SYS_UNLINKAT", Const, 0}, ++ {"SYS_UNMOUNT", Const, 0}, ++ {"SYS_UNSHARE", Const, 0}, ++ {"SYS_USELIB", Const, 0}, ++ {"SYS_USTAT", Const, 0}, ++ {"SYS_UTIME", Const, 0}, ++ {"SYS_UTIMENSAT", Const, 0}, ++ {"SYS_UTIMES", Const, 0}, ++ {"SYS_UTRACE", Const, 0}, ++ {"SYS_UUIDGEN", Const, 0}, ++ {"SYS_VADVISE", Const, 1}, ++ {"SYS_VFORK", Const, 0}, ++ {"SYS_VHANGUP", Const, 0}, ++ {"SYS_VM86", Const, 0}, ++ {"SYS_VM86OLD", Const, 0}, ++ {"SYS_VMSPLICE", Const, 0}, ++ {"SYS_VM_PRESSURE_MONITOR", Const, 0}, ++ {"SYS_VSERVER", Const, 0}, ++ {"SYS_WAIT4", Const, 0}, ++ {"SYS_WAIT4_NOCANCEL", Const, 0}, ++ {"SYS_WAIT6", Const, 1}, ++ {"SYS_WAITEVENT", Const, 0}, ++ {"SYS_WAITID", Const, 0}, ++ {"SYS_WAITID_NOCANCEL", Const, 0}, ++ {"SYS_WAITPID", Const, 0}, ++ {"SYS_WATCHEVENT", Const, 0}, ++ {"SYS_WORKQ_KERNRETURN", Const, 0}, ++ {"SYS_WORKQ_OPEN", Const, 0}, ++ {"SYS_WRITE", Const, 0}, ++ {"SYS_WRITEV", Const, 0}, ++ {"SYS_WRITEV_NOCANCEL", Const, 0}, ++ {"SYS_WRITE_NOCANCEL", Const, 0}, ++ {"SYS_YIELD", Const, 0}, ++ {"SYS__LLSEEK", Const, 0}, ++ {"SYS__LWP_CONTINUE", Const, 1}, ++ {"SYS__LWP_CREATE", Const, 1}, ++ {"SYS__LWP_CTL", Const, 1}, ++ {"SYS__LWP_DETACH", Const, 1}, ++ {"SYS__LWP_EXIT", Const, 1}, ++ {"SYS__LWP_GETNAME", Const, 1}, ++ {"SYS__LWP_GETPRIVATE", Const, 1}, ++ {"SYS__LWP_KILL", Const, 1}, ++ {"SYS__LWP_PARK", Const, 1}, ++ {"SYS__LWP_SELF", Const, 1}, ++ {"SYS__LWP_SETNAME", Const, 1}, ++ {"SYS__LWP_SETPRIVATE", Const, 1}, ++ {"SYS__LWP_SUSPEND", Const, 1}, ++ {"SYS__LWP_UNPARK", Const, 1}, ++ {"SYS__LWP_UNPARK_ALL", Const, 1}, ++ {"SYS__LWP_WAIT", Const, 1}, ++ {"SYS__LWP_WAKEUP", Const, 1}, ++ {"SYS__NEWSELECT", Const, 0}, ++ {"SYS__PSET_BIND", Const, 1}, ++ {"SYS__SCHED_GETAFFINITY", Const, 1}, ++ {"SYS__SCHED_GETPARAM", Const, 1}, ++ {"SYS__SCHED_SETAFFINITY", Const, 1}, ++ {"SYS__SCHED_SETPARAM", Const, 1}, ++ {"SYS__SYSCTL", Const, 0}, ++ {"SYS__UMTX_LOCK", Const, 0}, ++ {"SYS__UMTX_OP", Const, 0}, ++ {"SYS__UMTX_UNLOCK", Const, 0}, ++ {"SYS___ACL_ACLCHECK_FD", Const, 0}, ++ {"SYS___ACL_ACLCHECK_FILE", Const, 0}, ++ {"SYS___ACL_ACLCHECK_LINK", Const, 0}, ++ {"SYS___ACL_DELETE_FD", Const, 0}, ++ {"SYS___ACL_DELETE_FILE", Const, 0}, ++ {"SYS___ACL_DELETE_LINK", Const, 0}, ++ {"SYS___ACL_GET_FD", Const, 0}, ++ {"SYS___ACL_GET_FILE", Const, 0}, ++ {"SYS___ACL_GET_LINK", Const, 0}, ++ {"SYS___ACL_SET_FD", Const, 0}, ++ {"SYS___ACL_SET_FILE", Const, 0}, ++ {"SYS___ACL_SET_LINK", Const, 0}, ++ {"SYS___CAP_RIGHTS_GET", Const, 14}, ++ {"SYS___CLONE", Const, 1}, ++ {"SYS___DISABLE_THREADSIGNAL", Const, 0}, ++ {"SYS___GETCWD", Const, 0}, ++ {"SYS___GETLOGIN", Const, 1}, ++ {"SYS___GET_TCB", Const, 1}, ++ {"SYS___MAC_EXECVE", Const, 0}, ++ {"SYS___MAC_GETFSSTAT", Const, 0}, ++ {"SYS___MAC_GET_FD", Const, 0}, ++ {"SYS___MAC_GET_FILE", Const, 0}, ++ {"SYS___MAC_GET_LCID", Const, 0}, ++ {"SYS___MAC_GET_LCTX", Const, 0}, ++ {"SYS___MAC_GET_LINK", Const, 0}, ++ {"SYS___MAC_GET_MOUNT", Const, 0}, ++ {"SYS___MAC_GET_PID", Const, 0}, ++ {"SYS___MAC_GET_PROC", Const, 0}, ++ {"SYS___MAC_MOUNT", Const, 0}, ++ {"SYS___MAC_SET_FD", Const, 0}, ++ {"SYS___MAC_SET_FILE", Const, 0}, ++ {"SYS___MAC_SET_LCTX", Const, 0}, ++ {"SYS___MAC_SET_LINK", Const, 0}, ++ {"SYS___MAC_SET_PROC", Const, 0}, ++ {"SYS___MAC_SYSCALL", Const, 0}, ++ {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0}, ++ {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, ++ {"SYS___POSIX_CHOWN", Const, 1}, ++ {"SYS___POSIX_FCHOWN", Const, 1}, ++ {"SYS___POSIX_LCHOWN", Const, 1}, ++ {"SYS___POSIX_RENAME", Const, 1}, ++ {"SYS___PTHREAD_CANCELED", Const, 0}, ++ {"SYS___PTHREAD_CHDIR", Const, 0}, ++ {"SYS___PTHREAD_FCHDIR", Const, 0}, ++ {"SYS___PTHREAD_KILL", Const, 0}, ++ {"SYS___PTHREAD_MARKCANCEL", Const, 0}, ++ {"SYS___PTHREAD_SIGMASK", Const, 0}, ++ {"SYS___QUOTACTL", Const, 1}, ++ {"SYS___SEMCTL", Const, 1}, ++ {"SYS___SEMWAIT_SIGNAL", Const, 0}, ++ {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, ++ {"SYS___SETLOGIN", Const, 1}, ++ {"SYS___SETUGID", Const, 0}, ++ {"SYS___SET_TCB", Const, 1}, ++ {"SYS___SIGACTION_SIGTRAMP", Const, 1}, ++ {"SYS___SIGTIMEDWAIT", Const, 1}, ++ {"SYS___SIGWAIT", Const, 0}, ++ {"SYS___SIGWAIT_NOCANCEL", Const, 0}, ++ {"SYS___SYSCTL", Const, 0}, ++ {"SYS___TFORK", Const, 1}, ++ {"SYS___THREXIT", Const, 1}, ++ {"SYS___THRSIGDIVERT", Const, 1}, ++ {"SYS___THRSLEEP", Const, 1}, ++ {"SYS___THRWAKEUP", Const, 1}, ++ {"S_ARCH1", Const, 1}, ++ {"S_ARCH2", Const, 1}, ++ {"S_BLKSIZE", Const, 0}, ++ {"S_IEXEC", Const, 0}, ++ {"S_IFBLK", Const, 0}, ++ {"S_IFCHR", Const, 0}, ++ {"S_IFDIR", Const, 0}, ++ {"S_IFIFO", Const, 0}, ++ {"S_IFLNK", Const, 0}, ++ {"S_IFMT", Const, 0}, ++ {"S_IFREG", Const, 0}, ++ {"S_IFSOCK", Const, 0}, ++ {"S_IFWHT", Const, 0}, ++ {"S_IREAD", Const, 0}, ++ {"S_IRGRP", Const, 0}, ++ {"S_IROTH", Const, 0}, ++ {"S_IRUSR", Const, 0}, ++ {"S_IRWXG", Const, 0}, ++ {"S_IRWXO", Const, 0}, ++ {"S_IRWXU", Const, 0}, ++ {"S_ISGID", Const, 0}, ++ {"S_ISTXT", Const, 0}, ++ {"S_ISUID", Const, 0}, ++ {"S_ISVTX", Const, 0}, ++ {"S_IWGRP", Const, 0}, ++ {"S_IWOTH", Const, 0}, ++ {"S_IWRITE", Const, 0}, ++ {"S_IWUSR", Const, 0}, ++ {"S_IXGRP", Const, 0}, ++ {"S_IXOTH", Const, 0}, ++ {"S_IXUSR", Const, 0}, ++ {"S_LOGIN_SET", Const, 1}, ++ {"SecurityAttributes", Type, 0}, ++ {"SecurityAttributes.InheritHandle", Field, 0}, ++ {"SecurityAttributes.Length", Field, 0}, ++ {"SecurityAttributes.SecurityDescriptor", Field, 0}, ++ {"Seek", Func, 0}, ++ {"Select", Func, 0}, ++ {"Sendfile", Func, 0}, ++ {"Sendmsg", Func, 0}, ++ {"SendmsgN", Func, 3}, ++ {"Sendto", Func, 0}, ++ {"Servent", Type, 0}, ++ {"Servent.Aliases", Field, 0}, ++ {"Servent.Name", Field, 0}, ++ {"Servent.Port", Field, 0}, ++ {"Servent.Proto", Field, 0}, ++ {"SetBpf", Func, 0}, ++ {"SetBpfBuflen", Func, 0}, ++ {"SetBpfDatalink", Func, 0}, ++ {"SetBpfHeadercmpl", Func, 0}, ++ {"SetBpfImmediate", Func, 0}, ++ {"SetBpfInterface", Func, 0}, ++ {"SetBpfPromisc", Func, 0}, ++ {"SetBpfTimeout", Func, 0}, ++ {"SetCurrentDirectory", Func, 0}, ++ {"SetEndOfFile", Func, 0}, ++ {"SetEnvironmentVariable", Func, 0}, ++ {"SetFileAttributes", Func, 0}, ++ {"SetFileCompletionNotificationModes", Func, 2}, ++ {"SetFilePointer", Func, 0}, ++ {"SetFileTime", Func, 0}, ++ {"SetHandleInformation", Func, 0}, ++ {"SetKevent", Func, 0}, ++ {"SetLsfPromisc", Func, 0}, ++ {"SetNonblock", Func, 0}, ++ {"Setdomainname", Func, 0}, ++ {"Setegid", Func, 0}, ++ {"Setenv", Func, 0}, ++ {"Seteuid", Func, 0}, ++ {"Setfsgid", Func, 0}, ++ {"Setfsuid", Func, 0}, ++ {"Setgid", Func, 0}, ++ {"Setgroups", Func, 0}, ++ {"Sethostname", Func, 0}, ++ {"Setlogin", Func, 0}, ++ {"Setpgid", Func, 0}, ++ {"Setpriority", Func, 0}, ++ {"Setprivexec", Func, 0}, ++ {"Setregid", Func, 0}, ++ {"Setresgid", Func, 0}, ++ {"Setresuid", Func, 0}, ++ {"Setreuid", Func, 0}, ++ {"Setrlimit", Func, 0}, ++ {"Setsid", Func, 0}, ++ {"Setsockopt", Func, 0}, ++ {"SetsockoptByte", Func, 0}, ++ {"SetsockoptICMPv6Filter", Func, 2}, ++ {"SetsockoptIPMreq", Func, 0}, ++ {"SetsockoptIPMreqn", Func, 0}, ++ {"SetsockoptIPv6Mreq", Func, 0}, ++ {"SetsockoptInet4Addr", Func, 0}, ++ {"SetsockoptInt", Func, 0}, ++ {"SetsockoptLinger", Func, 0}, ++ {"SetsockoptString", Func, 0}, ++ {"SetsockoptTimeval", Func, 0}, ++ {"Settimeofday", Func, 0}, ++ {"Setuid", Func, 0}, ++ {"Setxattr", Func, 1}, ++ {"Shutdown", Func, 0}, ++ {"SidTypeAlias", Const, 0}, ++ {"SidTypeComputer", Const, 0}, ++ {"SidTypeDeletedAccount", Const, 0}, ++ {"SidTypeDomain", Const, 0}, ++ {"SidTypeGroup", Const, 0}, ++ {"SidTypeInvalid", Const, 0}, ++ {"SidTypeLabel", Const, 0}, ++ {"SidTypeUnknown", Const, 0}, ++ {"SidTypeUser", Const, 0}, ++ {"SidTypeWellKnownGroup", Const, 0}, ++ {"Signal", Type, 0}, ++ {"SizeofBpfHdr", Const, 0}, ++ {"SizeofBpfInsn", Const, 0}, ++ {"SizeofBpfProgram", Const, 0}, ++ {"SizeofBpfStat", Const, 0}, ++ {"SizeofBpfVersion", Const, 0}, ++ {"SizeofBpfZbuf", Const, 0}, ++ {"SizeofBpfZbufHeader", Const, 0}, ++ {"SizeofCmsghdr", Const, 0}, ++ {"SizeofICMPv6Filter", Const, 2}, ++ {"SizeofIPMreq", Const, 0}, ++ {"SizeofIPMreqn", Const, 0}, ++ {"SizeofIPv6MTUInfo", Const, 2}, ++ {"SizeofIPv6Mreq", Const, 0}, ++ {"SizeofIfAddrmsg", Const, 0}, ++ {"SizeofIfAnnounceMsghdr", Const, 1}, ++ {"SizeofIfData", Const, 0}, ++ {"SizeofIfInfomsg", Const, 0}, ++ {"SizeofIfMsghdr", Const, 0}, ++ {"SizeofIfaMsghdr", Const, 0}, ++ {"SizeofIfmaMsghdr", Const, 0}, ++ {"SizeofIfmaMsghdr2", Const, 0}, ++ {"SizeofInet4Pktinfo", Const, 0}, ++ {"SizeofInet6Pktinfo", Const, 0}, ++ {"SizeofInotifyEvent", Const, 0}, ++ {"SizeofLinger", Const, 0}, ++ {"SizeofMsghdr", Const, 0}, ++ {"SizeofNlAttr", Const, 0}, ++ {"SizeofNlMsgerr", Const, 0}, ++ {"SizeofNlMsghdr", Const, 0}, ++ {"SizeofRtAttr", Const, 0}, ++ {"SizeofRtGenmsg", Const, 0}, ++ {"SizeofRtMetrics", Const, 0}, ++ {"SizeofRtMsg", Const, 0}, ++ {"SizeofRtMsghdr", Const, 0}, ++ {"SizeofRtNexthop", Const, 0}, ++ {"SizeofSockFilter", Const, 0}, ++ {"SizeofSockFprog", Const, 0}, ++ {"SizeofSockaddrAny", Const, 0}, ++ {"SizeofSockaddrDatalink", Const, 0}, ++ {"SizeofSockaddrInet4", Const, 0}, ++ {"SizeofSockaddrInet6", Const, 0}, ++ {"SizeofSockaddrLinklayer", Const, 0}, ++ {"SizeofSockaddrNetlink", Const, 0}, ++ {"SizeofSockaddrUnix", Const, 0}, ++ {"SizeofTCPInfo", Const, 1}, ++ {"SizeofUcred", Const, 0}, ++ {"SlicePtrFromStrings", Func, 1}, ++ {"SockFilter", Type, 0}, ++ {"SockFilter.Code", Field, 0}, ++ {"SockFilter.Jf", Field, 0}, ++ {"SockFilter.Jt", Field, 0}, ++ {"SockFilter.K", Field, 0}, ++ {"SockFprog", Type, 0}, ++ {"SockFprog.Filter", Field, 0}, ++ {"SockFprog.Len", Field, 0}, ++ {"SockFprog.Pad_cgo_0", Field, 0}, ++ {"Sockaddr", Type, 0}, ++ {"SockaddrDatalink", Type, 0}, ++ {"SockaddrDatalink.Alen", Field, 0}, ++ {"SockaddrDatalink.Data", Field, 0}, ++ {"SockaddrDatalink.Family", Field, 0}, ++ {"SockaddrDatalink.Index", Field, 0}, ++ {"SockaddrDatalink.Len", Field, 0}, ++ {"SockaddrDatalink.Nlen", Field, 0}, ++ {"SockaddrDatalink.Slen", Field, 0}, ++ {"SockaddrDatalink.Type", Field, 0}, ++ {"SockaddrGen", Type, 0}, ++ {"SockaddrInet4", Type, 0}, ++ {"SockaddrInet4.Addr", Field, 0}, ++ {"SockaddrInet4.Port", Field, 0}, ++ {"SockaddrInet6", Type, 0}, ++ {"SockaddrInet6.Addr", Field, 0}, ++ {"SockaddrInet6.Port", Field, 0}, ++ {"SockaddrInet6.ZoneId", Field, 0}, ++ {"SockaddrLinklayer", Type, 0}, ++ {"SockaddrLinklayer.Addr", Field, 0}, ++ {"SockaddrLinklayer.Halen", Field, 0}, ++ {"SockaddrLinklayer.Hatype", Field, 0}, ++ {"SockaddrLinklayer.Ifindex", Field, 0}, ++ {"SockaddrLinklayer.Pkttype", Field, 0}, ++ {"SockaddrLinklayer.Protocol", Field, 0}, ++ {"SockaddrNetlink", Type, 0}, ++ {"SockaddrNetlink.Family", Field, 0}, ++ {"SockaddrNetlink.Groups", Field, 0}, ++ {"SockaddrNetlink.Pad", Field, 0}, ++ {"SockaddrNetlink.Pid", Field, 0}, ++ {"SockaddrUnix", Type, 0}, ++ {"SockaddrUnix.Name", Field, 0}, ++ {"Socket", Func, 0}, ++ {"SocketControlMessage", Type, 0}, ++ {"SocketControlMessage.Data", Field, 0}, ++ {"SocketControlMessage.Header", Field, 0}, ++ {"SocketDisableIPv6", Var, 0}, ++ {"Socketpair", Func, 0}, ++ {"Splice", Func, 0}, ++ {"StartProcess", Func, 0}, ++ {"StartupInfo", Type, 0}, ++ {"StartupInfo.Cb", Field, 0}, ++ {"StartupInfo.Desktop", Field, 0}, ++ {"StartupInfo.FillAttribute", Field, 0}, ++ {"StartupInfo.Flags", Field, 0}, ++ {"StartupInfo.ShowWindow", Field, 0}, ++ {"StartupInfo.StdErr", Field, 0}, ++ {"StartupInfo.StdInput", Field, 0}, ++ {"StartupInfo.StdOutput", Field, 0}, ++ {"StartupInfo.Title", Field, 0}, ++ {"StartupInfo.X", Field, 0}, ++ {"StartupInfo.XCountChars", Field, 0}, ++ {"StartupInfo.XSize", Field, 0}, ++ {"StartupInfo.Y", Field, 0}, ++ {"StartupInfo.YCountChars", Field, 0}, ++ {"StartupInfo.YSize", Field, 0}, ++ {"Stat", Func, 0}, ++ {"Stat_t", Type, 0}, ++ {"Stat_t.Atim", Field, 0}, ++ {"Stat_t.Atim_ext", Field, 12}, ++ {"Stat_t.Atimespec", Field, 0}, ++ {"Stat_t.Birthtimespec", Field, 0}, ++ {"Stat_t.Blksize", Field, 0}, ++ {"Stat_t.Blocks", Field, 0}, ++ {"Stat_t.Btim_ext", Field, 12}, ++ {"Stat_t.Ctim", Field, 0}, ++ {"Stat_t.Ctim_ext", Field, 12}, ++ {"Stat_t.Ctimespec", Field, 0}, ++ {"Stat_t.Dev", Field, 0}, ++ {"Stat_t.Flags", Field, 0}, ++ {"Stat_t.Gen", Field, 0}, ++ {"Stat_t.Gid", Field, 0}, ++ {"Stat_t.Ino", Field, 0}, ++ {"Stat_t.Lspare", Field, 0}, ++ {"Stat_t.Lspare0", Field, 2}, ++ {"Stat_t.Lspare1", Field, 2}, ++ {"Stat_t.Mode", Field, 0}, ++ {"Stat_t.Mtim", Field, 0}, ++ {"Stat_t.Mtim_ext", Field, 12}, ++ {"Stat_t.Mtimespec", Field, 0}, ++ {"Stat_t.Nlink", Field, 0}, ++ {"Stat_t.Pad_cgo_0", Field, 0}, ++ {"Stat_t.Pad_cgo_1", Field, 0}, ++ {"Stat_t.Pad_cgo_2", Field, 0}, ++ {"Stat_t.Padding0", Field, 12}, ++ {"Stat_t.Padding1", Field, 12}, ++ {"Stat_t.Qspare", Field, 0}, ++ {"Stat_t.Rdev", Field, 0}, ++ {"Stat_t.Size", Field, 0}, ++ {"Stat_t.Spare", Field, 2}, ++ {"Stat_t.Uid", Field, 0}, ++ {"Stat_t.X__pad0", Field, 0}, ++ {"Stat_t.X__pad1", Field, 0}, ++ {"Stat_t.X__pad2", Field, 0}, ++ {"Stat_t.X__st_birthtim", Field, 2}, ++ {"Stat_t.X__st_ino", Field, 0}, ++ {"Stat_t.X__unused", Field, 0}, ++ {"Statfs", Func, 0}, ++ {"Statfs_t", Type, 0}, ++ {"Statfs_t.Asyncreads", Field, 0}, ++ {"Statfs_t.Asyncwrites", Field, 0}, ++ {"Statfs_t.Bavail", Field, 0}, ++ {"Statfs_t.Bfree", Field, 0}, ++ {"Statfs_t.Blocks", Field, 0}, ++ {"Statfs_t.Bsize", Field, 0}, ++ {"Statfs_t.Charspare", Field, 0}, ++ {"Statfs_t.F_asyncreads", Field, 2}, ++ {"Statfs_t.F_asyncwrites", Field, 2}, ++ {"Statfs_t.F_bavail", Field, 2}, ++ {"Statfs_t.F_bfree", Field, 2}, ++ {"Statfs_t.F_blocks", Field, 2}, ++ {"Statfs_t.F_bsize", Field, 2}, ++ {"Statfs_t.F_ctime", Field, 2}, ++ {"Statfs_t.F_favail", Field, 2}, ++ {"Statfs_t.F_ffree", Field, 2}, ++ {"Statfs_t.F_files", Field, 2}, ++ {"Statfs_t.F_flags", Field, 2}, ++ {"Statfs_t.F_fsid", Field, 2}, ++ {"Statfs_t.F_fstypename", Field, 2}, ++ {"Statfs_t.F_iosize", Field, 2}, ++ {"Statfs_t.F_mntfromname", Field, 2}, ++ {"Statfs_t.F_mntfromspec", Field, 3}, ++ {"Statfs_t.F_mntonname", Field, 2}, ++ {"Statfs_t.F_namemax", Field, 2}, ++ {"Statfs_t.F_owner", Field, 2}, ++ {"Statfs_t.F_spare", Field, 2}, ++ {"Statfs_t.F_syncreads", Field, 2}, ++ {"Statfs_t.F_syncwrites", Field, 2}, ++ {"Statfs_t.Ffree", Field, 0}, ++ {"Statfs_t.Files", Field, 0}, ++ {"Statfs_t.Flags", Field, 0}, ++ {"Statfs_t.Frsize", Field, 0}, ++ {"Statfs_t.Fsid", Field, 0}, ++ {"Statfs_t.Fssubtype", Field, 0}, ++ {"Statfs_t.Fstypename", Field, 0}, ++ {"Statfs_t.Iosize", Field, 0}, ++ {"Statfs_t.Mntfromname", Field, 0}, ++ {"Statfs_t.Mntonname", Field, 0}, ++ {"Statfs_t.Mount_info", Field, 2}, ++ {"Statfs_t.Namelen", Field, 0}, ++ {"Statfs_t.Namemax", Field, 0}, ++ {"Statfs_t.Owner", Field, 0}, ++ {"Statfs_t.Pad_cgo_0", Field, 0}, ++ {"Statfs_t.Pad_cgo_1", Field, 2}, ++ {"Statfs_t.Reserved", Field, 0}, ++ {"Statfs_t.Spare", Field, 0}, ++ {"Statfs_t.Syncreads", Field, 0}, ++ {"Statfs_t.Syncwrites", Field, 0}, ++ {"Statfs_t.Type", Field, 0}, ++ {"Statfs_t.Version", Field, 0}, ++ {"Stderr", Var, 0}, ++ {"Stdin", Var, 0}, ++ {"Stdout", Var, 0}, ++ {"StringBytePtr", Func, 0}, ++ {"StringByteSlice", Func, 0}, ++ {"StringSlicePtr", Func, 0}, ++ {"StringToSid", Func, 0}, ++ {"StringToUTF16", Func, 0}, ++ {"StringToUTF16Ptr", Func, 0}, ++ {"Symlink", Func, 0}, ++ {"Sync", Func, 0}, ++ {"SyncFileRange", Func, 0}, ++ {"SysProcAttr", Type, 0}, ++ {"SysProcAttr.AdditionalInheritedHandles", Field, 17}, ++ {"SysProcAttr.AmbientCaps", Field, 9}, ++ {"SysProcAttr.CgroupFD", Field, 20}, ++ {"SysProcAttr.Chroot", Field, 0}, ++ {"SysProcAttr.Cloneflags", Field, 2}, ++ {"SysProcAttr.CmdLine", Field, 0}, ++ {"SysProcAttr.CreationFlags", Field, 1}, ++ {"SysProcAttr.Credential", Field, 0}, ++ {"SysProcAttr.Ctty", Field, 1}, ++ {"SysProcAttr.Foreground", Field, 5}, ++ {"SysProcAttr.GidMappings", Field, 4}, ++ {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5}, ++ {"SysProcAttr.HideWindow", Field, 0}, ++ {"SysProcAttr.Jail", Field, 21}, ++ {"SysProcAttr.NoInheritHandles", Field, 16}, ++ {"SysProcAttr.Noctty", Field, 0}, ++ {"SysProcAttr.ParentProcess", Field, 17}, ++ {"SysProcAttr.Pdeathsig", Field, 0}, ++ {"SysProcAttr.Pgid", Field, 5}, ++ {"SysProcAttr.PidFD", Field, 22}, ++ {"SysProcAttr.ProcessAttributes", Field, 13}, ++ {"SysProcAttr.Ptrace", Field, 0}, ++ {"SysProcAttr.Setctty", Field, 0}, ++ {"SysProcAttr.Setpgid", Field, 0}, ++ {"SysProcAttr.Setsid", Field, 0}, ++ {"SysProcAttr.ThreadAttributes", Field, 13}, ++ {"SysProcAttr.Token", Field, 10}, ++ {"SysProcAttr.UidMappings", Field, 4}, ++ {"SysProcAttr.Unshareflags", Field, 7}, ++ {"SysProcAttr.UseCgroupFD", Field, 20}, ++ {"SysProcIDMap", Type, 4}, ++ {"SysProcIDMap.ContainerID", Field, 4}, ++ {"SysProcIDMap.HostID", Field, 4}, ++ {"SysProcIDMap.Size", Field, 4}, ++ {"Syscall", Func, 0}, ++ {"Syscall12", Func, 0}, ++ {"Syscall15", Func, 0}, ++ {"Syscall18", Func, 12}, ++ {"Syscall6", Func, 0}, ++ {"Syscall9", Func, 0}, ++ {"SyscallN", Func, 18}, ++ {"Sysctl", Func, 0}, ++ {"SysctlUint32", Func, 0}, ++ {"Sysctlnode", Type, 2}, ++ {"Sysctlnode.Flags", Field, 2}, ++ {"Sysctlnode.Name", Field, 2}, ++ {"Sysctlnode.Num", Field, 2}, ++ {"Sysctlnode.Un", Field, 2}, ++ {"Sysctlnode.Ver", Field, 2}, ++ {"Sysctlnode.X__rsvd", Field, 2}, ++ {"Sysctlnode.X_sysctl_desc", Field, 2}, ++ {"Sysctlnode.X_sysctl_func", Field, 2}, ++ {"Sysctlnode.X_sysctl_parent", Field, 2}, ++ {"Sysctlnode.X_sysctl_size", Field, 2}, ++ {"Sysinfo", Func, 0}, ++ {"Sysinfo_t", Type, 0}, ++ {"Sysinfo_t.Bufferram", Field, 0}, ++ {"Sysinfo_t.Freehigh", Field, 0}, ++ {"Sysinfo_t.Freeram", Field, 0}, ++ {"Sysinfo_t.Freeswap", Field, 0}, ++ {"Sysinfo_t.Loads", Field, 0}, ++ {"Sysinfo_t.Pad", Field, 0}, ++ {"Sysinfo_t.Pad_cgo_0", Field, 0}, ++ {"Sysinfo_t.Pad_cgo_1", Field, 0}, ++ {"Sysinfo_t.Procs", Field, 0}, ++ {"Sysinfo_t.Sharedram", Field, 0}, ++ {"Sysinfo_t.Totalhigh", Field, 0}, ++ {"Sysinfo_t.Totalram", Field, 0}, ++ {"Sysinfo_t.Totalswap", Field, 0}, ++ {"Sysinfo_t.Unit", Field, 0}, ++ {"Sysinfo_t.Uptime", Field, 0}, ++ {"Sysinfo_t.X_f", Field, 0}, ++ {"Systemtime", Type, 0}, ++ {"Systemtime.Day", Field, 0}, ++ {"Systemtime.DayOfWeek", Field, 0}, ++ {"Systemtime.Hour", Field, 0}, ++ {"Systemtime.Milliseconds", Field, 0}, ++ {"Systemtime.Minute", Field, 0}, ++ {"Systemtime.Month", Field, 0}, ++ {"Systemtime.Second", Field, 0}, ++ {"Systemtime.Year", Field, 0}, ++ {"TCGETS", Const, 0}, ++ {"TCIFLUSH", Const, 1}, ++ {"TCIOFLUSH", Const, 1}, ++ {"TCOFLUSH", Const, 1}, ++ {"TCPInfo", Type, 1}, ++ {"TCPInfo.Advmss", Field, 1}, ++ {"TCPInfo.Ato", Field, 1}, ++ {"TCPInfo.Backoff", Field, 1}, ++ {"TCPInfo.Ca_state", Field, 1}, ++ {"TCPInfo.Fackets", Field, 1}, ++ {"TCPInfo.Last_ack_recv", Field, 1}, ++ {"TCPInfo.Last_ack_sent", Field, 1}, ++ {"TCPInfo.Last_data_recv", Field, 1}, ++ {"TCPInfo.Last_data_sent", Field, 1}, ++ {"TCPInfo.Lost", Field, 1}, ++ {"TCPInfo.Options", Field, 1}, ++ {"TCPInfo.Pad_cgo_0", Field, 1}, ++ {"TCPInfo.Pmtu", Field, 1}, ++ {"TCPInfo.Probes", Field, 1}, ++ {"TCPInfo.Rcv_mss", Field, 1}, ++ {"TCPInfo.Rcv_rtt", Field, 1}, ++ {"TCPInfo.Rcv_space", Field, 1}, ++ {"TCPInfo.Rcv_ssthresh", Field, 1}, ++ {"TCPInfo.Reordering", Field, 1}, ++ {"TCPInfo.Retrans", Field, 1}, ++ {"TCPInfo.Retransmits", Field, 1}, ++ {"TCPInfo.Rto", Field, 1}, ++ {"TCPInfo.Rtt", Field, 1}, ++ {"TCPInfo.Rttvar", Field, 1}, ++ {"TCPInfo.Sacked", Field, 1}, ++ {"TCPInfo.Snd_cwnd", Field, 1}, ++ {"TCPInfo.Snd_mss", Field, 1}, ++ {"TCPInfo.Snd_ssthresh", Field, 1}, ++ {"TCPInfo.State", Field, 1}, ++ {"TCPInfo.Total_retrans", Field, 1}, ++ {"TCPInfo.Unacked", Field, 1}, ++ {"TCPKeepalive", Type, 3}, ++ {"TCPKeepalive.Interval", Field, 3}, ++ {"TCPKeepalive.OnOff", Field, 3}, ++ {"TCPKeepalive.Time", Field, 3}, ++ {"TCP_CA_NAME_MAX", Const, 0}, ++ {"TCP_CONGCTL", Const, 1}, ++ {"TCP_CONGESTION", Const, 0}, ++ {"TCP_CONNECTIONTIMEOUT", Const, 0}, ++ {"TCP_CORK", Const, 0}, ++ {"TCP_DEFER_ACCEPT", Const, 0}, ++ {"TCP_ENABLE_ECN", Const, 16}, ++ {"TCP_INFO", Const, 0}, ++ {"TCP_KEEPALIVE", Const, 0}, ++ {"TCP_KEEPCNT", Const, 0}, ++ {"TCP_KEEPIDLE", Const, 0}, ++ {"TCP_KEEPINIT", Const, 1}, ++ {"TCP_KEEPINTVL", Const, 0}, ++ {"TCP_LINGER2", Const, 0}, ++ {"TCP_MAXBURST", Const, 0}, ++ {"TCP_MAXHLEN", Const, 0}, ++ {"TCP_MAXOLEN", Const, 0}, ++ {"TCP_MAXSEG", Const, 0}, ++ {"TCP_MAXWIN", Const, 0}, ++ {"TCP_MAX_SACK", Const, 0}, ++ {"TCP_MAX_WINSHIFT", Const, 0}, ++ {"TCP_MD5SIG", Const, 0}, ++ {"TCP_MD5SIG_MAXKEYLEN", Const, 0}, ++ {"TCP_MINMSS", Const, 0}, ++ {"TCP_MINMSSOVERLOAD", Const, 0}, ++ {"TCP_MSS", Const, 0}, ++ {"TCP_NODELAY", Const, 0}, ++ {"TCP_NOOPT", Const, 0}, ++ {"TCP_NOPUSH", Const, 0}, ++ {"TCP_NOTSENT_LOWAT", Const, 16}, ++ {"TCP_NSTATES", Const, 1}, ++ {"TCP_QUICKACK", Const, 0}, ++ {"TCP_RXT_CONNDROPTIME", Const, 0}, ++ {"TCP_RXT_FINDROP", Const, 0}, ++ {"TCP_SACK_ENABLE", Const, 1}, ++ {"TCP_SENDMOREACKS", Const, 16}, ++ {"TCP_SYNCNT", Const, 0}, ++ {"TCP_VENDOR", Const, 3}, ++ {"TCP_WINDOW_CLAMP", Const, 0}, ++ {"TCSAFLUSH", Const, 1}, ++ {"TCSETS", Const, 0}, ++ {"TF_DISCONNECT", Const, 0}, ++ {"TF_REUSE_SOCKET", Const, 0}, ++ {"TF_USE_DEFAULT_WORKER", Const, 0}, ++ {"TF_USE_KERNEL_APC", Const, 0}, ++ {"TF_USE_SYSTEM_THREAD", Const, 0}, ++ {"TF_WRITE_BEHIND", Const, 0}, ++ {"TH32CS_INHERIT", Const, 4}, ++ {"TH32CS_SNAPALL", Const, 4}, ++ {"TH32CS_SNAPHEAPLIST", Const, 4}, ++ {"TH32CS_SNAPMODULE", Const, 4}, ++ {"TH32CS_SNAPMODULE32", Const, 4}, ++ {"TH32CS_SNAPPROCESS", Const, 4}, ++ {"TH32CS_SNAPTHREAD", Const, 4}, ++ {"TIME_ZONE_ID_DAYLIGHT", Const, 0}, ++ {"TIME_ZONE_ID_STANDARD", Const, 0}, ++ {"TIME_ZONE_ID_UNKNOWN", Const, 0}, ++ {"TIOCCBRK", Const, 0}, ++ {"TIOCCDTR", Const, 0}, ++ {"TIOCCONS", Const, 0}, ++ {"TIOCDCDTIMESTAMP", Const, 0}, ++ {"TIOCDRAIN", Const, 0}, ++ {"TIOCDSIMICROCODE", Const, 0}, ++ {"TIOCEXCL", Const, 0}, ++ {"TIOCEXT", Const, 0}, ++ {"TIOCFLAG_CDTRCTS", Const, 1}, ++ {"TIOCFLAG_CLOCAL", Const, 1}, ++ {"TIOCFLAG_CRTSCTS", Const, 1}, ++ {"TIOCFLAG_MDMBUF", Const, 1}, ++ {"TIOCFLAG_PPS", Const, 1}, ++ {"TIOCFLAG_SOFTCAR", Const, 1}, ++ {"TIOCFLUSH", Const, 0}, ++ {"TIOCGDEV", Const, 0}, ++ {"TIOCGDRAINWAIT", Const, 0}, ++ {"TIOCGETA", Const, 0}, ++ {"TIOCGETD", Const, 0}, ++ {"TIOCGFLAGS", Const, 1}, ++ {"TIOCGICOUNT", Const, 0}, ++ {"TIOCGLCKTRMIOS", Const, 0}, ++ {"TIOCGLINED", Const, 1}, ++ {"TIOCGPGRP", Const, 0}, ++ {"TIOCGPTN", Const, 0}, ++ {"TIOCGQSIZE", Const, 1}, ++ {"TIOCGRANTPT", Const, 1}, ++ {"TIOCGRS485", Const, 0}, ++ {"TIOCGSERIAL", Const, 0}, ++ {"TIOCGSID", Const, 0}, ++ {"TIOCGSIZE", Const, 1}, ++ {"TIOCGSOFTCAR", Const, 0}, ++ {"TIOCGTSTAMP", Const, 1}, ++ {"TIOCGWINSZ", Const, 0}, ++ {"TIOCINQ", Const, 0}, ++ {"TIOCIXOFF", Const, 0}, ++ {"TIOCIXON", Const, 0}, ++ {"TIOCLINUX", Const, 0}, ++ {"TIOCMBIC", Const, 0}, ++ {"TIOCMBIS", Const, 0}, ++ {"TIOCMGDTRWAIT", Const, 0}, ++ {"TIOCMGET", Const, 0}, ++ {"TIOCMIWAIT", Const, 0}, ++ {"TIOCMODG", Const, 0}, ++ {"TIOCMODS", Const, 0}, ++ {"TIOCMSDTRWAIT", Const, 0}, ++ {"TIOCMSET", Const, 0}, ++ {"TIOCM_CAR", Const, 0}, ++ {"TIOCM_CD", Const, 0}, ++ {"TIOCM_CTS", Const, 0}, ++ {"TIOCM_DCD", Const, 0}, ++ {"TIOCM_DSR", Const, 0}, ++ {"TIOCM_DTR", Const, 0}, ++ {"TIOCM_LE", Const, 0}, ++ {"TIOCM_RI", Const, 0}, ++ {"TIOCM_RNG", Const, 0}, ++ {"TIOCM_RTS", Const, 0}, ++ {"TIOCM_SR", Const, 0}, ++ {"TIOCM_ST", Const, 0}, ++ {"TIOCNOTTY", Const, 0}, ++ {"TIOCNXCL", Const, 0}, ++ {"TIOCOUTQ", Const, 0}, ++ {"TIOCPKT", Const, 0}, ++ {"TIOCPKT_DATA", Const, 0}, ++ {"TIOCPKT_DOSTOP", Const, 0}, ++ {"TIOCPKT_FLUSHREAD", Const, 0}, ++ {"TIOCPKT_FLUSHWRITE", Const, 0}, ++ {"TIOCPKT_IOCTL", Const, 0}, ++ {"TIOCPKT_NOSTOP", Const, 0}, ++ {"TIOCPKT_START", Const, 0}, ++ {"TIOCPKT_STOP", Const, 0}, ++ {"TIOCPTMASTER", Const, 0}, ++ {"TIOCPTMGET", Const, 1}, ++ {"TIOCPTSNAME", Const, 1}, ++ {"TIOCPTYGNAME", Const, 0}, ++ {"TIOCPTYGRANT", Const, 0}, ++ {"TIOCPTYUNLK", Const, 0}, ++ {"TIOCRCVFRAME", Const, 1}, ++ {"TIOCREMOTE", Const, 0}, ++ {"TIOCSBRK", Const, 0}, ++ {"TIOCSCONS", Const, 0}, ++ {"TIOCSCTTY", Const, 0}, ++ {"TIOCSDRAINWAIT", Const, 0}, ++ {"TIOCSDTR", Const, 0}, ++ {"TIOCSERCONFIG", Const, 0}, ++ {"TIOCSERGETLSR", Const, 0}, ++ {"TIOCSERGETMULTI", Const, 0}, ++ {"TIOCSERGSTRUCT", Const, 0}, ++ {"TIOCSERGWILD", Const, 0}, ++ {"TIOCSERSETMULTI", Const, 0}, ++ {"TIOCSERSWILD", Const, 0}, ++ {"TIOCSER_TEMT", Const, 0}, ++ {"TIOCSETA", Const, 0}, ++ {"TIOCSETAF", Const, 0}, ++ {"TIOCSETAW", Const, 0}, ++ {"TIOCSETD", Const, 0}, ++ {"TIOCSFLAGS", Const, 1}, ++ {"TIOCSIG", Const, 0}, ++ {"TIOCSLCKTRMIOS", Const, 0}, ++ {"TIOCSLINED", Const, 1}, ++ {"TIOCSPGRP", Const, 0}, ++ {"TIOCSPTLCK", Const, 0}, ++ {"TIOCSQSIZE", Const, 1}, ++ {"TIOCSRS485", Const, 0}, ++ {"TIOCSSERIAL", Const, 0}, ++ {"TIOCSSIZE", Const, 1}, ++ {"TIOCSSOFTCAR", Const, 0}, ++ {"TIOCSTART", Const, 0}, ++ {"TIOCSTAT", Const, 0}, ++ {"TIOCSTI", Const, 0}, ++ {"TIOCSTOP", Const, 0}, ++ {"TIOCSTSTAMP", Const, 1}, ++ {"TIOCSWINSZ", Const, 0}, ++ {"TIOCTIMESTAMP", Const, 0}, ++ {"TIOCUCNTL", Const, 0}, ++ {"TIOCVHANGUP", Const, 0}, ++ {"TIOCXMTFRAME", Const, 1}, ++ {"TOKEN_ADJUST_DEFAULT", Const, 0}, ++ {"TOKEN_ADJUST_GROUPS", Const, 0}, ++ {"TOKEN_ADJUST_PRIVILEGES", Const, 0}, ++ {"TOKEN_ADJUST_SESSIONID", Const, 11}, ++ {"TOKEN_ALL_ACCESS", Const, 0}, ++ {"TOKEN_ASSIGN_PRIMARY", Const, 0}, ++ {"TOKEN_DUPLICATE", Const, 0}, ++ {"TOKEN_EXECUTE", Const, 0}, ++ {"TOKEN_IMPERSONATE", Const, 0}, ++ {"TOKEN_QUERY", Const, 0}, ++ {"TOKEN_QUERY_SOURCE", Const, 0}, ++ {"TOKEN_READ", Const, 0}, ++ {"TOKEN_WRITE", Const, 0}, ++ {"TOSTOP", Const, 0}, ++ {"TRUNCATE_EXISTING", Const, 0}, ++ {"TUNATTACHFILTER", Const, 0}, ++ {"TUNDETACHFILTER", Const, 0}, ++ {"TUNGETFEATURES", Const, 0}, ++ {"TUNGETIFF", Const, 0}, ++ {"TUNGETSNDBUF", Const, 0}, ++ {"TUNGETVNETHDRSZ", Const, 0}, ++ {"TUNSETDEBUG", Const, 0}, ++ {"TUNSETGROUP", Const, 0}, ++ {"TUNSETIFF", Const, 0}, ++ {"TUNSETLINK", Const, 0}, ++ {"TUNSETNOCSUM", Const, 0}, ++ {"TUNSETOFFLOAD", Const, 0}, ++ {"TUNSETOWNER", Const, 0}, ++ {"TUNSETPERSIST", Const, 0}, ++ {"TUNSETSNDBUF", Const, 0}, ++ {"TUNSETTXFILTER", Const, 0}, ++ {"TUNSETVNETHDRSZ", Const, 0}, ++ {"Tee", Func, 0}, ++ {"TerminateProcess", Func, 0}, ++ {"Termios", Type, 0}, ++ {"Termios.Cc", Field, 0}, ++ {"Termios.Cflag", Field, 0}, ++ {"Termios.Iflag", Field, 0}, ++ {"Termios.Ispeed", Field, 0}, ++ {"Termios.Lflag", Field, 0}, ++ {"Termios.Line", Field, 0}, ++ {"Termios.Oflag", Field, 0}, ++ {"Termios.Ospeed", Field, 0}, ++ {"Termios.Pad_cgo_0", Field, 0}, ++ {"Tgkill", Func, 0}, ++ {"Time", Func, 0}, ++ {"Time_t", Type, 0}, ++ {"Times", Func, 0}, ++ {"Timespec", Type, 0}, ++ {"Timespec.Nsec", Field, 0}, ++ {"Timespec.Pad_cgo_0", Field, 2}, ++ {"Timespec.Sec", Field, 0}, ++ {"TimespecToNsec", Func, 0}, ++ {"Timeval", Type, 0}, ++ {"Timeval.Pad_cgo_0", Field, 0}, ++ {"Timeval.Sec", Field, 0}, ++ {"Timeval.Usec", Field, 0}, ++ {"Timeval32", Type, 0}, ++ {"Timeval32.Sec", Field, 0}, ++ {"Timeval32.Usec", Field, 0}, ++ {"TimevalToNsec", Func, 0}, ++ {"Timex", Type, 0}, ++ {"Timex.Calcnt", Field, 0}, ++ {"Timex.Constant", Field, 0}, ++ {"Timex.Errcnt", Field, 0}, ++ {"Timex.Esterror", Field, 0}, ++ {"Timex.Freq", Field, 0}, ++ {"Timex.Jitcnt", Field, 0}, ++ {"Timex.Jitter", Field, 0}, ++ {"Timex.Maxerror", Field, 0}, ++ {"Timex.Modes", Field, 0}, ++ {"Timex.Offset", Field, 0}, ++ {"Timex.Pad_cgo_0", Field, 0}, ++ {"Timex.Pad_cgo_1", Field, 0}, ++ {"Timex.Pad_cgo_2", Field, 0}, ++ {"Timex.Pad_cgo_3", Field, 0}, ++ {"Timex.Ppsfreq", Field, 0}, ++ {"Timex.Precision", Field, 0}, ++ {"Timex.Shift", Field, 0}, ++ {"Timex.Stabil", Field, 0}, ++ {"Timex.Status", Field, 0}, ++ {"Timex.Stbcnt", Field, 0}, ++ {"Timex.Tai", Field, 0}, ++ {"Timex.Tick", Field, 0}, ++ {"Timex.Time", Field, 0}, ++ {"Timex.Tolerance", Field, 0}, ++ {"Timezoneinformation", Type, 0}, ++ {"Timezoneinformation.Bias", Field, 0}, ++ {"Timezoneinformation.DaylightBias", Field, 0}, ++ {"Timezoneinformation.DaylightDate", Field, 0}, ++ {"Timezoneinformation.DaylightName", Field, 0}, ++ {"Timezoneinformation.StandardBias", Field, 0}, ++ {"Timezoneinformation.StandardDate", Field, 0}, ++ {"Timezoneinformation.StandardName", Field, 0}, ++ {"Tms", Type, 0}, ++ {"Tms.Cstime", Field, 0}, ++ {"Tms.Cutime", Field, 0}, ++ {"Tms.Stime", Field, 0}, ++ {"Tms.Utime", Field, 0}, ++ {"Token", Type, 0}, ++ {"TokenAccessInformation", Const, 0}, ++ {"TokenAuditPolicy", Const, 0}, ++ {"TokenDefaultDacl", Const, 0}, ++ {"TokenElevation", Const, 0}, ++ {"TokenElevationType", Const, 0}, ++ {"TokenGroups", Const, 0}, ++ {"TokenGroupsAndPrivileges", Const, 0}, ++ {"TokenHasRestrictions", Const, 0}, ++ {"TokenImpersonationLevel", Const, 0}, ++ {"TokenIntegrityLevel", Const, 0}, ++ {"TokenLinkedToken", Const, 0}, ++ {"TokenLogonSid", Const, 0}, ++ {"TokenMandatoryPolicy", Const, 0}, ++ {"TokenOrigin", Const, 0}, ++ {"TokenOwner", Const, 0}, ++ {"TokenPrimaryGroup", Const, 0}, ++ {"TokenPrivileges", Const, 0}, ++ {"TokenRestrictedSids", Const, 0}, ++ {"TokenSandBoxInert", Const, 0}, ++ {"TokenSessionId", Const, 0}, ++ {"TokenSessionReference", Const, 0}, ++ {"TokenSource", Const, 0}, ++ {"TokenStatistics", Const, 0}, ++ {"TokenType", Const, 0}, ++ {"TokenUIAccess", Const, 0}, ++ {"TokenUser", Const, 0}, ++ {"TokenVirtualizationAllowed", Const, 0}, ++ {"TokenVirtualizationEnabled", Const, 0}, ++ {"Tokenprimarygroup", Type, 0}, ++ {"Tokenprimarygroup.PrimaryGroup", Field, 0}, ++ {"Tokenuser", Type, 0}, ++ {"Tokenuser.User", Field, 0}, ++ {"TranslateAccountName", Func, 0}, ++ {"TranslateName", Func, 0}, ++ {"TransmitFile", Func, 0}, ++ {"TransmitFileBuffers", Type, 0}, ++ {"TransmitFileBuffers.Head", Field, 0}, ++ {"TransmitFileBuffers.HeadLength", Field, 0}, ++ {"TransmitFileBuffers.Tail", Field, 0}, ++ {"TransmitFileBuffers.TailLength", Field, 0}, ++ {"Truncate", Func, 0}, ++ {"UNIX_PATH_MAX", Const, 12}, ++ {"USAGE_MATCH_TYPE_AND", Const, 0}, ++ {"USAGE_MATCH_TYPE_OR", Const, 0}, ++ {"UTF16FromString", Func, 1}, ++ {"UTF16PtrFromString", Func, 1}, ++ {"UTF16ToString", Func, 0}, ++ {"Ucred", Type, 0}, ++ {"Ucred.Gid", Field, 0}, ++ {"Ucred.Pid", Field, 0}, ++ {"Ucred.Uid", Field, 0}, ++ {"Umask", Func, 0}, ++ {"Uname", Func, 0}, ++ {"Undelete", Func, 0}, ++ {"UnixCredentials", Func, 0}, ++ {"UnixRights", Func, 0}, ++ {"Unlink", Func, 0}, ++ {"Unlinkat", Func, 0}, ++ {"UnmapViewOfFile", Func, 0}, ++ {"Unmount", Func, 0}, ++ {"Unsetenv", Func, 4}, ++ {"Unshare", Func, 0}, ++ {"UserInfo10", Type, 0}, ++ {"UserInfo10.Comment", Field, 0}, ++ {"UserInfo10.FullName", Field, 0}, ++ {"UserInfo10.Name", Field, 0}, ++ {"UserInfo10.UsrComment", Field, 0}, ++ {"Ustat", Func, 0}, ++ {"Ustat_t", Type, 0}, ++ {"Ustat_t.Fname", Field, 0}, ++ {"Ustat_t.Fpack", Field, 0}, ++ {"Ustat_t.Pad_cgo_0", Field, 0}, ++ {"Ustat_t.Pad_cgo_1", Field, 0}, ++ {"Ustat_t.Tfree", Field, 0}, ++ {"Ustat_t.Tinode", Field, 0}, ++ {"Utimbuf", Type, 0}, ++ {"Utimbuf.Actime", Field, 0}, ++ {"Utimbuf.Modtime", Field, 0}, ++ {"Utime", Func, 0}, ++ {"Utimes", Func, 0}, ++ {"UtimesNano", Func, 1}, ++ {"Utsname", Type, 0}, ++ {"Utsname.Domainname", Field, 0}, ++ {"Utsname.Machine", Field, 0}, ++ {"Utsname.Nodename", Field, 0}, ++ {"Utsname.Release", Field, 0}, ++ {"Utsname.Sysname", Field, 0}, ++ {"Utsname.Version", Field, 0}, ++ {"VDISCARD", Const, 0}, ++ {"VDSUSP", Const, 1}, ++ {"VEOF", Const, 0}, ++ {"VEOL", Const, 0}, ++ {"VEOL2", Const, 0}, ++ {"VERASE", Const, 0}, ++ {"VERASE2", Const, 1}, ++ {"VINTR", Const, 0}, ++ {"VKILL", Const, 0}, ++ {"VLNEXT", Const, 0}, ++ {"VMIN", Const, 0}, ++ {"VQUIT", Const, 0}, ++ {"VREPRINT", Const, 0}, ++ {"VSTART", Const, 0}, ++ {"VSTATUS", Const, 1}, ++ {"VSTOP", Const, 0}, ++ {"VSUSP", Const, 0}, ++ {"VSWTC", Const, 0}, ++ {"VT0", Const, 1}, ++ {"VT1", Const, 1}, ++ {"VTDLY", Const, 1}, ++ {"VTIME", Const, 0}, ++ {"VWERASE", Const, 0}, ++ {"VirtualLock", Func, 0}, ++ {"VirtualUnlock", Func, 0}, ++ {"WAIT_ABANDONED", Const, 0}, ++ {"WAIT_FAILED", Const, 0}, ++ {"WAIT_OBJECT_0", Const, 0}, ++ {"WAIT_TIMEOUT", Const, 0}, ++ {"WALL", Const, 0}, ++ {"WALLSIG", Const, 1}, ++ {"WALTSIG", Const, 1}, ++ {"WCLONE", Const, 0}, ++ {"WCONTINUED", Const, 0}, ++ {"WCOREFLAG", Const, 0}, ++ {"WEXITED", Const, 0}, ++ {"WLINUXCLONE", Const, 0}, ++ {"WNOHANG", Const, 0}, ++ {"WNOTHREAD", Const, 0}, ++ {"WNOWAIT", Const, 0}, ++ {"WNOZOMBIE", Const, 1}, ++ {"WOPTSCHECKED", Const, 1}, ++ {"WORDSIZE", Const, 0}, ++ {"WSABuf", Type, 0}, ++ {"WSABuf.Buf", Field, 0}, ++ {"WSABuf.Len", Field, 0}, ++ {"WSACleanup", Func, 0}, ++ {"WSADESCRIPTION_LEN", Const, 0}, ++ {"WSAData", Type, 0}, ++ {"WSAData.Description", Field, 0}, ++ {"WSAData.HighVersion", Field, 0}, ++ {"WSAData.MaxSockets", Field, 0}, ++ {"WSAData.MaxUdpDg", Field, 0}, ++ {"WSAData.SystemStatus", Field, 0}, ++ {"WSAData.VendorInfo", Field, 0}, ++ {"WSAData.Version", Field, 0}, ++ {"WSAEACCES", Const, 2}, ++ {"WSAECONNABORTED", Const, 9}, ++ {"WSAECONNRESET", Const, 3}, ++ {"WSAEnumProtocols", Func, 2}, ++ {"WSAID_CONNECTEX", Var, 1}, ++ {"WSAIoctl", Func, 0}, ++ {"WSAPROTOCOL_LEN", Const, 2}, ++ {"WSAProtocolChain", Type, 2}, ++ {"WSAProtocolChain.ChainEntries", Field, 2}, ++ {"WSAProtocolChain.ChainLen", Field, 2}, ++ {"WSAProtocolInfo", Type, 2}, ++ {"WSAProtocolInfo.AddressFamily", Field, 2}, ++ {"WSAProtocolInfo.CatalogEntryId", Field, 2}, ++ {"WSAProtocolInfo.MaxSockAddr", Field, 2}, ++ {"WSAProtocolInfo.MessageSize", Field, 2}, ++ {"WSAProtocolInfo.MinSockAddr", Field, 2}, ++ {"WSAProtocolInfo.NetworkByteOrder", Field, 2}, ++ {"WSAProtocolInfo.Protocol", Field, 2}, ++ {"WSAProtocolInfo.ProtocolChain", Field, 2}, ++ {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2}, ++ {"WSAProtocolInfo.ProtocolName", Field, 2}, ++ {"WSAProtocolInfo.ProviderFlags", Field, 2}, ++ {"WSAProtocolInfo.ProviderId", Field, 2}, ++ {"WSAProtocolInfo.ProviderReserved", Field, 2}, ++ {"WSAProtocolInfo.SecurityScheme", Field, 2}, ++ {"WSAProtocolInfo.ServiceFlags1", Field, 2}, ++ {"WSAProtocolInfo.ServiceFlags2", Field, 2}, ++ {"WSAProtocolInfo.ServiceFlags3", Field, 2}, ++ {"WSAProtocolInfo.ServiceFlags4", Field, 2}, ++ {"WSAProtocolInfo.SocketType", Field, 2}, ++ {"WSAProtocolInfo.Version", Field, 2}, ++ {"WSARecv", Func, 0}, ++ {"WSARecvFrom", Func, 0}, ++ {"WSASYS_STATUS_LEN", Const, 0}, ++ {"WSASend", Func, 0}, ++ {"WSASendTo", Func, 0}, ++ {"WSASendto", Func, 0}, ++ {"WSAStartup", Func, 0}, ++ {"WSTOPPED", Const, 0}, ++ {"WTRAPPED", Const, 1}, ++ {"WUNTRACED", Const, 0}, ++ {"Wait4", Func, 0}, ++ {"WaitForSingleObject", Func, 0}, ++ {"WaitStatus", Type, 0}, ++ {"WaitStatus.ExitCode", Field, 0}, ++ {"Win32FileAttributeData", Type, 0}, ++ {"Win32FileAttributeData.CreationTime", Field, 0}, ++ {"Win32FileAttributeData.FileAttributes", Field, 0}, ++ {"Win32FileAttributeData.FileSizeHigh", Field, 0}, ++ {"Win32FileAttributeData.FileSizeLow", Field, 0}, ++ {"Win32FileAttributeData.LastAccessTime", Field, 0}, ++ {"Win32FileAttributeData.LastWriteTime", Field, 0}, ++ {"Win32finddata", Type, 0}, ++ {"Win32finddata.AlternateFileName", Field, 0}, ++ {"Win32finddata.CreationTime", Field, 0}, ++ {"Win32finddata.FileAttributes", Field, 0}, ++ {"Win32finddata.FileName", Field, 0}, ++ {"Win32finddata.FileSizeHigh", Field, 0}, ++ {"Win32finddata.FileSizeLow", Field, 0}, ++ {"Win32finddata.LastAccessTime", Field, 0}, ++ {"Win32finddata.LastWriteTime", Field, 0}, ++ {"Win32finddata.Reserved0", Field, 0}, ++ {"Win32finddata.Reserved1", Field, 0}, ++ {"Write", Func, 0}, ++ {"WriteConsole", Func, 1}, ++ {"WriteFile", Func, 0}, ++ {"X509_ASN_ENCODING", Const, 0}, ++ {"XCASE", Const, 0}, ++ {"XP1_CONNECTIONLESS", Const, 2}, ++ {"XP1_CONNECT_DATA", Const, 2}, ++ {"XP1_DISCONNECT_DATA", Const, 2}, ++ {"XP1_EXPEDITED_DATA", Const, 2}, ++ {"XP1_GRACEFUL_CLOSE", Const, 2}, ++ {"XP1_GUARANTEED_DELIVERY", Const, 2}, ++ {"XP1_GUARANTEED_ORDER", Const, 2}, ++ {"XP1_IFS_HANDLES", Const, 2}, ++ {"XP1_MESSAGE_ORIENTED", Const, 2}, ++ {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2}, ++ {"XP1_MULTIPOINT_DATA_PLANE", Const, 2}, ++ {"XP1_PARTIAL_MESSAGE", Const, 2}, ++ {"XP1_PSEUDO_STREAM", Const, 2}, ++ {"XP1_QOS_SUPPORTED", Const, 2}, ++ {"XP1_SAN_SUPPORT_SDP", Const, 2}, ++ {"XP1_SUPPORT_BROADCAST", Const, 2}, ++ {"XP1_SUPPORT_MULTIPOINT", Const, 2}, ++ {"XP1_UNI_RECV", Const, 2}, ++ {"XP1_UNI_SEND", Const, 2}, ++ }, ++ "syscall/js": { ++ {"CopyBytesToGo", Func, 0}, ++ {"CopyBytesToJS", Func, 0}, ++ {"Error", Type, 0}, ++ {"Func", Type, 0}, ++ {"FuncOf", Func, 0}, ++ {"Global", Func, 0}, ++ {"Null", Func, 0}, ++ {"Type", Type, 0}, ++ {"TypeBoolean", Const, 0}, ++ {"TypeFunction", Const, 0}, ++ {"TypeNull", Const, 0}, ++ {"TypeNumber", Const, 0}, ++ {"TypeObject", Const, 0}, ++ {"TypeString", Const, 0}, ++ {"TypeSymbol", Const, 0}, ++ {"TypeUndefined", Const, 0}, ++ {"Undefined", Func, 0}, ++ {"Value", Type, 0}, ++ {"ValueError", Type, 0}, ++ {"ValueOf", Func, 0}, ++ }, ++ "testing": { ++ {"(*B).Cleanup", Method, 14}, ++ {"(*B).Elapsed", Method, 20}, ++ {"(*B).Error", Method, 0}, ++ {"(*B).Errorf", Method, 0}, ++ {"(*B).Fail", Method, 0}, ++ {"(*B).FailNow", Method, 0}, ++ {"(*B).Failed", Method, 0}, ++ {"(*B).Fatal", Method, 0}, ++ {"(*B).Fatalf", Method, 0}, ++ {"(*B).Helper", Method, 9}, ++ {"(*B).Log", Method, 0}, ++ {"(*B).Logf", Method, 0}, ++ {"(*B).Name", Method, 8}, ++ {"(*B).ReportAllocs", Method, 1}, ++ {"(*B).ReportMetric", Method, 13}, ++ {"(*B).ResetTimer", Method, 0}, ++ {"(*B).Run", Method, 7}, ++ {"(*B).RunParallel", Method, 3}, ++ {"(*B).SetBytes", Method, 0}, ++ {"(*B).SetParallelism", Method, 3}, ++ {"(*B).Setenv", Method, 17}, ++ {"(*B).Skip", Method, 1}, ++ {"(*B).SkipNow", Method, 1}, ++ {"(*B).Skipf", Method, 1}, ++ {"(*B).Skipped", Method, 1}, ++ {"(*B).StartTimer", Method, 0}, ++ {"(*B).StopTimer", Method, 0}, ++ {"(*B).TempDir", Method, 15}, ++ {"(*F).Add", Method, 18}, ++ {"(*F).Cleanup", Method, 18}, ++ {"(*F).Error", Method, 18}, ++ {"(*F).Errorf", Method, 18}, ++ {"(*F).Fail", Method, 18}, ++ {"(*F).FailNow", Method, 18}, ++ {"(*F).Failed", Method, 18}, ++ {"(*F).Fatal", Method, 18}, ++ {"(*F).Fatalf", Method, 18}, ++ {"(*F).Fuzz", Method, 18}, ++ {"(*F).Helper", Method, 18}, ++ {"(*F).Log", Method, 18}, ++ {"(*F).Logf", Method, 18}, ++ {"(*F).Name", Method, 18}, ++ {"(*F).Setenv", Method, 18}, ++ {"(*F).Skip", Method, 18}, ++ {"(*F).SkipNow", Method, 18}, ++ {"(*F).Skipf", Method, 18}, ++ {"(*F).Skipped", Method, 18}, ++ {"(*F).TempDir", Method, 18}, ++ {"(*M).Run", Method, 4}, ++ {"(*PB).Next", Method, 3}, ++ {"(*T).Cleanup", Method, 14}, ++ {"(*T).Deadline", Method, 15}, ++ {"(*T).Error", Method, 0}, ++ {"(*T).Errorf", Method, 0}, ++ {"(*T).Fail", Method, 0}, ++ {"(*T).FailNow", Method, 0}, ++ {"(*T).Failed", Method, 0}, ++ {"(*T).Fatal", Method, 0}, ++ {"(*T).Fatalf", Method, 0}, ++ {"(*T).Helper", Method, 9}, ++ {"(*T).Log", Method, 0}, ++ {"(*T).Logf", Method, 0}, ++ {"(*T).Name", Method, 8}, ++ {"(*T).Parallel", Method, 0}, ++ {"(*T).Run", Method, 7}, ++ {"(*T).Setenv", Method, 17}, ++ {"(*T).Skip", Method, 1}, ++ {"(*T).SkipNow", Method, 1}, ++ {"(*T).Skipf", Method, 1}, ++ {"(*T).Skipped", Method, 1}, ++ {"(*T).TempDir", Method, 15}, ++ {"(BenchmarkResult).AllocedBytesPerOp", Method, 1}, ++ {"(BenchmarkResult).AllocsPerOp", Method, 1}, ++ {"(BenchmarkResult).MemString", Method, 1}, ++ {"(BenchmarkResult).NsPerOp", Method, 0}, ++ {"(BenchmarkResult).String", Method, 0}, ++ {"AllocsPerRun", Func, 1}, ++ {"B", Type, 0}, ++ {"B.N", Field, 0}, ++ {"Benchmark", Func, 0}, ++ {"BenchmarkResult", Type, 0}, ++ {"BenchmarkResult.Bytes", Field, 0}, ++ {"BenchmarkResult.Extra", Field, 13}, ++ {"BenchmarkResult.MemAllocs", Field, 1}, ++ {"BenchmarkResult.MemBytes", Field, 1}, ++ {"BenchmarkResult.N", Field, 0}, ++ {"BenchmarkResult.T", Field, 0}, ++ {"Cover", Type, 2}, ++ {"Cover.Blocks", Field, 2}, ++ {"Cover.Counters", Field, 2}, ++ {"Cover.CoveredPackages", Field, 2}, ++ {"Cover.Mode", Field, 2}, ++ {"CoverBlock", Type, 2}, ++ {"CoverBlock.Col0", Field, 2}, ++ {"CoverBlock.Col1", Field, 2}, ++ {"CoverBlock.Line0", Field, 2}, ++ {"CoverBlock.Line1", Field, 2}, ++ {"CoverBlock.Stmts", Field, 2}, ++ {"CoverMode", Func, 8}, ++ {"Coverage", Func, 4}, ++ {"F", Type, 18}, ++ {"Init", Func, 13}, ++ {"InternalBenchmark", Type, 0}, ++ {"InternalBenchmark.F", Field, 0}, ++ {"InternalBenchmark.Name", Field, 0}, ++ {"InternalExample", Type, 0}, ++ {"InternalExample.F", Field, 0}, ++ {"InternalExample.Name", Field, 0}, ++ {"InternalExample.Output", Field, 0}, ++ {"InternalExample.Unordered", Field, 7}, ++ {"InternalFuzzTarget", Type, 18}, ++ {"InternalFuzzTarget.Fn", Field, 18}, ++ {"InternalFuzzTarget.Name", Field, 18}, ++ {"InternalTest", Type, 0}, ++ {"InternalTest.F", Field, 0}, ++ {"InternalTest.Name", Field, 0}, ++ {"M", Type, 4}, ++ {"Main", Func, 0}, ++ {"MainStart", Func, 4}, ++ {"PB", Type, 3}, ++ {"RegisterCover", Func, 2}, ++ {"RunBenchmarks", Func, 0}, ++ {"RunExamples", Func, 0}, ++ {"RunTests", Func, 0}, ++ {"Short", Func, 0}, ++ {"T", Type, 0}, ++ {"TB", Type, 2}, ++ {"Testing", Func, 21}, ++ {"Verbose", Func, 1}, ++ }, ++ "testing/fstest": { ++ {"(MapFS).Glob", Method, 16}, ++ {"(MapFS).Open", Method, 16}, ++ {"(MapFS).ReadDir", Method, 16}, ++ {"(MapFS).ReadFile", Method, 16}, ++ {"(MapFS).Stat", Method, 16}, ++ {"(MapFS).Sub", Method, 16}, ++ {"MapFS", Type, 16}, ++ {"MapFile", Type, 16}, ++ {"MapFile.Data", Field, 16}, ++ {"MapFile.ModTime", Field, 16}, ++ {"MapFile.Mode", Field, 16}, ++ {"MapFile.Sys", Field, 16}, ++ {"TestFS", Func, 16}, ++ }, ++ "testing/iotest": { ++ {"DataErrReader", Func, 0}, ++ {"ErrReader", Func, 16}, ++ {"ErrTimeout", Var, 0}, ++ {"HalfReader", Func, 0}, ++ {"NewReadLogger", Func, 0}, ++ {"NewWriteLogger", Func, 0}, ++ {"OneByteReader", Func, 0}, ++ {"TestReader", Func, 16}, ++ {"TimeoutReader", Func, 0}, ++ {"TruncateWriter", Func, 0}, ++ }, ++ "testing/quick": { ++ {"(*CheckEqualError).Error", Method, 0}, ++ {"(*CheckError).Error", Method, 0}, ++ {"(SetupError).Error", Method, 0}, ++ {"Check", Func, 0}, ++ {"CheckEqual", Func, 0}, ++ {"CheckEqualError", Type, 0}, ++ {"CheckEqualError.CheckError", Field, 0}, ++ {"CheckEqualError.Out1", Field, 0}, ++ {"CheckEqualError.Out2", Field, 0}, ++ {"CheckError", Type, 0}, ++ {"CheckError.Count", Field, 0}, ++ {"CheckError.In", Field, 0}, ++ {"Config", Type, 0}, ++ {"Config.MaxCount", Field, 0}, ++ {"Config.MaxCountScale", Field, 0}, ++ {"Config.Rand", Field, 0}, ++ {"Config.Values", Field, 0}, ++ {"Generator", Type, 0}, ++ {"SetupError", Type, 0}, ++ {"Value", Func, 0}, ++ }, ++ "testing/slogtest": { ++ {"Run", Func, 22}, ++ {"TestHandler", Func, 21}, ++ }, ++ "text/scanner": { ++ {"(*Position).IsValid", Method, 0}, ++ {"(*Scanner).Init", Method, 0}, ++ {"(*Scanner).IsValid", Method, 0}, ++ {"(*Scanner).Next", Method, 0}, ++ {"(*Scanner).Peek", Method, 0}, ++ {"(*Scanner).Pos", Method, 0}, ++ {"(*Scanner).Scan", Method, 0}, ++ {"(*Scanner).TokenText", Method, 0}, ++ {"(Position).String", Method, 0}, ++ {"(Scanner).String", Method, 0}, ++ {"Char", Const, 0}, ++ {"Comment", Const, 0}, ++ {"EOF", Const, 0}, ++ {"Float", Const, 0}, ++ {"GoTokens", Const, 0}, ++ {"GoWhitespace", Const, 0}, ++ {"Ident", Const, 0}, ++ {"Int", Const, 0}, ++ {"Position", Type, 0}, ++ {"Position.Column", Field, 0}, ++ {"Position.Filename", Field, 0}, ++ {"Position.Line", Field, 0}, ++ {"Position.Offset", Field, 0}, ++ {"RawString", Const, 0}, ++ {"ScanChars", Const, 0}, ++ {"ScanComments", Const, 0}, ++ {"ScanFloats", Const, 0}, ++ {"ScanIdents", Const, 0}, ++ {"ScanInts", Const, 0}, ++ {"ScanRawStrings", Const, 0}, ++ {"ScanStrings", Const, 0}, ++ {"Scanner", Type, 0}, ++ {"Scanner.Error", Field, 0}, ++ {"Scanner.ErrorCount", Field, 0}, ++ {"Scanner.IsIdentRune", Field, 4}, ++ {"Scanner.Mode", Field, 0}, ++ {"Scanner.Position", Field, 0}, ++ {"Scanner.Whitespace", Field, 0}, ++ {"SkipComments", Const, 0}, ++ {"String", Const, 0}, ++ {"TokenString", Func, 0}, ++ }, ++ "text/tabwriter": { ++ {"(*Writer).Flush", Method, 0}, ++ {"(*Writer).Init", Method, 0}, ++ {"(*Writer).Write", Method, 0}, ++ {"AlignRight", Const, 0}, ++ {"Debug", Const, 0}, ++ {"DiscardEmptyColumns", Const, 0}, ++ {"Escape", Const, 0}, ++ {"FilterHTML", Const, 0}, ++ {"NewWriter", Func, 0}, ++ {"StripEscape", Const, 0}, ++ {"TabIndent", Const, 0}, ++ {"Writer", Type, 0}, ++ }, ++ "text/template": { ++ {"(*Template).AddParseTree", Method, 0}, ++ {"(*Template).Clone", Method, 0}, ++ {"(*Template).DefinedTemplates", Method, 5}, ++ {"(*Template).Delims", Method, 0}, ++ {"(*Template).Execute", Method, 0}, ++ {"(*Template).ExecuteTemplate", Method, 0}, ++ {"(*Template).Funcs", Method, 0}, ++ {"(*Template).Lookup", Method, 0}, ++ {"(*Template).Name", Method, 0}, ++ {"(*Template).New", Method, 0}, ++ {"(*Template).Option", Method, 5}, ++ {"(*Template).Parse", Method, 0}, ++ {"(*Template).ParseFS", Method, 16}, ++ {"(*Template).ParseFiles", Method, 0}, ++ {"(*Template).ParseGlob", Method, 0}, ++ {"(*Template).Templates", Method, 0}, ++ {"(ExecError).Error", Method, 6}, ++ {"(ExecError).Unwrap", Method, 13}, ++ {"(Template).Copy", Method, 2}, ++ {"(Template).ErrorContext", Method, 1}, ++ {"ExecError", Type, 6}, ++ {"ExecError.Err", Field, 6}, ++ {"ExecError.Name", Field, 6}, ++ {"FuncMap", Type, 0}, ++ {"HTMLEscape", Func, 0}, ++ {"HTMLEscapeString", Func, 0}, ++ {"HTMLEscaper", Func, 0}, ++ {"IsTrue", Func, 6}, ++ {"JSEscape", Func, 0}, ++ {"JSEscapeString", Func, 0}, ++ {"JSEscaper", Func, 0}, ++ {"Must", Func, 0}, ++ {"New", Func, 0}, ++ {"ParseFS", Func, 16}, ++ {"ParseFiles", Func, 0}, ++ {"ParseGlob", Func, 0}, ++ {"Template", Type, 0}, ++ {"Template.Tree", Field, 0}, ++ {"URLQueryEscaper", Func, 0}, ++ }, ++ "text/template/parse": { ++ {"(*ActionNode).Copy", Method, 0}, ++ {"(*ActionNode).String", Method, 0}, ++ {"(*BoolNode).Copy", Method, 0}, ++ {"(*BoolNode).String", Method, 0}, ++ {"(*BranchNode).Copy", Method, 4}, ++ {"(*BranchNode).String", Method, 0}, ++ {"(*BreakNode).Copy", Method, 18}, ++ {"(*BreakNode).String", Method, 18}, ++ {"(*ChainNode).Add", Method, 1}, ++ {"(*ChainNode).Copy", Method, 1}, ++ {"(*ChainNode).String", Method, 1}, ++ {"(*CommandNode).Copy", Method, 0}, ++ {"(*CommandNode).String", Method, 0}, ++ {"(*CommentNode).Copy", Method, 16}, ++ {"(*CommentNode).String", Method, 16}, ++ {"(*ContinueNode).Copy", Method, 18}, ++ {"(*ContinueNode).String", Method, 18}, ++ {"(*DotNode).Copy", Method, 0}, ++ {"(*DotNode).String", Method, 0}, ++ {"(*DotNode).Type", Method, 0}, ++ {"(*FieldNode).Copy", Method, 0}, ++ {"(*FieldNode).String", Method, 0}, ++ {"(*IdentifierNode).Copy", Method, 0}, ++ {"(*IdentifierNode).SetPos", Method, 1}, ++ {"(*IdentifierNode).SetTree", Method, 4}, ++ {"(*IdentifierNode).String", Method, 0}, ++ {"(*IfNode).Copy", Method, 0}, ++ {"(*IfNode).String", Method, 0}, ++ {"(*ListNode).Copy", Method, 0}, ++ {"(*ListNode).CopyList", Method, 0}, ++ {"(*ListNode).String", Method, 0}, ++ {"(*NilNode).Copy", Method, 1}, ++ {"(*NilNode).String", Method, 1}, ++ {"(*NilNode).Type", Method, 1}, ++ {"(*NumberNode).Copy", Method, 0}, ++ {"(*NumberNode).String", Method, 0}, ++ {"(*PipeNode).Copy", Method, 0}, ++ {"(*PipeNode).CopyPipe", Method, 0}, ++ {"(*PipeNode).String", Method, 0}, ++ {"(*RangeNode).Copy", Method, 0}, ++ {"(*RangeNode).String", Method, 0}, ++ {"(*StringNode).Copy", Method, 0}, ++ {"(*StringNode).String", Method, 0}, ++ {"(*TemplateNode).Copy", Method, 0}, ++ {"(*TemplateNode).String", Method, 0}, ++ {"(*TextNode).Copy", Method, 0}, ++ {"(*TextNode).String", Method, 0}, ++ {"(*Tree).Copy", Method, 2}, ++ {"(*Tree).ErrorContext", Method, 1}, ++ {"(*Tree).Parse", Method, 0}, ++ {"(*VariableNode).Copy", Method, 0}, ++ {"(*VariableNode).String", Method, 0}, ++ {"(*WithNode).Copy", Method, 0}, ++ {"(*WithNode).String", Method, 0}, ++ {"(ActionNode).Position", Method, 1}, ++ {"(ActionNode).Type", Method, 0}, ++ {"(BoolNode).Position", Method, 1}, ++ {"(BoolNode).Type", Method, 0}, ++ {"(BranchNode).Position", Method, 1}, ++ {"(BranchNode).Type", Method, 0}, ++ {"(BreakNode).Position", Method, 18}, ++ {"(BreakNode).Type", Method, 18}, ++ {"(ChainNode).Position", Method, 1}, ++ {"(ChainNode).Type", Method, 1}, ++ {"(CommandNode).Position", Method, 1}, ++ {"(CommandNode).Type", Method, 0}, ++ {"(CommentNode).Position", Method, 16}, ++ {"(CommentNode).Type", Method, 16}, ++ {"(ContinueNode).Position", Method, 18}, ++ {"(ContinueNode).Type", Method, 18}, ++ {"(DotNode).Position", Method, 1}, ++ {"(FieldNode).Position", Method, 1}, ++ {"(FieldNode).Type", Method, 0}, ++ {"(IdentifierNode).Position", Method, 1}, ++ {"(IdentifierNode).Type", Method, 0}, ++ {"(IfNode).Position", Method, 1}, ++ {"(IfNode).Type", Method, 0}, ++ {"(ListNode).Position", Method, 1}, ++ {"(ListNode).Type", Method, 0}, ++ {"(NilNode).Position", Method, 1}, ++ {"(NodeType).Type", Method, 0}, ++ {"(NumberNode).Position", Method, 1}, ++ {"(NumberNode).Type", Method, 0}, ++ {"(PipeNode).Position", Method, 1}, ++ {"(PipeNode).Type", Method, 0}, ++ {"(Pos).Position", Method, 1}, ++ {"(RangeNode).Position", Method, 1}, ++ {"(RangeNode).Type", Method, 0}, ++ {"(StringNode).Position", Method, 1}, ++ {"(StringNode).Type", Method, 0}, ++ {"(TemplateNode).Position", Method, 1}, ++ {"(TemplateNode).Type", Method, 0}, ++ {"(TextNode).Position", Method, 1}, ++ {"(TextNode).Type", Method, 0}, ++ {"(VariableNode).Position", Method, 1}, ++ {"(VariableNode).Type", Method, 0}, ++ {"(WithNode).Position", Method, 1}, ++ {"(WithNode).Type", Method, 0}, ++ {"ActionNode", Type, 0}, ++ {"ActionNode.Line", Field, 0}, ++ {"ActionNode.NodeType", Field, 0}, ++ {"ActionNode.Pipe", Field, 0}, ++ {"ActionNode.Pos", Field, 1}, ++ {"BoolNode", Type, 0}, ++ {"BoolNode.NodeType", Field, 0}, ++ {"BoolNode.Pos", Field, 1}, ++ {"BoolNode.True", Field, 0}, ++ {"BranchNode", Type, 0}, ++ {"BranchNode.ElseList", Field, 0}, ++ {"BranchNode.Line", Field, 0}, ++ {"BranchNode.List", Field, 0}, ++ {"BranchNode.NodeType", Field, 0}, ++ {"BranchNode.Pipe", Field, 0}, ++ {"BranchNode.Pos", Field, 1}, ++ {"BreakNode", Type, 18}, ++ {"BreakNode.Line", Field, 18}, ++ {"BreakNode.NodeType", Field, 18}, ++ {"BreakNode.Pos", Field, 18}, ++ {"ChainNode", Type, 1}, ++ {"ChainNode.Field", Field, 1}, ++ {"ChainNode.Node", Field, 1}, ++ {"ChainNode.NodeType", Field, 1}, ++ {"ChainNode.Pos", Field, 1}, ++ {"CommandNode", Type, 0}, ++ {"CommandNode.Args", Field, 0}, ++ {"CommandNode.NodeType", Field, 0}, ++ {"CommandNode.Pos", Field, 1}, ++ {"CommentNode", Type, 16}, ++ {"CommentNode.NodeType", Field, 16}, ++ {"CommentNode.Pos", Field, 16}, ++ {"CommentNode.Text", Field, 16}, ++ {"ContinueNode", Type, 18}, ++ {"ContinueNode.Line", Field, 18}, ++ {"ContinueNode.NodeType", Field, 18}, ++ {"ContinueNode.Pos", Field, 18}, ++ {"DotNode", Type, 0}, ++ {"DotNode.NodeType", Field, 4}, ++ {"DotNode.Pos", Field, 1}, ++ {"FieldNode", Type, 0}, ++ {"FieldNode.Ident", Field, 0}, ++ {"FieldNode.NodeType", Field, 0}, ++ {"FieldNode.Pos", Field, 1}, ++ {"IdentifierNode", Type, 0}, ++ {"IdentifierNode.Ident", Field, 0}, ++ {"IdentifierNode.NodeType", Field, 0}, ++ {"IdentifierNode.Pos", Field, 1}, ++ {"IfNode", Type, 0}, ++ {"IfNode.BranchNode", Field, 0}, ++ {"IsEmptyTree", Func, 0}, ++ {"ListNode", Type, 0}, ++ {"ListNode.NodeType", Field, 0}, ++ {"ListNode.Nodes", Field, 0}, ++ {"ListNode.Pos", Field, 1}, ++ {"Mode", Type, 16}, ++ {"New", Func, 0}, ++ {"NewIdentifier", Func, 0}, ++ {"NilNode", Type, 1}, ++ {"NilNode.NodeType", Field, 4}, ++ {"NilNode.Pos", Field, 1}, ++ {"Node", Type, 0}, ++ {"NodeAction", Const, 0}, ++ {"NodeBool", Const, 0}, ++ {"NodeBreak", Const, 18}, ++ {"NodeChain", Const, 1}, ++ {"NodeCommand", Const, 0}, ++ {"NodeComment", Const, 16}, ++ {"NodeContinue", Const, 18}, ++ {"NodeDot", Const, 0}, ++ {"NodeField", Const, 0}, ++ {"NodeIdentifier", Const, 0}, ++ {"NodeIf", Const, 0}, ++ {"NodeList", Const, 0}, ++ {"NodeNil", Const, 1}, ++ {"NodeNumber", Const, 0}, ++ {"NodePipe", Const, 0}, ++ {"NodeRange", Const, 0}, ++ {"NodeString", Const, 0}, ++ {"NodeTemplate", Const, 0}, ++ {"NodeText", Const, 0}, ++ {"NodeType", Type, 0}, ++ {"NodeVariable", Const, 0}, ++ {"NodeWith", Const, 0}, ++ {"NumberNode", Type, 0}, ++ {"NumberNode.Complex128", Field, 0}, ++ {"NumberNode.Float64", Field, 0}, ++ {"NumberNode.Int64", Field, 0}, ++ {"NumberNode.IsComplex", Field, 0}, ++ {"NumberNode.IsFloat", Field, 0}, ++ {"NumberNode.IsInt", Field, 0}, ++ {"NumberNode.IsUint", Field, 0}, ++ {"NumberNode.NodeType", Field, 0}, ++ {"NumberNode.Pos", Field, 1}, ++ {"NumberNode.Text", Field, 0}, ++ {"NumberNode.Uint64", Field, 0}, ++ {"Parse", Func, 0}, ++ {"ParseComments", Const, 16}, ++ {"PipeNode", Type, 0}, ++ {"PipeNode.Cmds", Field, 0}, ++ {"PipeNode.Decl", Field, 0}, ++ {"PipeNode.IsAssign", Field, 11}, ++ {"PipeNode.Line", Field, 0}, ++ {"PipeNode.NodeType", Field, 0}, ++ {"PipeNode.Pos", Field, 1}, ++ {"Pos", Type, 1}, ++ {"RangeNode", Type, 0}, ++ {"RangeNode.BranchNode", Field, 0}, ++ {"SkipFuncCheck", Const, 17}, ++ {"StringNode", Type, 0}, ++ {"StringNode.NodeType", Field, 0}, ++ {"StringNode.Pos", Field, 1}, ++ {"StringNode.Quoted", Field, 0}, ++ {"StringNode.Text", Field, 0}, ++ {"TemplateNode", Type, 0}, ++ {"TemplateNode.Line", Field, 0}, ++ {"TemplateNode.Name", Field, 0}, ++ {"TemplateNode.NodeType", Field, 0}, ++ {"TemplateNode.Pipe", Field, 0}, ++ {"TemplateNode.Pos", Field, 1}, ++ {"TextNode", Type, 0}, ++ {"TextNode.NodeType", Field, 0}, ++ {"TextNode.Pos", Field, 1}, ++ {"TextNode.Text", Field, 0}, ++ {"Tree", Type, 0}, ++ {"Tree.Mode", Field, 16}, ++ {"Tree.Name", Field, 0}, ++ {"Tree.ParseName", Field, 1}, ++ {"Tree.Root", Field, 0}, ++ {"VariableNode", Type, 0}, ++ {"VariableNode.Ident", Field, 0}, ++ {"VariableNode.NodeType", Field, 0}, ++ {"VariableNode.Pos", Field, 1}, ++ {"WithNode", Type, 0}, ++ {"WithNode.BranchNode", Field, 0}, ++ }, ++ "time": { ++ {"(*Location).String", Method, 0}, ++ {"(*ParseError).Error", Method, 0}, ++ {"(*Ticker).Reset", Method, 15}, ++ {"(*Ticker).Stop", Method, 0}, ++ {"(*Time).GobDecode", Method, 0}, ++ {"(*Time).UnmarshalBinary", Method, 2}, ++ {"(*Time).UnmarshalJSON", Method, 0}, ++ {"(*Time).UnmarshalText", Method, 2}, ++ {"(*Timer).Reset", Method, 1}, ++ {"(*Timer).Stop", Method, 0}, ++ {"(Duration).Abs", Method, 19}, ++ {"(Duration).Hours", Method, 0}, ++ {"(Duration).Microseconds", Method, 13}, ++ {"(Duration).Milliseconds", Method, 13}, ++ {"(Duration).Minutes", Method, 0}, ++ {"(Duration).Nanoseconds", Method, 0}, ++ {"(Duration).Round", Method, 9}, ++ {"(Duration).Seconds", Method, 0}, ++ {"(Duration).String", Method, 0}, ++ {"(Duration).Truncate", Method, 9}, ++ {"(Month).String", Method, 0}, ++ {"(Time).Add", Method, 0}, ++ {"(Time).AddDate", Method, 0}, ++ {"(Time).After", Method, 0}, ++ {"(Time).AppendFormat", Method, 5}, ++ {"(Time).Before", Method, 0}, ++ {"(Time).Clock", Method, 0}, ++ {"(Time).Compare", Method, 20}, ++ {"(Time).Date", Method, 0}, ++ {"(Time).Day", Method, 0}, ++ {"(Time).Equal", Method, 0}, ++ {"(Time).Format", Method, 0}, ++ {"(Time).GoString", Method, 17}, ++ {"(Time).GobEncode", Method, 0}, ++ {"(Time).Hour", Method, 0}, ++ {"(Time).ISOWeek", Method, 0}, ++ {"(Time).In", Method, 0}, ++ {"(Time).IsDST", Method, 17}, ++ {"(Time).IsZero", Method, 0}, ++ {"(Time).Local", Method, 0}, ++ {"(Time).Location", Method, 0}, ++ {"(Time).MarshalBinary", Method, 2}, ++ {"(Time).MarshalJSON", Method, 0}, ++ {"(Time).MarshalText", Method, 2}, ++ {"(Time).Minute", Method, 0}, ++ {"(Time).Month", Method, 0}, ++ {"(Time).Nanosecond", Method, 0}, ++ {"(Time).Round", Method, 1}, ++ {"(Time).Second", Method, 0}, ++ {"(Time).String", Method, 0}, ++ {"(Time).Sub", Method, 0}, ++ {"(Time).Truncate", Method, 1}, ++ {"(Time).UTC", Method, 0}, ++ {"(Time).Unix", Method, 0}, ++ {"(Time).UnixMicro", Method, 17}, ++ {"(Time).UnixMilli", Method, 17}, ++ {"(Time).UnixNano", Method, 0}, ++ {"(Time).Weekday", Method, 0}, ++ {"(Time).Year", Method, 0}, ++ {"(Time).YearDay", Method, 1}, ++ {"(Time).Zone", Method, 0}, ++ {"(Time).ZoneBounds", Method, 19}, ++ {"(Weekday).String", Method, 0}, ++ {"ANSIC", Const, 0}, ++ {"After", Func, 0}, ++ {"AfterFunc", Func, 0}, ++ {"April", Const, 0}, ++ {"August", Const, 0}, ++ {"Date", Func, 0}, ++ {"DateOnly", Const, 20}, ++ {"DateTime", Const, 20}, ++ {"December", Const, 0}, ++ {"Duration", Type, 0}, ++ {"February", Const, 0}, ++ {"FixedZone", Func, 0}, ++ {"Friday", Const, 0}, ++ {"Hour", Const, 0}, ++ {"January", Const, 0}, ++ {"July", Const, 0}, ++ {"June", Const, 0}, ++ {"Kitchen", Const, 0}, ++ {"Layout", Const, 17}, ++ {"LoadLocation", Func, 0}, ++ {"LoadLocationFromTZData", Func, 10}, ++ {"Local", Var, 0}, ++ {"Location", Type, 0}, ++ {"March", Const, 0}, ++ {"May", Const, 0}, ++ {"Microsecond", Const, 0}, ++ {"Millisecond", Const, 0}, ++ {"Minute", Const, 0}, ++ {"Monday", Const, 0}, ++ {"Month", Type, 0}, ++ {"Nanosecond", Const, 0}, ++ {"NewTicker", Func, 0}, ++ {"NewTimer", Func, 0}, ++ {"November", Const, 0}, ++ {"Now", Func, 0}, ++ {"October", Const, 0}, ++ {"Parse", Func, 0}, ++ {"ParseDuration", Func, 0}, ++ {"ParseError", Type, 0}, ++ {"ParseError.Layout", Field, 0}, ++ {"ParseError.LayoutElem", Field, 0}, ++ {"ParseError.Message", Field, 0}, ++ {"ParseError.Value", Field, 0}, ++ {"ParseError.ValueElem", Field, 0}, ++ {"ParseInLocation", Func, 1}, ++ {"RFC1123", Const, 0}, ++ {"RFC1123Z", Const, 0}, ++ {"RFC3339", Const, 0}, ++ {"RFC3339Nano", Const, 0}, ++ {"RFC822", Const, 0}, ++ {"RFC822Z", Const, 0}, ++ {"RFC850", Const, 0}, ++ {"RubyDate", Const, 0}, ++ {"Saturday", Const, 0}, ++ {"Second", Const, 0}, ++ {"September", Const, 0}, ++ {"Since", Func, 0}, ++ {"Sleep", Func, 0}, ++ {"Stamp", Const, 0}, ++ {"StampMicro", Const, 0}, ++ {"StampMilli", Const, 0}, ++ {"StampNano", Const, 0}, ++ {"Sunday", Const, 0}, ++ {"Thursday", Const, 0}, ++ {"Tick", Func, 0}, ++ {"Ticker", Type, 0}, ++ {"Ticker.C", Field, 0}, ++ {"Time", Type, 0}, ++ {"TimeOnly", Const, 20}, ++ {"Timer", Type, 0}, ++ {"Timer.C", Field, 0}, ++ {"Tuesday", Const, 0}, ++ {"UTC", Var, 0}, ++ {"Unix", Func, 0}, ++ {"UnixDate", Const, 0}, ++ {"UnixMicro", Func, 17}, ++ {"UnixMilli", Func, 17}, ++ {"Until", Func, 8}, ++ {"Wednesday", Const, 0}, ++ {"Weekday", Type, 0}, ++ }, ++ "unicode": { ++ {"(SpecialCase).ToLower", Method, 0}, ++ {"(SpecialCase).ToTitle", Method, 0}, ++ {"(SpecialCase).ToUpper", Method, 0}, ++ {"ASCII_Hex_Digit", Var, 0}, ++ {"Adlam", Var, 7}, ++ {"Ahom", Var, 5}, ++ {"Anatolian_Hieroglyphs", Var, 5}, ++ {"Arabic", Var, 0}, ++ {"Armenian", Var, 0}, ++ {"Avestan", Var, 0}, ++ {"AzeriCase", Var, 0}, ++ {"Balinese", Var, 0}, ++ {"Bamum", Var, 0}, ++ {"Bassa_Vah", Var, 4}, ++ {"Batak", Var, 0}, ++ {"Bengali", Var, 0}, ++ {"Bhaiksuki", Var, 7}, ++ {"Bidi_Control", Var, 0}, ++ {"Bopomofo", Var, 0}, ++ {"Brahmi", Var, 0}, ++ {"Braille", Var, 0}, ++ {"Buginese", Var, 0}, ++ {"Buhid", Var, 0}, ++ {"C", Var, 0}, ++ {"Canadian_Aboriginal", Var, 0}, ++ {"Carian", Var, 0}, ++ {"CaseRange", Type, 0}, ++ {"CaseRange.Delta", Field, 0}, ++ {"CaseRange.Hi", Field, 0}, ++ {"CaseRange.Lo", Field, 0}, ++ {"CaseRanges", Var, 0}, ++ {"Categories", Var, 0}, ++ {"Caucasian_Albanian", Var, 4}, ++ {"Cc", Var, 0}, ++ {"Cf", Var, 0}, ++ {"Chakma", Var, 1}, ++ {"Cham", Var, 0}, ++ {"Cherokee", Var, 0}, ++ {"Chorasmian", Var, 16}, ++ {"Co", Var, 0}, ++ {"Common", Var, 0}, ++ {"Coptic", Var, 0}, ++ {"Cs", Var, 0}, ++ {"Cuneiform", Var, 0}, ++ {"Cypriot", Var, 0}, ++ {"Cypro_Minoan", Var, 21}, ++ {"Cyrillic", Var, 0}, ++ {"Dash", Var, 0}, ++ {"Deprecated", Var, 0}, ++ {"Deseret", Var, 0}, ++ {"Devanagari", Var, 0}, ++ {"Diacritic", Var, 0}, ++ {"Digit", Var, 0}, ++ {"Dives_Akuru", Var, 16}, ++ {"Dogra", Var, 13}, ++ {"Duployan", Var, 4}, ++ {"Egyptian_Hieroglyphs", Var, 0}, ++ {"Elbasan", Var, 4}, ++ {"Elymaic", Var, 14}, ++ {"Ethiopic", Var, 0}, ++ {"Extender", Var, 0}, ++ {"FoldCategory", Var, 0}, ++ {"FoldScript", Var, 0}, ++ {"Georgian", Var, 0}, ++ {"Glagolitic", Var, 0}, ++ {"Gothic", Var, 0}, ++ {"Grantha", Var, 4}, ++ {"GraphicRanges", Var, 0}, ++ {"Greek", Var, 0}, ++ {"Gujarati", Var, 0}, ++ {"Gunjala_Gondi", Var, 13}, ++ {"Gurmukhi", Var, 0}, ++ {"Han", Var, 0}, ++ {"Hangul", Var, 0}, ++ {"Hanifi_Rohingya", Var, 13}, ++ {"Hanunoo", Var, 0}, ++ {"Hatran", Var, 5}, ++ {"Hebrew", Var, 0}, ++ {"Hex_Digit", Var, 0}, ++ {"Hiragana", Var, 0}, ++ {"Hyphen", Var, 0}, ++ {"IDS_Binary_Operator", Var, 0}, ++ {"IDS_Trinary_Operator", Var, 0}, ++ {"Ideographic", Var, 0}, ++ {"Imperial_Aramaic", Var, 0}, ++ {"In", Func, 2}, ++ {"Inherited", Var, 0}, ++ {"Inscriptional_Pahlavi", Var, 0}, ++ {"Inscriptional_Parthian", Var, 0}, ++ {"Is", Func, 0}, ++ {"IsControl", Func, 0}, ++ {"IsDigit", Func, 0}, ++ {"IsGraphic", Func, 0}, ++ {"IsLetter", Func, 0}, ++ {"IsLower", Func, 0}, ++ {"IsMark", Func, 0}, ++ {"IsNumber", Func, 0}, ++ {"IsOneOf", Func, 0}, ++ {"IsPrint", Func, 0}, ++ {"IsPunct", Func, 0}, ++ {"IsSpace", Func, 0}, ++ {"IsSymbol", Func, 0}, ++ {"IsTitle", Func, 0}, ++ {"IsUpper", Func, 0}, ++ {"Javanese", Var, 0}, ++ {"Join_Control", Var, 0}, ++ {"Kaithi", Var, 0}, ++ {"Kannada", Var, 0}, ++ {"Katakana", Var, 0}, ++ {"Kawi", Var, 21}, ++ {"Kayah_Li", Var, 0}, ++ {"Kharoshthi", Var, 0}, ++ {"Khitan_Small_Script", Var, 16}, ++ {"Khmer", Var, 0}, ++ {"Khojki", Var, 4}, ++ {"Khudawadi", Var, 4}, ++ {"L", Var, 0}, ++ {"Lao", Var, 0}, ++ {"Latin", Var, 0}, ++ {"Lepcha", Var, 0}, ++ {"Letter", Var, 0}, ++ {"Limbu", Var, 0}, ++ {"Linear_A", Var, 4}, ++ {"Linear_B", Var, 0}, ++ {"Lisu", Var, 0}, ++ {"Ll", Var, 0}, ++ {"Lm", Var, 0}, ++ {"Lo", Var, 0}, ++ {"Logical_Order_Exception", Var, 0}, ++ {"Lower", Var, 0}, ++ {"LowerCase", Const, 0}, ++ {"Lt", Var, 0}, ++ {"Lu", Var, 0}, ++ {"Lycian", Var, 0}, ++ {"Lydian", Var, 0}, ++ {"M", Var, 0}, ++ {"Mahajani", Var, 4}, ++ {"Makasar", Var, 13}, ++ {"Malayalam", Var, 0}, ++ {"Mandaic", Var, 0}, ++ {"Manichaean", Var, 4}, ++ {"Marchen", Var, 7}, ++ {"Mark", Var, 0}, ++ {"Masaram_Gondi", Var, 10}, ++ {"MaxASCII", Const, 0}, ++ {"MaxCase", Const, 0}, ++ {"MaxLatin1", Const, 0}, ++ {"MaxRune", Const, 0}, ++ {"Mc", Var, 0}, ++ {"Me", Var, 0}, ++ {"Medefaidrin", Var, 13}, ++ {"Meetei_Mayek", Var, 0}, ++ {"Mende_Kikakui", Var, 4}, ++ {"Meroitic_Cursive", Var, 1}, ++ {"Meroitic_Hieroglyphs", Var, 1}, ++ {"Miao", Var, 1}, ++ {"Mn", Var, 0}, ++ {"Modi", Var, 4}, ++ {"Mongolian", Var, 0}, ++ {"Mro", Var, 4}, ++ {"Multani", Var, 5}, ++ {"Myanmar", Var, 0}, ++ {"N", Var, 0}, ++ {"Nabataean", Var, 4}, ++ {"Nag_Mundari", Var, 21}, ++ {"Nandinagari", Var, 14}, ++ {"Nd", Var, 0}, ++ {"New_Tai_Lue", Var, 0}, ++ {"Newa", Var, 7}, ++ {"Nko", Var, 0}, ++ {"Nl", Var, 0}, ++ {"No", Var, 0}, ++ {"Noncharacter_Code_Point", Var, 0}, ++ {"Number", Var, 0}, ++ {"Nushu", Var, 10}, ++ {"Nyiakeng_Puachue_Hmong", Var, 14}, ++ {"Ogham", Var, 0}, ++ {"Ol_Chiki", Var, 0}, ++ {"Old_Hungarian", Var, 5}, ++ {"Old_Italic", Var, 0}, ++ {"Old_North_Arabian", Var, 4}, ++ {"Old_Permic", Var, 4}, ++ {"Old_Persian", Var, 0}, ++ {"Old_Sogdian", Var, 13}, ++ {"Old_South_Arabian", Var, 0}, ++ {"Old_Turkic", Var, 0}, ++ {"Old_Uyghur", Var, 21}, ++ {"Oriya", Var, 0}, ++ {"Osage", Var, 7}, ++ {"Osmanya", Var, 0}, ++ {"Other", Var, 0}, ++ {"Other_Alphabetic", Var, 0}, ++ {"Other_Default_Ignorable_Code_Point", Var, 0}, ++ {"Other_Grapheme_Extend", Var, 0}, ++ {"Other_ID_Continue", Var, 0}, ++ {"Other_ID_Start", Var, 0}, ++ {"Other_Lowercase", Var, 0}, ++ {"Other_Math", Var, 0}, ++ {"Other_Uppercase", Var, 0}, ++ {"P", Var, 0}, ++ {"Pahawh_Hmong", Var, 4}, ++ {"Palmyrene", Var, 4}, ++ {"Pattern_Syntax", Var, 0}, ++ {"Pattern_White_Space", Var, 0}, ++ {"Pau_Cin_Hau", Var, 4}, ++ {"Pc", Var, 0}, ++ {"Pd", Var, 0}, ++ {"Pe", Var, 0}, ++ {"Pf", Var, 0}, ++ {"Phags_Pa", Var, 0}, ++ {"Phoenician", Var, 0}, ++ {"Pi", Var, 0}, ++ {"Po", Var, 0}, ++ {"Prepended_Concatenation_Mark", Var, 7}, ++ {"PrintRanges", Var, 0}, ++ {"Properties", Var, 0}, ++ {"Ps", Var, 0}, ++ {"Psalter_Pahlavi", Var, 4}, ++ {"Punct", Var, 0}, ++ {"Quotation_Mark", Var, 0}, ++ {"Radical", Var, 0}, ++ {"Range16", Type, 0}, ++ {"Range16.Hi", Field, 0}, ++ {"Range16.Lo", Field, 0}, ++ {"Range16.Stride", Field, 0}, ++ {"Range32", Type, 0}, ++ {"Range32.Hi", Field, 0}, ++ {"Range32.Lo", Field, 0}, ++ {"Range32.Stride", Field, 0}, ++ {"RangeTable", Type, 0}, ++ {"RangeTable.LatinOffset", Field, 1}, ++ {"RangeTable.R16", Field, 0}, ++ {"RangeTable.R32", Field, 0}, ++ {"Regional_Indicator", Var, 10}, ++ {"Rejang", Var, 0}, ++ {"ReplacementChar", Const, 0}, ++ {"Runic", Var, 0}, ++ {"S", Var, 0}, ++ {"STerm", Var, 0}, ++ {"Samaritan", Var, 0}, ++ {"Saurashtra", Var, 0}, ++ {"Sc", Var, 0}, ++ {"Scripts", Var, 0}, ++ {"Sentence_Terminal", Var, 7}, ++ {"Sharada", Var, 1}, ++ {"Shavian", Var, 0}, ++ {"Siddham", Var, 4}, ++ {"SignWriting", Var, 5}, ++ {"SimpleFold", Func, 0}, ++ {"Sinhala", Var, 0}, ++ {"Sk", Var, 0}, ++ {"Sm", Var, 0}, ++ {"So", Var, 0}, ++ {"Soft_Dotted", Var, 0}, ++ {"Sogdian", Var, 13}, ++ {"Sora_Sompeng", Var, 1}, ++ {"Soyombo", Var, 10}, ++ {"Space", Var, 0}, ++ {"SpecialCase", Type, 0}, ++ {"Sundanese", Var, 0}, ++ {"Syloti_Nagri", Var, 0}, ++ {"Symbol", Var, 0}, ++ {"Syriac", Var, 0}, ++ {"Tagalog", Var, 0}, ++ {"Tagbanwa", Var, 0}, ++ {"Tai_Le", Var, 0}, ++ {"Tai_Tham", Var, 0}, ++ {"Tai_Viet", Var, 0}, ++ {"Takri", Var, 1}, ++ {"Tamil", Var, 0}, ++ {"Tangsa", Var, 21}, ++ {"Tangut", Var, 7}, ++ {"Telugu", Var, 0}, ++ {"Terminal_Punctuation", Var, 0}, ++ {"Thaana", Var, 0}, ++ {"Thai", Var, 0}, ++ {"Tibetan", Var, 0}, ++ {"Tifinagh", Var, 0}, ++ {"Tirhuta", Var, 4}, ++ {"Title", Var, 0}, ++ {"TitleCase", Const, 0}, ++ {"To", Func, 0}, ++ {"ToLower", Func, 0}, ++ {"ToTitle", Func, 0}, ++ {"ToUpper", Func, 0}, ++ {"Toto", Var, 21}, ++ {"TurkishCase", Var, 0}, ++ {"Ugaritic", Var, 0}, ++ {"Unified_Ideograph", Var, 0}, ++ {"Upper", Var, 0}, ++ {"UpperCase", Const, 0}, ++ {"UpperLower", Const, 0}, ++ {"Vai", Var, 0}, ++ {"Variation_Selector", Var, 0}, ++ {"Version", Const, 0}, ++ {"Vithkuqi", Var, 21}, ++ {"Wancho", Var, 14}, ++ {"Warang_Citi", Var, 4}, ++ {"White_Space", Var, 0}, ++ {"Yezidi", Var, 16}, ++ {"Yi", Var, 0}, ++ {"Z", Var, 0}, ++ {"Zanabazar_Square", Var, 10}, ++ {"Zl", Var, 0}, ++ {"Zp", Var, 0}, ++ {"Zs", Var, 0}, ++ }, ++ "unicode/utf16": { ++ {"AppendRune", Func, 20}, ++ {"Decode", Func, 0}, ++ {"DecodeRune", Func, 0}, ++ {"Encode", Func, 0}, ++ {"EncodeRune", Func, 0}, ++ {"IsSurrogate", Func, 0}, ++ }, ++ "unicode/utf8": { ++ {"AppendRune", Func, 18}, ++ {"DecodeLastRune", Func, 0}, ++ {"DecodeLastRuneInString", Func, 0}, ++ {"DecodeRune", Func, 0}, ++ {"DecodeRuneInString", Func, 0}, ++ {"EncodeRune", Func, 0}, ++ {"FullRune", Func, 0}, ++ {"FullRuneInString", Func, 0}, ++ {"MaxRune", Const, 0}, ++ {"RuneCount", Func, 0}, ++ {"RuneCountInString", Func, 0}, ++ {"RuneError", Const, 0}, ++ {"RuneLen", Func, 0}, ++ {"RuneSelf", Const, 0}, ++ {"RuneStart", Func, 0}, ++ {"UTFMax", Const, 0}, ++ {"Valid", Func, 0}, ++ {"ValidRune", Func, 1}, ++ {"ValidString", Func, 0}, ++ }, ++ "unsafe": { ++ {"Add", Func, 0}, ++ {"Alignof", Func, 0}, ++ {"Offsetof", Func, 0}, ++ {"Pointer", Type, 0}, ++ {"Sizeof", Func, 0}, ++ {"Slice", Func, 0}, ++ {"SliceData", Func, 0}, ++ {"String", Func, 0}, ++ {"StringData", Func, 0}, ++ }, ++} +diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go +new file mode 100644 +index 0000000000..98904017f2 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go +@@ -0,0 +1,97 @@ ++// Copyright 2022 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:generate go run generate.go ++ ++// Package stdlib provides a table of all exported symbols in the ++// standard library, along with the version at which they first ++// appeared. ++package stdlib ++ ++import ( ++ "fmt" ++ "strings" ++) ++ ++type Symbol struct { ++ Name string ++ Kind Kind ++ Version Version // Go version that first included the symbol ++} ++ ++// A Kind indicates the kind of a symbol: ++// function, variable, constant, type, and so on. ++type Kind int8 ++ ++const ( ++ Invalid Kind = iota // Example name: ++ Type // "Buffer" ++ Func // "Println" ++ Var // "EOF" ++ Const // "Pi" ++ Field // "Point.X" ++ Method // "(*Buffer).Grow" ++) ++ ++func (kind Kind) String() string { ++ return [...]string{ ++ Invalid: "invalid", ++ Type: "type", ++ Func: "func", ++ Var: "var", ++ Const: "const", ++ Field: "field", ++ Method: "method", ++ }[kind] ++} ++ ++// A Version represents a version of Go of the form "go1.%d". ++type Version int8 ++ ++// String returns a version string of the form "go1.23", without allocating. ++func (v Version) String() string { return versions[v] } ++ ++var versions [30]string // (increase constant as needed) ++ ++func init() { ++ for i := range versions { ++ versions[i] = fmt.Sprintf("go1.%d", i) ++ } ++} ++ ++// HasPackage reports whether the specified package path is part of ++// the standard library's public API. ++func HasPackage(path string) bool { ++ _, ok := PackageSymbols[path] ++ return ok ++} ++ ++// SplitField splits the field symbol name into type and field ++// components. It must be called only on Field symbols. ++// ++// Example: "File.Package" -> ("File", "Package") ++func (sym *Symbol) SplitField() (typename, name string) { ++ if sym.Kind != Field { ++ panic("not a field") ++ } ++ typename, name, _ = strings.Cut(sym.Name, ".") ++ return ++} ++ ++// SplitMethod splits the method symbol name into pointer, receiver, ++// and method components. It must be called only on Method symbols. ++// ++// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow") ++func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) { ++ if sym.Kind != Method { ++ panic("not a method") ++ } ++ recv, name, _ = strings.Cut(sym.Name, ".") ++ recv = recv[len("(") : len(recv)-len(")")] ++ ptr = recv[0] == '*' ++ if ptr { ++ recv = recv[len("*"):] ++ } ++ return ++} +diff --git a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go +index 7e638ec24f..ff9437a36c 100644 +--- a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go ++++ b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go +@@ -34,30 +34,16 @@ func GetLines(file *token.File) []int { + lines []int + _ []struct{} + } +- type tokenFile118 struct { +- _ *token.FileSet // deleted in go1.19 +- tokenFile119 +- } +- +- type uP = unsafe.Pointer +- switch unsafe.Sizeof(*file) { +- case unsafe.Sizeof(tokenFile118{}): +- var ptr *tokenFile118 +- *(*uP)(uP(&ptr)) = uP(file) +- ptr.mu.Lock() +- defer ptr.mu.Unlock() +- return ptr.lines + +- case unsafe.Sizeof(tokenFile119{}): +- var ptr *tokenFile119 +- *(*uP)(uP(&ptr)) = uP(file) +- ptr.mu.Lock() +- defer ptr.mu.Unlock() +- return ptr.lines +- +- default: ++ if unsafe.Sizeof(*file) != unsafe.Sizeof(tokenFile119{}) { + panic("unexpected token.File size") + } ++ var ptr *tokenFile119 ++ type uP = unsafe.Pointer ++ *(*uP)(uP(&ptr)) = uP(file) ++ ptr.mu.Lock() ++ defer ptr.mu.Unlock() ++ return ptr.lines + } + + // AddExistingFiles adds the specified files to the FileSet if they +diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go +deleted file mode 100644 +index d0d0649fe2..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/common.go ++++ /dev/null +@@ -1,204 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Package typeparams contains common utilities for writing tools that interact +-// with generic Go code, as introduced with Go 1.18. +-// +-// Many of the types and functions in this package are proxies for the new APIs +-// introduced in the standard library with Go 1.18. For example, the +-// typeparams.Union type is an alias for go/types.Union, and the ForTypeSpec +-// function returns the value of the go/ast.TypeSpec.TypeParams field. At Go +-// versions older than 1.18 these helpers are implemented as stubs, allowing +-// users of this package to write code that handles generic constructs inline, +-// even if the Go version being used to compile does not support generics. +-// +-// Additionally, this package contains common utilities for working with the +-// new generic constructs, to supplement the standard library APIs. Notably, +-// the StructuralTerms API computes a minimal representation of the structural +-// restrictions on a type parameter. +-// +-// An external version of these APIs is available in the +-// golang.org/x/exp/typeparams module. +-package typeparams +- +-import ( +- "fmt" +- "go/ast" +- "go/token" +- "go/types" +-) +- +-// UnpackIndexExpr extracts data from AST nodes that represent index +-// expressions. +-// +-// For an ast.IndexExpr, the resulting indices slice will contain exactly one +-// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable +-// number of index expressions. +-// +-// For nodes that don't represent index expressions, the first return value of +-// UnpackIndexExpr will be nil. +-func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { +- switch e := n.(type) { +- case *ast.IndexExpr: +- return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack +- case *IndexListExpr: +- return e.X, e.Lbrack, e.Indices, e.Rbrack +- } +- return nil, token.NoPos, nil, token.NoPos +-} +- +-// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on +-// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 +-// will panic. +-func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { +- switch len(indices) { +- case 0: +- panic("empty indices") +- case 1: +- return &ast.IndexExpr{ +- X: x, +- Lbrack: lbrack, +- Index: indices[0], +- Rbrack: rbrack, +- } +- default: +- return &IndexListExpr{ +- X: x, +- Lbrack: lbrack, +- Indices: indices, +- Rbrack: rbrack, +- } +- } +-} +- +-// IsTypeParam reports whether t is a type parameter. +-func IsTypeParam(t types.Type) bool { +- _, ok := t.(*TypeParam) +- return ok +-} +- +-// OriginMethod returns the origin method associated with the method fn. +-// For methods on a non-generic receiver base type, this is just +-// fn. However, for methods with a generic receiver, OriginMethod returns the +-// corresponding method in the method set of the origin type. +-// +-// As a special case, if fn is not a method (has no receiver), OriginMethod +-// returns fn. +-func OriginMethod(fn *types.Func) *types.Func { +- recv := fn.Type().(*types.Signature).Recv() +- if recv == nil { +- return fn +- } +- base := recv.Type() +- p, isPtr := base.(*types.Pointer) +- if isPtr { +- base = p.Elem() +- } +- named, isNamed := base.(*types.Named) +- if !isNamed { +- // Receiver is a *types.Interface. +- return fn +- } +- if ForNamed(named).Len() == 0 { +- // Receiver base has no type parameters, so we can avoid the lookup below. +- return fn +- } +- orig := NamedTypeOrigin(named) +- gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name()) +- +- // This is a fix for a gopls crash (#60628) due to a go/types bug (#60634). In: +- // package p +- // type T *int +- // func (*T) f() {} +- // LookupFieldOrMethod(T, true, p, f)=nil, but NewMethodSet(*T)={(*T).f}. +- // Here we make them consistent by force. +- // (The go/types bug is general, but this workaround is reached only +- // for generic T thanks to the early return above.) +- if gfn == nil { +- mset := types.NewMethodSet(types.NewPointer(orig)) +- for i := 0; i < mset.Len(); i++ { +- m := mset.At(i) +- if m.Obj().Id() == fn.Id() { +- gfn = m.Obj() +- break +- } +- } +- } +- +- // In golang/go#61196, we observe another crash, this time inexplicable. +- if gfn == nil { +- panic(fmt.Sprintf("missing origin method for %s.%s; named == origin: %t, named.NumMethods(): %d, origin.NumMethods(): %d", named, fn, named == orig, named.NumMethods(), orig.NumMethods())) +- } +- +- return gfn.(*types.Func) +-} +- +-// GenericAssignableTo is a generalization of types.AssignableTo that +-// implements the following rule for uninstantiated generic types: +-// +-// If V and T are generic named types, then V is considered assignable to T if, +-// for every possible instantation of V[A_1, ..., A_N], the instantiation +-// T[A_1, ..., A_N] is valid and V[A_1, ..., A_N] implements T[A_1, ..., A_N]. +-// +-// If T has structural constraints, they must be satisfied by V. +-// +-// For example, consider the following type declarations: +-// +-// type Interface[T any] interface { +-// Accept(T) +-// } +-// +-// type Container[T any] struct { +-// Element T +-// } +-// +-// func (c Container[T]) Accept(t T) { c.Element = t } +-// +-// In this case, GenericAssignableTo reports that instantiations of Container +-// are assignable to the corresponding instantiation of Interface. +-func GenericAssignableTo(ctxt *Context, V, T types.Type) bool { +- // If V and T are not both named, or do not have matching non-empty type +- // parameter lists, fall back on types.AssignableTo. +- +- VN, Vnamed := V.(*types.Named) +- TN, Tnamed := T.(*types.Named) +- if !Vnamed || !Tnamed { +- return types.AssignableTo(V, T) +- } +- +- vtparams := ForNamed(VN) +- ttparams := ForNamed(TN) +- if vtparams.Len() == 0 || vtparams.Len() != ttparams.Len() || NamedTypeArgs(VN).Len() != 0 || NamedTypeArgs(TN).Len() != 0 { +- return types.AssignableTo(V, T) +- } +- +- // V and T have the same (non-zero) number of type params. Instantiate both +- // with the type parameters of V. This must always succeed for V, and will +- // succeed for T if and only if the type set of each type parameter of V is a +- // subset of the type set of the corresponding type parameter of T, meaning +- // that every instantiation of V corresponds to a valid instantiation of T. +- +- // Minor optimization: ensure we share a context across the two +- // instantiations below. +- if ctxt == nil { +- ctxt = NewContext() +- } +- +- var targs []types.Type +- for i := 0; i < vtparams.Len(); i++ { +- targs = append(targs, vtparams.At(i)) +- } +- +- vinst, err := Instantiate(ctxt, V, targs, true) +- if err != nil { +- panic("type parameters should satisfy their own constraints") +- } +- +- tinst, err := Instantiate(ctxt, T, targs, true) +- if err != nil { +- return false +- } +- +- return types.AssignableTo(vinst, tinst) +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go +deleted file mode 100644 +index 71248209ee..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go ++++ /dev/null +@@ -1,122 +0,0 @@ +-// Copyright 2022 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-package typeparams +- +-import ( +- "go/types" +-) +- +-// CoreType returns the core type of T or nil if T does not have a core type. +-// +-// See https://go.dev/ref/spec#Core_types for the definition of a core type. +-func CoreType(T types.Type) types.Type { +- U := T.Underlying() +- if _, ok := U.(*types.Interface); !ok { +- return U // for non-interface types, +- } +- +- terms, err := _NormalTerms(U) +- if len(terms) == 0 || err != nil { +- // len(terms) -> empty type set of interface. +- // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. +- return nil // no core type. +- } +- +- U = terms[0].Type().Underlying() +- var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) +- for identical = 1; identical < len(terms); identical++ { +- if !types.Identical(U, terms[identical].Type().Underlying()) { +- break +- } +- } +- +- if identical == len(terms) { +- // https://go.dev/ref/spec#Core_types +- // "There is a single type U which is the underlying type of all types in the type set of T" +- return U +- } +- ch, ok := U.(*types.Chan) +- if !ok { +- return nil // no core type as identical < len(terms) and U is not a channel. +- } +- // https://go.dev/ref/spec#Core_types +- // "the type chan E if T contains only bidirectional channels, or the type chan<- E or +- // <-chan E depending on the direction of the directional channels present." +- for chans := identical; chans < len(terms); chans++ { +- curr, ok := terms[chans].Type().Underlying().(*types.Chan) +- if !ok { +- return nil +- } +- if !types.Identical(ch.Elem(), curr.Elem()) { +- return nil // channel elements are not identical. +- } +- if ch.Dir() == types.SendRecv { +- // ch is bidirectional. We can safely always use curr's direction. +- ch = curr +- } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { +- // ch and curr are not bidirectional and not the same direction. +- return nil +- } +- } +- return ch +-} +- +-// _NormalTerms returns a slice of terms representing the normalized structural +-// type restrictions of a type, if any. +-// +-// For all types other than *types.TypeParam, *types.Interface, and +-// *types.Union, this is just a single term with Tilde() == false and +-// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see +-// below. +-// +-// Structural type restrictions of a type parameter are created via +-// non-interface types embedded in its constraint interface (directly, or via a +-// chain of interface embeddings). For example, in the declaration type +-// T[P interface{~int; m()}] int the structural restriction of the type +-// parameter P is ~int. +-// +-// With interface embedding and unions, the specification of structural type +-// restrictions may be arbitrarily complex. For example, consider the +-// following: +-// +-// type A interface{ ~string|~[]byte } +-// +-// type B interface{ int|string } +-// +-// type C interface { ~string|~int } +-// +-// type T[P interface{ A|B; C }] int +-// +-// In this example, the structural type restriction of P is ~string|int: A|B +-// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +-// which when intersected with C (~string|~int) yields ~string|int. +-// +-// _NormalTerms computes these expansions and reductions, producing a +-// "normalized" form of the embeddings. A structural restriction is normalized +-// if it is a single union containing no interface terms, and is minimal in the +-// sense that removing any term changes the set of types satisfying the +-// constraint. It is left as a proof for the reader that, modulo sorting, there +-// is exactly one such normalized form. +-// +-// Because the minimal representation always takes this form, _NormalTerms +-// returns a slice of tilde terms corresponding to the terms of the union in +-// the normalized structural restriction. An error is returned if the type is +-// invalid, exceeds complexity bounds, or has an empty type set. In the latter +-// case, _NormalTerms returns ErrEmptyTypeSet. +-// +-// _NormalTerms makes no guarantees about the order of terms, except that it +-// is deterministic. +-func _NormalTerms(typ types.Type) ([]*Term, error) { +- switch typ := typ.(type) { +- case *TypeParam: +- return StructuralTerms(typ) +- case *Union: +- return UnionTermSet(typ) +- case *types.Interface: +- return InterfaceTermSet(typ) +- default: +- return []*Term{NewTerm(false, typ)}, nil +- } +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go +deleted file mode 100644 +index 18212390e1..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go ++++ /dev/null +@@ -1,12 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.18 +-// +build !go1.18 +- +-package typeparams +- +-// Enabled reports whether type parameters are enabled in the current build +-// environment. +-const Enabled = false +diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go +deleted file mode 100644 +index d67148823c..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go ++++ /dev/null +@@ -1,15 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.18 +-// +build go1.18 +- +-package typeparams +- +-// Note: this constant is in a separate file as this is the only acceptable +-// diff between the <1.18 API of this package and the 1.18 API. +- +-// Enabled reports whether type parameters are enabled in the current build +-// environment. +-const Enabled = true +diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go +deleted file mode 100644 +index 9c631b6512..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/normalize.go ++++ /dev/null +@@ -1,218 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-package typeparams +- +-import ( +- "errors" +- "fmt" +- "go/types" +- "os" +- "strings" +-) +- +-//go:generate go run copytermlist.go +- +-const debug = false +- +-var ErrEmptyTypeSet = errors.New("empty type set") +- +-// StructuralTerms returns a slice of terms representing the normalized +-// structural type restrictions of a type parameter, if any. +-// +-// Structural type restrictions of a type parameter are created via +-// non-interface types embedded in its constraint interface (directly, or via a +-// chain of interface embeddings). For example, in the declaration +-// +-// type T[P interface{~int; m()}] int +-// +-// the structural restriction of the type parameter P is ~int. +-// +-// With interface embedding and unions, the specification of structural type +-// restrictions may be arbitrarily complex. For example, consider the +-// following: +-// +-// type A interface{ ~string|~[]byte } +-// +-// type B interface{ int|string } +-// +-// type C interface { ~string|~int } +-// +-// type T[P interface{ A|B; C }] int +-// +-// In this example, the structural type restriction of P is ~string|int: A|B +-// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +-// which when intersected with C (~string|~int) yields ~string|int. +-// +-// StructuralTerms computes these expansions and reductions, producing a +-// "normalized" form of the embeddings. A structural restriction is normalized +-// if it is a single union containing no interface terms, and is minimal in the +-// sense that removing any term changes the set of types satisfying the +-// constraint. It is left as a proof for the reader that, modulo sorting, there +-// is exactly one such normalized form. +-// +-// Because the minimal representation always takes this form, StructuralTerms +-// returns a slice of tilde terms corresponding to the terms of the union in +-// the normalized structural restriction. An error is returned if the +-// constraint interface is invalid, exceeds complexity bounds, or has an empty +-// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. +-// +-// StructuralTerms makes no guarantees about the order of terms, except that it +-// is deterministic. +-func StructuralTerms(tparam *TypeParam) ([]*Term, error) { +- constraint := tparam.Constraint() +- if constraint == nil { +- return nil, fmt.Errorf("%s has nil constraint", tparam) +- } +- iface, _ := constraint.Underlying().(*types.Interface) +- if iface == nil { +- return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) +- } +- return InterfaceTermSet(iface) +-} +- +-// InterfaceTermSet computes the normalized terms for a constraint interface, +-// returning an error if the term set cannot be computed or is empty. In the +-// latter case, the error will be ErrEmptyTypeSet. +-// +-// See the documentation of StructuralTerms for more information on +-// normalization. +-func InterfaceTermSet(iface *types.Interface) ([]*Term, error) { +- return computeTermSet(iface) +-} +- +-// UnionTermSet computes the normalized terms for a union, returning an error +-// if the term set cannot be computed or is empty. In the latter case, the +-// error will be ErrEmptyTypeSet. +-// +-// See the documentation of StructuralTerms for more information on +-// normalization. +-func UnionTermSet(union *Union) ([]*Term, error) { +- return computeTermSet(union) +-} +- +-func computeTermSet(typ types.Type) ([]*Term, error) { +- tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) +- if err != nil { +- return nil, err +- } +- if tset.terms.isEmpty() { +- return nil, ErrEmptyTypeSet +- } +- if tset.terms.isAll() { +- return nil, nil +- } +- var terms []*Term +- for _, term := range tset.terms { +- terms = append(terms, NewTerm(term.tilde, term.typ)) +- } +- return terms, nil +-} +- +-// A termSet holds the normalized set of terms for a given type. +-// +-// The name termSet is intentionally distinct from 'type set': a type set is +-// all types that implement a type (and includes method restrictions), whereas +-// a term set just represents the structural restrictions on a type. +-type termSet struct { +- complete bool +- terms termlist +-} +- +-func indentf(depth int, format string, args ...interface{}) { +- fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) +-} +- +-func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { +- if t == nil { +- panic("nil type") +- } +- +- if debug { +- indentf(depth, "%s", t.String()) +- defer func() { +- if err != nil { +- indentf(depth, "=> %s", err) +- } else { +- indentf(depth, "=> %s", res.terms.String()) +- } +- }() +- } +- +- const maxTermCount = 100 +- if tset, ok := seen[t]; ok { +- if !tset.complete { +- return nil, fmt.Errorf("cycle detected in the declaration of %s", t) +- } +- return tset, nil +- } +- +- // Mark the current type as seen to avoid infinite recursion. +- tset := new(termSet) +- defer func() { +- tset.complete = true +- }() +- seen[t] = tset +- +- switch u := t.Underlying().(type) { +- case *types.Interface: +- // The term set of an interface is the intersection of the term sets of its +- // embedded types. +- tset.terms = allTermlist +- for i := 0; i < u.NumEmbeddeds(); i++ { +- embedded := u.EmbeddedType(i) +- if _, ok := embedded.Underlying().(*TypeParam); ok { +- return nil, fmt.Errorf("invalid embedded type %T", embedded) +- } +- tset2, err := computeTermSetInternal(embedded, seen, depth+1) +- if err != nil { +- return nil, err +- } +- tset.terms = tset.terms.intersect(tset2.terms) +- } +- case *Union: +- // The term set of a union is the union of term sets of its terms. +- tset.terms = nil +- for i := 0; i < u.Len(); i++ { +- t := u.Term(i) +- var terms termlist +- switch t.Type().Underlying().(type) { +- case *types.Interface: +- tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) +- if err != nil { +- return nil, err +- } +- terms = tset2.terms +- case *TypeParam, *Union: +- // A stand-alone type parameter or union is not permitted as union +- // term. +- return nil, fmt.Errorf("invalid union term %T", t) +- default: +- if t.Type() == types.Typ[types.Invalid] { +- continue +- } +- terms = termlist{{t.Tilde(), t.Type()}} +- } +- tset.terms = tset.terms.union(terms) +- if len(tset.terms) > maxTermCount { +- return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) +- } +- } +- case *TypeParam: +- panic("unreachable") +- default: +- // For all other types, the term set is just a single non-tilde term +- // holding the type itself. +- if u != types.Typ[types.Invalid] { +- tset.terms = termlist{{false, t}} +- } +- } +- return tset, nil +-} +- +-// under is a facade for the go/types internal function of the same name. It is +-// used by typeterm.go. +-func under(t types.Type) types.Type { +- return t.Underlying() +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go +deleted file mode 100644 +index cbd12f8013..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go ++++ /dev/null +@@ -1,163 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Code generated by copytermlist.go DO NOT EDIT. +- +-package typeparams +- +-import ( +- "bytes" +- "go/types" +-) +- +-// A termlist represents the type set represented by the union +-// t1 βˆͺ y2 βˆͺ ... tn of the type sets of the terms t1 to tn. +-// A termlist is in normal form if all terms are disjoint. +-// termlist operations don't require the operands to be in +-// normal form. +-type termlist []*term +- +-// allTermlist represents the set of all types. +-// It is in normal form. +-var allTermlist = termlist{new(term)} +- +-// String prints the termlist exactly (without normalization). +-func (xl termlist) String() string { +- if len(xl) == 0 { +- return "βˆ…" +- } +- var buf bytes.Buffer +- for i, x := range xl { +- if i > 0 { +- buf.WriteString(" | ") +- } +- buf.WriteString(x.String()) +- } +- return buf.String() +-} +- +-// isEmpty reports whether the termlist xl represents the empty set of types. +-func (xl termlist) isEmpty() bool { +- // If there's a non-nil term, the entire list is not empty. +- // If the termlist is in normal form, this requires at most +- // one iteration. +- for _, x := range xl { +- if x != nil { +- return false +- } +- } +- return true +-} +- +-// isAll reports whether the termlist xl represents the set of all types. +-func (xl termlist) isAll() bool { +- // If there's a 𝓀 term, the entire list is 𝓀. +- // If the termlist is in normal form, this requires at most +- // one iteration. +- for _, x := range xl { +- if x != nil && x.typ == nil { +- return true +- } +- } +- return false +-} +- +-// norm returns the normal form of xl. +-func (xl termlist) norm() termlist { +- // Quadratic algorithm, but good enough for now. +- // TODO(gri) fix asymptotic performance +- used := make([]bool, len(xl)) +- var rl termlist +- for i, xi := range xl { +- if xi == nil || used[i] { +- continue +- } +- for j := i + 1; j < len(xl); j++ { +- xj := xl[j] +- if xj == nil || used[j] { +- continue +- } +- if u1, u2 := xi.union(xj); u2 == nil { +- // If we encounter a 𝓀 term, the entire list is 𝓀. +- // Exit early. +- // (Note that this is not just an optimization; +- // if we continue, we may end up with a 𝓀 term +- // and other terms and the result would not be +- // in normal form.) +- if u1.typ == nil { +- return allTermlist +- } +- xi = u1 +- used[j] = true // xj is now unioned into xi - ignore it in future iterations +- } +- } +- rl = append(rl, xi) +- } +- return rl +-} +- +-// union returns the union xl βˆͺ yl. +-func (xl termlist) union(yl termlist) termlist { +- return append(xl, yl...).norm() +-} +- +-// intersect returns the intersection xl ∩ yl. +-func (xl termlist) intersect(yl termlist) termlist { +- if xl.isEmpty() || yl.isEmpty() { +- return nil +- } +- +- // Quadratic algorithm, but good enough for now. +- // TODO(gri) fix asymptotic performance +- var rl termlist +- for _, x := range xl { +- for _, y := range yl { +- if r := x.intersect(y); r != nil { +- rl = append(rl, r) +- } +- } +- } +- return rl.norm() +-} +- +-// equal reports whether xl and yl represent the same type set. +-func (xl termlist) equal(yl termlist) bool { +- // TODO(gri) this should be more efficient +- return xl.subsetOf(yl) && yl.subsetOf(xl) +-} +- +-// includes reports whether t ∈ xl. +-func (xl termlist) includes(t types.Type) bool { +- for _, x := range xl { +- if x.includes(t) { +- return true +- } +- } +- return false +-} +- +-// supersetOf reports whether y βŠ† xl. +-func (xl termlist) supersetOf(y *term) bool { +- for _, x := range xl { +- if y.subsetOf(x) { +- return true +- } +- } +- return false +-} +- +-// subsetOf reports whether xl βŠ† yl. +-func (xl termlist) subsetOf(yl termlist) bool { +- if yl.isEmpty() { +- return xl.isEmpty() +- } +- +- // each term x of xl must be a subset of yl +- for _, x := range xl { +- if !yl.supersetOf(x) { +- return false // x is not a subset yl +- } +- } +- return true +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go +deleted file mode 100644 +index 7ed86e1711..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go ++++ /dev/null +@@ -1,197 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build !go1.18 +-// +build !go1.18 +- +-package typeparams +- +-import ( +- "go/ast" +- "go/token" +- "go/types" +-) +- +-func unsupported() { +- panic("type parameters are unsupported at this go version") +-} +- +-// IndexListExpr is a placeholder type, as type parameters are not supported at +-// this Go version. Its methods panic on use. +-type IndexListExpr struct { +- ast.Expr +- X ast.Expr // expression +- Lbrack token.Pos // position of "[" +- Indices []ast.Expr // index expressions +- Rbrack token.Pos // position of "]" +-} +- +-// ForTypeSpec returns an empty field list, as type parameters on not supported +-// at this Go version. +-func ForTypeSpec(*ast.TypeSpec) *ast.FieldList { +- return nil +-} +- +-// ForFuncType returns an empty field list, as type parameters are not +-// supported at this Go version. +-func ForFuncType(*ast.FuncType) *ast.FieldList { +- return nil +-} +- +-// TypeParam is a placeholder type, as type parameters are not supported at +-// this Go version. Its methods panic on use. +-type TypeParam struct{ types.Type } +- +-func (*TypeParam) Index() int { unsupported(); return 0 } +-func (*TypeParam) Constraint() types.Type { unsupported(); return nil } +-func (*TypeParam) Obj() *types.TypeName { unsupported(); return nil } +- +-// TypeParamList is a placeholder for an empty type parameter list. +-type TypeParamList struct{} +- +-func (*TypeParamList) Len() int { return 0 } +-func (*TypeParamList) At(int) *TypeParam { unsupported(); return nil } +- +-// TypeList is a placeholder for an empty type list. +-type TypeList struct{} +- +-func (*TypeList) Len() int { return 0 } +-func (*TypeList) At(int) types.Type { unsupported(); return nil } +- +-// NewTypeParam is unsupported at this Go version, and panics. +-func NewTypeParam(name *types.TypeName, constraint types.Type) *TypeParam { +- unsupported() +- return nil +-} +- +-// SetTypeParamConstraint is unsupported at this Go version, and panics. +-func SetTypeParamConstraint(tparam *TypeParam, constraint types.Type) { +- unsupported() +-} +- +-// NewSignatureType calls types.NewSignature, panicking if recvTypeParams or +-// typeParams is non-empty. +-func NewSignatureType(recv *types.Var, recvTypeParams, typeParams []*TypeParam, params, results *types.Tuple, variadic bool) *types.Signature { +- if len(recvTypeParams) != 0 || len(typeParams) != 0 { +- panic("signatures cannot have type parameters at this Go version") +- } +- return types.NewSignature(recv, params, results, variadic) +-} +- +-// ForSignature returns an empty slice. +-func ForSignature(*types.Signature) *TypeParamList { +- return nil +-} +- +-// RecvTypeParams returns a nil slice. +-func RecvTypeParams(sig *types.Signature) *TypeParamList { +- return nil +-} +- +-// IsComparable returns false, as no interfaces are type-restricted at this Go +-// version. +-func IsComparable(*types.Interface) bool { +- return false +-} +- +-// IsMethodSet returns true, as no interfaces are type-restricted at this Go +-// version. +-func IsMethodSet(*types.Interface) bool { +- return true +-} +- +-// IsImplicit returns false, as no interfaces are implicit at this Go version. +-func IsImplicit(*types.Interface) bool { +- return false +-} +- +-// MarkImplicit does nothing, because this Go version does not have implicit +-// interfaces. +-func MarkImplicit(*types.Interface) {} +- +-// ForNamed returns an empty type parameter list, as type parameters are not +-// supported at this Go version. +-func ForNamed(*types.Named) *TypeParamList { +- return nil +-} +- +-// SetForNamed panics if tparams is non-empty. +-func SetForNamed(_ *types.Named, tparams []*TypeParam) { +- if len(tparams) > 0 { +- unsupported() +- } +-} +- +-// NamedTypeArgs returns nil. +-func NamedTypeArgs(*types.Named) *TypeList { +- return nil +-} +- +-// NamedTypeOrigin is the identity method at this Go version. +-func NamedTypeOrigin(named *types.Named) *types.Named { +- return named +-} +- +-// Term holds information about a structural type restriction. +-type Term struct { +- tilde bool +- typ types.Type +-} +- +-func (m *Term) Tilde() bool { return m.tilde } +-func (m *Term) Type() types.Type { return m.typ } +-func (m *Term) String() string { +- pre := "" +- if m.tilde { +- pre = "~" +- } +- return pre + m.typ.String() +-} +- +-// NewTerm is unsupported at this Go version, and panics. +-func NewTerm(tilde bool, typ types.Type) *Term { +- return &Term{tilde, typ} +-} +- +-// Union is a placeholder type, as type parameters are not supported at this Go +-// version. Its methods panic on use. +-type Union struct{ types.Type } +- +-func (*Union) Len() int { return 0 } +-func (*Union) Term(i int) *Term { unsupported(); return nil } +- +-// NewUnion is unsupported at this Go version, and panics. +-func NewUnion(terms []*Term) *Union { +- unsupported() +- return nil +-} +- +-// InitInstanceInfo is a noop at this Go version. +-func InitInstanceInfo(*types.Info) {} +- +-// Instance is a placeholder type, as type parameters are not supported at this +-// Go version. +-type Instance struct { +- TypeArgs *TypeList +- Type types.Type +-} +- +-// GetInstances returns a nil map, as type parameters are not supported at this +-// Go version. +-func GetInstances(info *types.Info) map[*ast.Ident]Instance { return nil } +- +-// Context is a placeholder type, as type parameters are not supported at +-// this Go version. +-type Context struct{} +- +-// NewContext returns a placeholder Context instance. +-func NewContext() *Context { +- return &Context{} +-} +- +-// Instantiate is unsupported on this Go version, and panics. +-func Instantiate(ctxt *Context, typ types.Type, targs []types.Type, validate bool) (types.Type, error) { +- unsupported() +- return nil, nil +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go +deleted file mode 100644 +index cf301af1db..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go ++++ /dev/null +@@ -1,151 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.18 +-// +build go1.18 +- +-package typeparams +- +-import ( +- "go/ast" +- "go/types" +-) +- +-// IndexListExpr is an alias for ast.IndexListExpr. +-type IndexListExpr = ast.IndexListExpr +- +-// ForTypeSpec returns n.TypeParams. +-func ForTypeSpec(n *ast.TypeSpec) *ast.FieldList { +- if n == nil { +- return nil +- } +- return n.TypeParams +-} +- +-// ForFuncType returns n.TypeParams. +-func ForFuncType(n *ast.FuncType) *ast.FieldList { +- if n == nil { +- return nil +- } +- return n.TypeParams +-} +- +-// TypeParam is an alias for types.TypeParam +-type TypeParam = types.TypeParam +- +-// TypeParamList is an alias for types.TypeParamList +-type TypeParamList = types.TypeParamList +- +-// TypeList is an alias for types.TypeList +-type TypeList = types.TypeList +- +-// NewTypeParam calls types.NewTypeParam. +-func NewTypeParam(name *types.TypeName, constraint types.Type) *TypeParam { +- return types.NewTypeParam(name, constraint) +-} +- +-// SetTypeParamConstraint calls tparam.SetConstraint(constraint). +-func SetTypeParamConstraint(tparam *TypeParam, constraint types.Type) { +- tparam.SetConstraint(constraint) +-} +- +-// NewSignatureType calls types.NewSignatureType. +-func NewSignatureType(recv *types.Var, recvTypeParams, typeParams []*TypeParam, params, results *types.Tuple, variadic bool) *types.Signature { +- return types.NewSignatureType(recv, recvTypeParams, typeParams, params, results, variadic) +-} +- +-// ForSignature returns sig.TypeParams() +-func ForSignature(sig *types.Signature) *TypeParamList { +- return sig.TypeParams() +-} +- +-// RecvTypeParams returns sig.RecvTypeParams(). +-func RecvTypeParams(sig *types.Signature) *TypeParamList { +- return sig.RecvTypeParams() +-} +- +-// IsComparable calls iface.IsComparable(). +-func IsComparable(iface *types.Interface) bool { +- return iface.IsComparable() +-} +- +-// IsMethodSet calls iface.IsMethodSet(). +-func IsMethodSet(iface *types.Interface) bool { +- return iface.IsMethodSet() +-} +- +-// IsImplicit calls iface.IsImplicit(). +-func IsImplicit(iface *types.Interface) bool { +- return iface.IsImplicit() +-} +- +-// MarkImplicit calls iface.MarkImplicit(). +-func MarkImplicit(iface *types.Interface) { +- iface.MarkImplicit() +-} +- +-// ForNamed extracts the (possibly empty) type parameter object list from +-// named. +-func ForNamed(named *types.Named) *TypeParamList { +- return named.TypeParams() +-} +- +-// SetForNamed sets the type params tparams on n. Each tparam must be of +-// dynamic type *types.TypeParam. +-func SetForNamed(n *types.Named, tparams []*TypeParam) { +- n.SetTypeParams(tparams) +-} +- +-// NamedTypeArgs returns named.TypeArgs(). +-func NamedTypeArgs(named *types.Named) *TypeList { +- return named.TypeArgs() +-} +- +-// NamedTypeOrigin returns named.Orig(). +-func NamedTypeOrigin(named *types.Named) *types.Named { +- return named.Origin() +-} +- +-// Term is an alias for types.Term. +-type Term = types.Term +- +-// NewTerm calls types.NewTerm. +-func NewTerm(tilde bool, typ types.Type) *Term { +- return types.NewTerm(tilde, typ) +-} +- +-// Union is an alias for types.Union +-type Union = types.Union +- +-// NewUnion calls types.NewUnion. +-func NewUnion(terms []*Term) *Union { +- return types.NewUnion(terms) +-} +- +-// InitInstanceInfo initializes info to record information about type and +-// function instances. +-func InitInstanceInfo(info *types.Info) { +- info.Instances = make(map[*ast.Ident]types.Instance) +-} +- +-// Instance is an alias for types.Instance. +-type Instance = types.Instance +- +-// GetInstances returns info.Instances. +-func GetInstances(info *types.Info) map[*ast.Ident]Instance { +- return info.Instances +-} +- +-// Context is an alias for types.Context. +-type Context = types.Context +- +-// NewContext calls types.NewContext. +-func NewContext() *Context { +- return types.NewContext() +-} +- +-// Instantiate calls types.Instantiate. +-func Instantiate(ctxt *Context, typ types.Type, targs []types.Type, validate bool) (types.Type, error) { +- return types.Instantiate(ctxt, typ, targs, validate) +-} +diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +deleted file mode 100644 +index 7350bb702a..0000000000 +--- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go ++++ /dev/null +@@ -1,169 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-// Code generated by copytermlist.go DO NOT EDIT. +- +-package typeparams +- +-import "go/types" +- +-// A term describes elementary type sets: +-// +-// βˆ…: (*term)(nil) == βˆ… // set of no types (empty set) +-// 𝓀: &term{} == 𝓀 // set of all types (𝓀niverse) +-// T: &term{false, T} == {T} // set of type T +-// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t +-type term struct { +- tilde bool // valid if typ != nil +- typ types.Type +-} +- +-func (x *term) String() string { +- switch { +- case x == nil: +- return "βˆ…" +- case x.typ == nil: +- return "𝓀" +- case x.tilde: +- return "~" + x.typ.String() +- default: +- return x.typ.String() +- } +-} +- +-// equal reports whether x and y represent the same type set. +-func (x *term) equal(y *term) bool { +- // easy cases +- switch { +- case x == nil || y == nil: +- return x == y +- case x.typ == nil || y.typ == nil: +- return x.typ == y.typ +- } +- // βˆ… βŠ‚ x, y βŠ‚ 𝓀 +- +- return x.tilde == y.tilde && types.Identical(x.typ, y.typ) +-} +- +-// union returns the union x βˆͺ y: zero, one, or two non-nil terms. +-func (x *term) union(y *term) (_, _ *term) { +- // easy cases +- switch { +- case x == nil && y == nil: +- return nil, nil // βˆ… βˆͺ βˆ… == βˆ… +- case x == nil: +- return y, nil // βˆ… βˆͺ y == y +- case y == nil: +- return x, nil // x βˆͺ βˆ… == x +- case x.typ == nil: +- return x, nil // 𝓀 βˆͺ y == 𝓀 +- case y.typ == nil: +- return y, nil // x βˆͺ 𝓀 == 𝓀 +- } +- // βˆ… βŠ‚ x, y βŠ‚ 𝓀 +- +- if x.disjoint(y) { +- return x, y // x βˆͺ y == (x, y) if x ∩ y == βˆ… +- } +- // x.typ == y.typ +- +- // ~t βˆͺ ~t == ~t +- // ~t βˆͺ T == ~t +- // T βˆͺ ~t == ~t +- // T βˆͺ T == T +- if x.tilde || !y.tilde { +- return x, nil +- } +- return y, nil +-} +- +-// intersect returns the intersection x ∩ y. +-func (x *term) intersect(y *term) *term { +- // easy cases +- switch { +- case x == nil || y == nil: +- return nil // βˆ… ∩ y == βˆ… and ∩ βˆ… == βˆ… +- case x.typ == nil: +- return y // 𝓀 ∩ y == y +- case y.typ == nil: +- return x // x ∩ 𝓀 == x +- } +- // βˆ… βŠ‚ x, y βŠ‚ 𝓀 +- +- if x.disjoint(y) { +- return nil // x ∩ y == βˆ… if x ∩ y == βˆ… +- } +- // x.typ == y.typ +- +- // ~t ∩ ~t == ~t +- // ~t ∩ T == T +- // T ∩ ~t == T +- // T ∩ T == T +- if !x.tilde || y.tilde { +- return x +- } +- return y +-} +- +-// includes reports whether t ∈ x. +-func (x *term) includes(t types.Type) bool { +- // easy cases +- switch { +- case x == nil: +- return false // t ∈ βˆ… == false +- case x.typ == nil: +- return true // t ∈ 𝓀 == true +- } +- // βˆ… βŠ‚ x βŠ‚ 𝓀 +- +- u := t +- if x.tilde { +- u = under(u) +- } +- return types.Identical(x.typ, u) +-} +- +-// subsetOf reports whether x βŠ† y. +-func (x *term) subsetOf(y *term) bool { +- // easy cases +- switch { +- case x == nil: +- return true // βˆ… βŠ† y == true +- case y == nil: +- return false // x βŠ† βˆ… == false since x != βˆ… +- case y.typ == nil: +- return true // x βŠ† 𝓀 == true +- case x.typ == nil: +- return false // 𝓀 βŠ† y == false since y != 𝓀 +- } +- // βˆ… βŠ‚ x, y βŠ‚ 𝓀 +- +- if x.disjoint(y) { +- return false // x βŠ† y == false if x ∩ y == βˆ… +- } +- // x.typ == y.typ +- +- // ~t βŠ† ~t == true +- // ~t βŠ† T == false +- // T βŠ† ~t == true +- // T βŠ† T == true +- return !x.tilde || y.tilde +-} +- +-// disjoint reports whether x ∩ y == βˆ…. +-// x.typ and y.typ must not be nil. +-func (x *term) disjoint(y *term) bool { +- if debug && (x.typ == nil || y.typ == nil) { +- panic("invalid argument(s)") +- } +- ux := x.typ +- if y.tilde { +- ux = under(ux) +- } +- uy := y.typ +- if x.tilde { +- uy = under(uy) +- } +- return !types.Identical(ux, uy) +-} +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +index 07484073a5..834e05381c 100644 +--- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go ++++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +@@ -167,7 +167,7 @@ const ( + UntypedNilUse + + // WrongAssignCount occurs when the number of values on the right-hand side +- // of an assignment or or initialization expression does not match the number ++ // of an assignment or initialization expression does not match the number + // of variables on the left-hand side. + // + // Example: +@@ -1449,10 +1449,10 @@ const ( + NotAGenericType + + // WrongTypeArgCount occurs when a type or function is instantiated with an +- // incorrent number of type arguments, including when a generic type or ++ // incorrect number of type arguments, including when a generic type or + // function is used without instantiation. + // +- // Errors inolving failed type inference are assigned other error codes. ++ // Errors involving failed type inference are assigned other error codes. + // + // Example: + // type T[p any] int +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go b/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go +deleted file mode 100644 +index 5e96e89557..0000000000 +--- a/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go ++++ /dev/null +@@ -1,24 +0,0 @@ +-// Copyright 2023 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-package typesinternal +- +-import "go/types" +- +-// This file contains back doors that allow gopls to avoid method sorting when +-// using the objectpath package. +-// +-// This is performance-critical in certain repositories, but changing the +-// behavior of the objectpath package is still being discussed in +-// golang/go#61443. If we decide to remove the sorting in objectpath we can +-// simply delete these back doors. Otherwise, we should add a new API to +-// objectpath that allows controlling the sorting. +- +-// SkipEncoderMethodSorting marks enc (which must be an *objectpath.Encoder) as +-// not requiring sorted methods. +-var SkipEncoderMethodSorting func(enc interface{}) +- +-// ObjectpathObject is like objectpath.Object, but allows suppressing method +-// sorting. +-var ObjectpathObject func(pkg *types.Package, p string, skipMethodSorting bool) (types.Object, error) +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go +new file mode 100644 +index 0000000000..fea7c8b75e +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/typesinternal/recv.go +@@ -0,0 +1,43 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package typesinternal ++ ++import ( ++ "go/types" ++ ++ "golang.org/x/tools/internal/aliases" ++) ++ ++// ReceiverNamed returns the named type (if any) associated with the ++// type of recv, which may be of the form N or *N, or aliases thereof. ++// It also reports whether a Pointer was present. ++func ReceiverNamed(recv *types.Var) (isPtr bool, named *types.Named) { ++ t := recv.Type() ++ if ptr, ok := aliases.Unalias(t).(*types.Pointer); ok { ++ isPtr = true ++ t = ptr.Elem() ++ } ++ named, _ = aliases.Unalias(t).(*types.Named) ++ return ++} ++ ++// Unpointer returns T given *T or an alias thereof. ++// For all other types it is the identity function. ++// It does not look at underlying types. ++// The result may be an alias. ++// ++// Use this function to strip off the optional pointer on a receiver ++// in a field or method selection, without losing the named type ++// (which is needed to compute the method set). ++// ++// See also [typeparams.MustDeref], which removes one level of ++// indirection from the type, regardless of named types (analogous to ++// a LOAD instruction). ++func Unpointer(t types.Type) types.Type { ++ if ptr, ok := aliases.Unalias(t).(*types.Pointer); ok { ++ return ptr.Elem() ++ } ++ return t ++} +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go +new file mode 100644 +index 0000000000..cc86487eaa +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go +@@ -0,0 +1,89 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package typesinternal ++ ++import ( ++ "go/types" ++ ++ "golang.org/x/tools/internal/stdlib" ++ "golang.org/x/tools/internal/versions" ++) ++ ++// TooNewStdSymbols computes the set of package-level symbols ++// exported by pkg that are not available at the specified version. ++// The result maps each symbol to its minimum version. ++// ++// The pkg is allowed to contain type errors. ++func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string { ++ disallowed := make(map[types.Object]string) ++ ++ // Pass 1: package-level symbols. ++ symbols := stdlib.PackageSymbols[pkg.Path()] ++ for _, sym := range symbols { ++ symver := sym.Version.String() ++ if versions.Before(version, symver) { ++ switch sym.Kind { ++ case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type: ++ disallowed[pkg.Scope().Lookup(sym.Name)] = symver ++ } ++ } ++ } ++ ++ // Pass 2: fields and methods. ++ // ++ // We allow fields and methods if their associated type is ++ // disallowed, as otherwise we would report false positives ++ // for compatibility shims. Consider: ++ // ++ // //go:build go1.22 ++ // type T struct { F std.Real } // correct new API ++ // ++ // //go:build !go1.22 ++ // type T struct { F fake } // shim ++ // type fake struct { ... } ++ // func (fake) M () {} ++ // ++ // These alternative declarations of T use either the std.Real ++ // type, introduced in go1.22, or a fake type, for the field ++ // F. (The fakery could be arbitrarily deep, involving more ++ // nested fields and methods than are shown here.) Clients ++ // that use the compatibility shim T will compile with any ++ // version of go, whether older or newer than go1.22, but only ++ // the newer version will use the std.Real implementation. ++ // ++ // Now consider a reference to method M in new(T).F.M() in a ++ // module that requires a minimum of go1.21. The analysis may ++ // occur using a version of Go higher than 1.21, selecting the ++ // first version of T, so the method M is Real.M. This would ++ // spuriously cause the analyzer to report a reference to a ++ // too-new symbol even though this expression compiles just ++ // fine (with the fake implementation) using go1.21. ++ for _, sym := range symbols { ++ symVersion := sym.Version.String() ++ if !versions.Before(version, symVersion) { ++ continue // allowed ++ } ++ ++ var obj types.Object ++ switch sym.Kind { ++ case stdlib.Field: ++ typename, name := sym.SplitField() ++ if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" { ++ obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name) ++ } ++ ++ case stdlib.Method: ++ ptr, recvname, name := sym.SplitMethod() ++ if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" { ++ obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name) ++ } ++ } ++ if obj != nil { ++ disallowed[obj] = symVersion ++ } ++ } ++ ++ return disallowed ++} +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go +index ce7d4351b2..7c77c2fbc0 100644 +--- a/vendor/golang.org/x/tools/internal/typesinternal/types.go ++++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go +@@ -48,5 +48,3 @@ func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, + } + return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true + } +- +-var SetGoVersion = func(conf *types.Config, version string) bool { return false } +diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types_118.go b/vendor/golang.org/x/tools/internal/typesinternal/types_118.go +deleted file mode 100644 +index a42b072a67..0000000000 +--- a/vendor/golang.org/x/tools/internal/typesinternal/types_118.go ++++ /dev/null +@@ -1,19 +0,0 @@ +-// Copyright 2021 The Go Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style +-// license that can be found in the LICENSE file. +- +-//go:build go1.18 +-// +build go1.18 +- +-package typesinternal +- +-import ( +- "go/types" +-) +- +-func init() { +- SetGoVersion = func(conf *types.Config, version string) bool { +- conf.GoVersion = version +- return true +- } +-} +diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go +new file mode 100644 +index 0000000000..b53f178616 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/features.go +@@ -0,0 +1,43 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package versions ++ ++// This file contains predicates for working with file versions to ++// decide when a tool should consider a language feature enabled. ++ ++// GoVersions that features in x/tools can be gated to. ++const ( ++ Go1_18 = "go1.18" ++ Go1_19 = "go1.19" ++ Go1_20 = "go1.20" ++ Go1_21 = "go1.21" ++ Go1_22 = "go1.22" ++) ++ ++// Future is an invalid unknown Go version sometime in the future. ++// Do not use directly with Compare. ++const Future = "" ++ ++// AtLeast reports whether the file version v comes after a Go release. ++// ++// Use this predicate to enable a behavior once a certain Go release ++// has happened (and stays enabled in the future). ++func AtLeast(v, release string) bool { ++ if v == Future { ++ return true // an unknown future version is always after y. ++ } ++ return Compare(Lang(v), Lang(release)) >= 0 ++} ++ ++// Before reports whether the file version v is strictly before a Go release. ++// ++// Use this predicate to disable a behavior once a certain Go release ++// has happened (and stays enabled in the future). ++func Before(v, release string) bool { ++ if v == Future { ++ return false // an unknown future version happens after y. ++ } ++ return Compare(Lang(v), Lang(release)) < 0 ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/gover.go b/vendor/golang.org/x/tools/internal/versions/gover.go +new file mode 100644 +index 0000000000..bbabcd22e9 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/gover.go +@@ -0,0 +1,172 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// This is a fork of internal/gover for use by x/tools until ++// go1.21 and earlier are no longer supported by x/tools. ++ ++package versions ++ ++import "strings" ++ ++// A gover is a parsed Go gover: major[.Minor[.Patch]][kind[pre]] ++// The numbers are the original decimal strings to avoid integer overflows ++// and since there is very little actual math. (Probably overflow doesn't matter in practice, ++// but at the time this code was written, there was an existing test that used ++// go1.99999999999, which does not fit in an int on 32-bit platforms. ++// The "big decimal" representation avoids the problem entirely.) ++type gover struct { ++ major string // decimal ++ minor string // decimal or "" ++ patch string // decimal or "" ++ kind string // "", "alpha", "beta", "rc" ++ pre string // decimal or "" ++} ++ ++// compare returns -1, 0, or +1 depending on whether ++// x < y, x == y, or x > y, interpreted as toolchain versions. ++// The versions x and y must not begin with a "go" prefix: just "1.21" not "go1.21". ++// Malformed versions compare less than well-formed versions and equal to each other. ++// The language version "1.21" compares less than the release candidate and eventual releases "1.21rc1" and "1.21.0". ++func compare(x, y string) int { ++ vx := parse(x) ++ vy := parse(y) ++ ++ if c := cmpInt(vx.major, vy.major); c != 0 { ++ return c ++ } ++ if c := cmpInt(vx.minor, vy.minor); c != 0 { ++ return c ++ } ++ if c := cmpInt(vx.patch, vy.patch); c != 0 { ++ return c ++ } ++ if c := strings.Compare(vx.kind, vy.kind); c != 0 { // "" < alpha < beta < rc ++ return c ++ } ++ if c := cmpInt(vx.pre, vy.pre); c != 0 { ++ return c ++ } ++ return 0 ++} ++ ++// lang returns the Go language version. For example, lang("1.2.3") == "1.2". ++func lang(x string) string { ++ v := parse(x) ++ if v.minor == "" || v.major == "1" && v.minor == "0" { ++ return v.major ++ } ++ return v.major + "." + v.minor ++} ++ ++// isValid reports whether the version x is valid. ++func isValid(x string) bool { ++ return parse(x) != gover{} ++} ++ ++// parse parses the Go version string x into a version. ++// It returns the zero version if x is malformed. ++func parse(x string) gover { ++ var v gover ++ ++ // Parse major version. ++ var ok bool ++ v.major, x, ok = cutInt(x) ++ if !ok { ++ return gover{} ++ } ++ if x == "" { ++ // Interpret "1" as "1.0.0". ++ v.minor = "0" ++ v.patch = "0" ++ return v ++ } ++ ++ // Parse . before minor version. ++ if x[0] != '.' { ++ return gover{} ++ } ++ ++ // Parse minor version. ++ v.minor, x, ok = cutInt(x[1:]) ++ if !ok { ++ return gover{} ++ } ++ if x == "" { ++ // Patch missing is same as "0" for older versions. ++ // Starting in Go 1.21, patch missing is different from explicit .0. ++ if cmpInt(v.minor, "21") < 0 { ++ v.patch = "0" ++ } ++ return v ++ } ++ ++ // Parse patch if present. ++ if x[0] == '.' { ++ v.patch, x, ok = cutInt(x[1:]) ++ if !ok || x != "" { ++ // Note that we are disallowing prereleases (alpha, beta, rc) for patch releases here (x != ""). ++ // Allowing them would be a bit confusing because we already have: ++ // 1.21 < 1.21rc1 ++ // But a prerelease of a patch would have the opposite effect: ++ // 1.21.3rc1 < 1.21.3 ++ // We've never needed them before, so let's not start now. ++ return gover{} ++ } ++ return v ++ } ++ ++ // Parse prerelease. ++ i := 0 ++ for i < len(x) && (x[i] < '0' || '9' < x[i]) { ++ if x[i] < 'a' || 'z' < x[i] { ++ return gover{} ++ } ++ i++ ++ } ++ if i == 0 { ++ return gover{} ++ } ++ v.kind, x = x[:i], x[i:] ++ if x == "" { ++ return v ++ } ++ v.pre, x, ok = cutInt(x) ++ if !ok || x != "" { ++ return gover{} ++ } ++ ++ return v ++} ++ ++// cutInt scans the leading decimal number at the start of x to an integer ++// and returns that value and the rest of the string. ++func cutInt(x string) (n, rest string, ok bool) { ++ i := 0 ++ for i < len(x) && '0' <= x[i] && x[i] <= '9' { ++ i++ ++ } ++ if i == 0 || x[0] == '0' && i != 1 { // no digits or unnecessary leading zero ++ return "", "", false ++ } ++ return x[:i], x[i:], true ++} ++ ++// cmpInt returns cmp.Compare(x, y) interpreting x and y as decimal numbers. ++// (Copied from golang.org/x/mod/semver's compareInt.) ++func cmpInt(x, y string) int { ++ if x == y { ++ return 0 ++ } ++ if len(x) < len(y) { ++ return -1 ++ } ++ if len(x) > len(y) { ++ return +1 ++ } ++ if x < y { ++ return -1 ++ } else { ++ return +1 ++ } ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain.go b/vendor/golang.org/x/tools/internal/versions/toolchain.go +new file mode 100644 +index 0000000000..377bf7a53b +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/toolchain.go +@@ -0,0 +1,14 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package versions ++ ++// toolchain is maximum version (<1.22) that the go toolchain used ++// to build the current tool is known to support. ++// ++// When a tool is built with >=1.22, the value of toolchain is unused. ++// ++// x/tools does not support building with go <1.18. So we take this ++// as the minimum possible maximum. ++var toolchain string = Go1_18 +diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go +new file mode 100644 +index 0000000000..f65beed9d8 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go +@@ -0,0 +1,14 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.19 ++// +build go1.19 ++ ++package versions ++ ++func init() { ++ if Compare(toolchain, Go1_19) < 0 { ++ toolchain = Go1_19 ++ } ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go +new file mode 100644 +index 0000000000..1a9efa126c +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go +@@ -0,0 +1,14 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.20 ++// +build go1.20 ++ ++package versions ++ ++func init() { ++ if Compare(toolchain, Go1_20) < 0 { ++ toolchain = Go1_20 ++ } ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go +new file mode 100644 +index 0000000000..b7ef216dfe +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go +@@ -0,0 +1,14 @@ ++// Copyright 2024 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.21 ++// +build go1.21 ++ ++package versions ++ ++func init() { ++ if Compare(toolchain, Go1_21) < 0 { ++ toolchain = Go1_21 ++ } ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/types.go b/vendor/golang.org/x/tools/internal/versions/types.go +new file mode 100644 +index 0000000000..562eef21fa +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/types.go +@@ -0,0 +1,19 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package versions ++ ++import ( ++ "go/types" ++) ++ ++// GoVersion returns the Go version of the type package. ++// It returns zero if no version can be determined. ++func GoVersion(pkg *types.Package) string { ++ // TODO(taking): x/tools can call GoVersion() [from 1.21] after 1.25. ++ if pkg, ok := any(pkg).(interface{ GoVersion() string }); ok { ++ return pkg.GoVersion() ++ } ++ return "" ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/types_go121.go b/vendor/golang.org/x/tools/internal/versions/types_go121.go +new file mode 100644 +index 0000000000..b4345d3349 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/types_go121.go +@@ -0,0 +1,30 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build !go1.22 ++// +build !go1.22 ++ ++package versions ++ ++import ( ++ "go/ast" ++ "go/types" ++) ++ ++// FileVersion returns a language version (<=1.21) derived from runtime.Version() ++// or an unknown future version. ++func FileVersion(info *types.Info, file *ast.File) string { ++ // In x/tools built with Go <= 1.21, we do not have Info.FileVersions ++ // available. We use a go version derived from the toolchain used to ++ // compile the tool by default. ++ // This will be <= go1.21. We take this as the maximum version that ++ // this tool can support. ++ // ++ // There are no features currently in x/tools that need to tell fine grained ++ // differences for versions <1.22. ++ return toolchain ++} ++ ++// InitFileVersions is a noop when compiled with this Go version. ++func InitFileVersions(*types.Info) {} +diff --git a/vendor/golang.org/x/tools/internal/versions/types_go122.go b/vendor/golang.org/x/tools/internal/versions/types_go122.go +new file mode 100644 +index 0000000000..e8180632a5 +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/types_go122.go +@@ -0,0 +1,41 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++//go:build go1.22 ++// +build go1.22 ++ ++package versions ++ ++import ( ++ "go/ast" ++ "go/types" ++) ++ ++// FileVersions returns a file's Go version. ++// The reported version is an unknown Future version if a ++// version cannot be determined. ++func FileVersion(info *types.Info, file *ast.File) string { ++ // In tools built with Go >= 1.22, the Go version of a file ++ // follow a cascades of sources: ++ // 1) types.Info.FileVersion, which follows the cascade: ++ // 1.a) file version (ast.File.GoVersion), ++ // 1.b) the package version (types.Config.GoVersion), or ++ // 2) is some unknown Future version. ++ // ++ // File versions require a valid package version to be provided to types ++ // in Config.GoVersion. Config.GoVersion is either from the package's module ++ // or the toolchain (go run). This value should be provided by go/packages ++ // or unitchecker.Config.GoVersion. ++ if v := info.FileVersions[file]; IsValid(v) { ++ return v ++ } ++ // Note: we could instead return runtime.Version() [if valid]. ++ // This would act as a max version on what a tool can support. ++ return Future ++} ++ ++// InitFileVersions initializes info to record Go versions for Go files. ++func InitFileVersions(info *types.Info) { ++ info.FileVersions = make(map[*ast.File]string) ++} +diff --git a/vendor/golang.org/x/tools/internal/versions/versions.go b/vendor/golang.org/x/tools/internal/versions/versions.go +new file mode 100644 +index 0000000000..8d1f7453db +--- /dev/null ++++ b/vendor/golang.org/x/tools/internal/versions/versions.go +@@ -0,0 +1,57 @@ ++// Copyright 2023 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package versions ++ ++import ( ++ "strings" ++) ++ ++// Note: If we use build tags to use go/versions when go >=1.22, ++// we run into go.dev/issue/53737. Under some operations users would see an ++// import of "go/versions" even if they would not compile the file. ++// For example, during `go get -u ./...` (go.dev/issue/64490) we do not try to include ++// For this reason, this library just a clone of go/versions for the moment. ++ ++// Lang returns the Go language version for version x. ++// If x is not a valid version, Lang returns the empty string. ++// For example: ++// ++// Lang("go1.21rc2") = "go1.21" ++// Lang("go1.21.2") = "go1.21" ++// Lang("go1.21") = "go1.21" ++// Lang("go1") = "go1" ++// Lang("bad") = "" ++// Lang("1.21") = "" ++func Lang(x string) string { ++ v := lang(stripGo(x)) ++ if v == "" { ++ return "" ++ } ++ return x[:2+len(v)] // "go"+v without allocation ++} ++ ++// Compare returns -1, 0, or +1 depending on whether ++// x < y, x == y, or x > y, interpreted as Go versions. ++// The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". ++// Invalid versions, including the empty string, compare less than ++// valid versions and equal to each other. ++// The language version "go1.21" compares less than the ++// release candidate and eventual releases "go1.21rc1" and "go1.21.0". ++// Custom toolchain suffixes are ignored during comparison: ++// "go1.21.0" and "go1.21.0-bigcorp" are equal. ++func Compare(x, y string) int { return compare(stripGo(x), stripGo(y)) } ++ ++// IsValid reports whether the version x is valid. ++func IsValid(x string) bool { return isValid(stripGo(x)) } ++ ++// stripGo converts from a "go1.21" version to a "1.21" version. ++// If v does not start with "go", stripGo returns the empty string (a known invalid version). ++func stripGo(v string) string { ++ v, _, _ = strings.Cut(v, "-") // strip -bigcorp suffix. ++ if len(v) < 2 || v[:2] != "go" { ++ return "" ++ } ++ return v[2:] ++} +diff --git a/vendor/gopkg.in/go-jose/go-jose.v2/CHANGELOG.md b/vendor/gopkg.in/go-jose/go-jose.v2/CHANGELOG.md +index c77b25cf2c..8e6e913239 100644 +--- a/vendor/gopkg.in/go-jose/go-jose.v2/CHANGELOG.md ++++ b/vendor/gopkg.in/go-jose/go-jose.v2/CHANGELOG.md +@@ -81,4 +81,4 @@ token". + + ## Fixed + +- - Limit decompression output size to prevent a DoS. Backport from v4.0.1. +\ No newline at end of file ++ - Limit decompression output size to prevent a DoS. Backport from v4.0.1. +diff --git a/vendor/gopkg.in/go-jose/go-jose.v2/README.md b/vendor/gopkg.in/go-jose/go-jose.v2/README.md +new file mode 100644 +index 0000000000..b877f412c4 +--- /dev/null ++++ b/vendor/gopkg.in/go-jose/go-jose.v2/README.md +@@ -0,0 +1,4 @@ ++# go-jose v2 ++ ++Version 2 of this library is no longer supported. [Please use v4 ++instead](https://pkg.go.dev/github.com/go-jose/go-jose/v4). +diff --git a/vendor/modules.txt b/vendor/modules.txt +index a80fb52161..021479d5ad 100644 +--- a/vendor/modules.txt ++++ b/vendor/modules.txt +@@ -147,7 +147,7 @@ github.com/containernetworking/cni/pkg/version + # github.com/containernetworking/plugins v1.3.0 + ## explicit; go 1.20 + github.com/containernetworking/plugins/pkg/ns +-# github.com/containers/buildah v1.33.11 ++# github.com/containers/buildah v1.33.12 + ## explicit; go 1.20 + github.com/containers/buildah + github.com/containers/buildah/bind +@@ -160,6 +160,7 @@ github.com/containers/buildah/internal + github.com/containers/buildah/internal/config + github.com/containers/buildah/internal/mkcw + github.com/containers/buildah/internal/mkcw/types ++github.com/containers/buildah/internal/open + github.com/containers/buildah/internal/parse + github.com/containers/buildah/internal/tmpdir + github.com/containers/buildah/internal/util +@@ -243,7 +244,7 @@ github.com/containers/conmon/runner/config + # github.com/containers/gvisor-tap-vsock v0.7.2 + ## explicit; go 1.20 + github.com/containers/gvisor-tap-vsock/pkg/types +-# github.com/containers/image/v5 v5.29.4 ++# github.com/containers/image/v5 v5.29.5 + ## explicit; go 1.19 + github.com/containers/image/v5/copy + github.com/containers/image/v5/directory +@@ -326,7 +327,7 @@ github.com/containers/libtrust + # github.com/containers/luksy v0.0.0-20231030195837-b5a7f79da98b + ## explicit; go 1.20 + github.com/containers/luksy +-# github.com/containers/ocicrypt v1.1.9 ++# github.com/containers/ocicrypt v1.1.10 + ## explicit; go 1.20 + github.com/containers/ocicrypt + github.com/containers/ocicrypt/blockcipher +@@ -537,7 +538,7 @@ github.com/gin-gonic/gin/binding + github.com/gin-gonic/gin/internal/bytesconv + github.com/gin-gonic/gin/internal/json + github.com/gin-gonic/gin/render +-# github.com/go-jose/go-jose/v3 v3.0.1 ++# github.com/go-jose/go-jose/v3 v3.0.3 + ## explicit; go 1.12 + github.com/go-jose/go-jose/v3 + github.com/go-jose/go-jose/v3/cipher +@@ -755,7 +756,7 @@ github.com/mailru/easyjson/jwriter + github.com/manifoldco/promptui + github.com/manifoldco/promptui/list + github.com/manifoldco/promptui/screenbuf +-# github.com/mattn/go-isatty v0.0.19 ++# github.com/mattn/go-isatty v0.0.20 + ## explicit; go 1.15 + github.com/mattn/go-isatty + # github.com/mattn/go-runewidth v0.0.15 +@@ -1128,15 +1129,14 @@ go.opentelemetry.io/otel/trace + # golang.org/x/arch v0.5.0 + ## explicit; go 1.17 + golang.org/x/arch/x86/x86asm +-# golang.org/x/crypto v0.18.0 +-## explicit; go 1.18 ++# golang.org/x/crypto v0.23.0 => github.com/openshift/golang-crypto v0.33.1-0.20250310193910-9003f682e581 ++## explicit; go 1.20 + golang.org/x/crypto/argon2 + golang.org/x/crypto/blake2b + golang.org/x/crypto/blowfish + golang.org/x/crypto/cast5 + golang.org/x/crypto/chacha20 + golang.org/x/crypto/curve25519 +-golang.org/x/crypto/curve25519/internal/field + golang.org/x/crypto/ed25519 + golang.org/x/crypto/internal/alias + golang.org/x/crypto/internal/poly1305 +@@ -1164,11 +1164,11 @@ golang.org/x/crypto/xts + golang.org/x/exp/constraints + golang.org/x/exp/maps + golang.org/x/exp/slices +-# golang.org/x/mod v0.13.0 ++# golang.org/x/mod v0.17.0 + ## explicit; go 1.18 + golang.org/x/mod/semver + golang.org/x/mod/sumdb/note +-# golang.org/x/net v0.18.0 ++# golang.org/x/net v0.25.0 + ## explicit; go 1.18 + golang.org/x/net/bpf + golang.org/x/net/context +@@ -1188,23 +1188,22 @@ golang.org/x/net/trace + ## explicit; go 1.18 + golang.org/x/oauth2 + golang.org/x/oauth2/internal +-# golang.org/x/sync v0.6.0 ++# golang.org/x/sync v0.11.0 + ## explicit; go 1.18 + golang.org/x/sync/errgroup + golang.org/x/sync/semaphore +-# golang.org/x/sys v0.16.0 ++# golang.org/x/sys v0.30.0 + ## explicit; go 1.18 + golang.org/x/sys/cpu +-golang.org/x/sys/execabs + golang.org/x/sys/plan9 + golang.org/x/sys/unix + golang.org/x/sys/windows + golang.org/x/sys/windows/registry + golang.org/x/sys/windows/svc/eventlog +-# golang.org/x/term v0.16.0 ++# golang.org/x/term v0.29.0 + ## explicit; go 1.18 + golang.org/x/term +-# golang.org/x/text v0.14.0 ++# golang.org/x/text v0.22.0 + ## explicit; go 1.18 + golang.org/x/text/encoding + golang.org/x/text/encoding/charmap +@@ -1226,26 +1225,27 @@ golang.org/x/text/secure/bidirule + golang.org/x/text/transform + golang.org/x/text/unicode/bidi + golang.org/x/text/unicode/norm +-# golang.org/x/tools v0.14.0 +-## explicit; go 1.18 ++# golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d ++## explicit; go 1.19 + golang.org/x/tools/cmd/stringer + golang.org/x/tools/go/ast/inspector + golang.org/x/tools/go/gcexportdata + golang.org/x/tools/go/internal/packagesdriver + golang.org/x/tools/go/packages + golang.org/x/tools/go/types/objectpath ++golang.org/x/tools/internal/aliases + golang.org/x/tools/internal/event + golang.org/x/tools/internal/event/core + golang.org/x/tools/internal/event/keys + golang.org/x/tools/internal/event/label +-golang.org/x/tools/internal/event/tag + golang.org/x/tools/internal/gcimporter + golang.org/x/tools/internal/gocommand + golang.org/x/tools/internal/packagesinternal + golang.org/x/tools/internal/pkgbits ++golang.org/x/tools/internal/stdlib + golang.org/x/tools/internal/tokeninternal +-golang.org/x/tools/internal/typeparams + golang.org/x/tools/internal/typesinternal ++golang.org/x/tools/internal/versions + # google.golang.org/appengine v1.6.8 + ## explicit; go 1.11 + google.golang.org/appengine/internal +@@ -1379,3 +1379,4 @@ tags.cncf.io/container-device-interface/pkg/parser + # tags.cncf.io/container-device-interface/specs-go v0.6.0 + ## explicit; go 1.19 + tags.cncf.io/container-device-interface/specs-go ++# golang.org/x/crypto => github.com/openshift/golang-crypto v0.33.1-0.20250310193910-9003f682e581 +-- +2.43.7 + diff --git a/0012-machine-init-fix-tls-check.patch b/0012-machine-init-fix-tls-check.patch new file mode 100644 index 0000000000000000000000000000000000000000..71887e7a5466fba78db1e43b9ca15410a6db4f03 --- /dev/null +++ b/0012-machine-init-fix-tls-check.patch @@ -0,0 +1,45 @@ +From b6ff0901fa16aa31132c96b91fc353850a4f4fac Mon Sep 17 00:00:00 2001 +From: Paul Holzinger +Date: Tue, 10 Jun 2025 14:16:46 +0200 +Subject: [PATCH 12/12] machine init: fix tls check + +Ensure we verify the TLS connection when pulling the OCI image. + +Fixes: CVE-2025-6032 +Fixes: https://issues.redhat.com/browse/RHEL-96710 +Fixes: https://issues.redhat.com/browse/RHEL-96702 + +Signed-off-by: Paul Holzinger +(cherry picked from commit 726b506acc8a00d99f1a3a1357ecf619a1f798c3) +Signed-off-by: Paul Holzinger +--- + pkg/machine/ocipull/pull.go | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pkg/machine/ocipull/pull.go b/pkg/machine/ocipull/pull.go +index 1f0b97a562..d2c36b4d40 100644 +--- a/pkg/machine/ocipull/pull.go ++++ b/pkg/machine/ocipull/pull.go +@@ -18,8 +18,8 @@ import ( + // PullOptions includes data to alter certain knobs when pulling a source + // image. + type PullOptions struct { +- // Require HTTPS and verify certificates when accessing the registry. +- TLSVerify bool ++ // Skip TLS verification when accessing the registry. ++ SkipTLSVerify types.OptionalBool + // [username[:password] to use when connecting to the registry. + Credentials string + // Quiet the progress bars when pushing. +@@ -42,7 +42,7 @@ func Pull(ctx context.Context, imageInput string, sourcePath string, options Pul + } + + sysCtx := &types.SystemContext{ +- DockerInsecureSkipTLSVerify: types.NewOptionalBool(!options.TLSVerify), ++ DockerInsecureSkipTLSVerify: options.SkipTLSVerify, + } + if options.Credentials != "" { + authConf, err := parse.AuthConfig(options.Credentials) +-- +2.43.7 + diff --git a/podman.spec b/podman.spec index 9a2cf544c9a1c7efa8961f06c69c9095106dd89b..17a5f09587fc0bec66d361579d9bf41fb7efeb13 100644 --- a/podman.spec +++ b/podman.spec @@ -2,7 +2,7 @@ Name: podman Version: 4.9.4 -Release: 15 +Release: 16 Summary: A tool for managing OCI containers and pods. Epoch: 1 License: Apache-2.0 and MIT @@ -22,6 +22,8 @@ Patch0007: 0007-fix-CVE-2024-37298.patch Patch0008: 0008-fix-CVE-2024-6104.patch Patch0009: 0009-fix-CVE-2024-28176.patch Patch0010: 0010-fix-CVE-2024-3727.patch +Patch0011: 0011-fix-CVE-2024-11218-CVE-2025-22869.patch +Patch0012: 0012-machine-init-fix-tls-check.patch BuildRequires: gcc golang btrfs-progs-devel glib2-devel glibc-devel glibc-static BuildRequires: gpgme-devel libassuan-devel libgpg-error-devel libseccomp-devel libselinux-devel @@ -142,6 +144,9 @@ tar zxf %{SOURCE3} %patch 0008 -p1 %patch 0009 -p1 %patch 0010 -p1 +%patch 0011 -p1 +%patch 0012 -p1 + %ifarch loongarch64 cd dnsname-18822f9a4fb35d1349eb256f4cd2bfd372474d84 @@ -316,6 +321,9 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/ %{_bindir}/%{name}sh %changelog +* Thu Aug 14 2025 Wang Tiaoke - 1:4.9.4-16 +- Fix CVE-2024-11218 CVE-2025-22869 CVE-2025-6032 + * Fri Jul 25 2025 lijian - 1:4.9.4-15 - Fix build error in go1.24 - Replace deprecated %patchN syntax with %patch -P N